ANCP in EdgeStream DevTools
The EdgeStream Dev Tools application provides real-time visibility into live ANCP message flows, a Node Explorer for tracing message paths through workflow execution, and an Action Invoker for sending test messages without writing code.
What DevTools Provides
EdgeStream Dev Tools is a browser-based developer application that connects to the same SignalR hub as your workflow engine. Because all inter-component communication flows as ANCP messages, DevTools gives you complete observability into what is happening inside any workflow run.
Node Explorer
Visualizes the live graph of nodes sending and receiving ANCP messages. Click any node to see its full message history.
Action Invoker
Compose and send ANCP messages of any type to any address. Useful for testing node handlers without running a full workflow.
Message Feed
Live stream of all ANCP messages flowing through the connected tenant. Filter by type, source, destination, or topic.
Correlation Tracer
Given a correlationId, traces the full chain of messages: original Query → intermediate Commands → final Response.
Connecting DevTools to Your Environment
Open DevTools
Navigate to https://devtools.bizfirst.io (or your local instance at http://localhost:5174 if running edge-stream-dev-tools locally).
Enter Hub URL
Provide the SignalR hub URL for your target environment, e.g., https://api-dev.bizfirst.io/ancp-hub. DevTools connects using your developer JWT from the identity provider.
Select Tenant
Choose the tenant scope. DevTools only shows messages from the tenant your JWT is authorized for — cross-tenant visibility is not possible by design.
Subscribe to Topics
Choose which topics to monitor. Use * for all traffic, or a specific topic like topic://tenant-acme/workflow/*.
Live Feed Active
DevTools is now receiving all matching ANCP messages in real time. The Node Explorer begins populating as messages flow.
Node Explorer
The Node Explorer renders a live directed graph of all addressable entities (nodes, agents, services) that have sent or received ANCP messages since DevTools connected. Each entity is a node in the graph; each message creates a directed edge with a label showing the message type.
Reading the Graph
| Visual Element | Meaning |
|---|---|
| Blue node icon | Workflow execution node (node:// scheme) |
| Purple node icon | AI agent (agent:// scheme) |
| Green node icon | Backend service (service:// scheme) |
| Orange node icon | Topic / pub/sub endpoint (topic:// scheme) |
| Solid arrow | Command or Query message |
| Dashed arrow | Response message |
| Dotted arrow | Event message (fan-out) |
| Red edge highlight | Message that failed validation or was rejected by the router |
Clicking a Node
Clicking any node in the explorer opens its Message History Panel, showing all ANCP messages sent to and from that address in the current session. Each message entry shows:
- Message ID, type, and timestamp
- Source and destination addresses
- Payload (collapsible JSON viewer)
- correlationId (click to open Correlation Tracer)
- Processing latency (time from send to handler acknowledgement)
Message Feed
The Message Feed is a scrollable, filterable list of all ANCP messages in chronological order. It is the fastest way to verify that a message was sent and what it contained.
Filter Controls
- Type filter: Command / Event / Query / Response (multi-select checkboxes)
- Source filter: Substring match against the
sourceaddress - Destination filter: Substring match against the
destinationaddress - Topic filter: Glob pattern for pub/sub topics
- Time range: Last N minutes or custom range
- Search: Full-text search across all envelope fields and payload (JSON)
Keyboard Shortcuts
| Key | Action |
|---|---|
| F | Focus filter bar |
| Esc | Clear all filters |
| Space | Pause / resume live feed |
| C | Copy selected message as JSON |
| T | Open Correlation Tracer for selected message |
| I | Pre-fill Action Invoker with selected message |
Action Invoker
The Action Invoker lets you compose and send ANCP messages from the browser without writing any code. This is the fastest way to test a node handler or agent in isolation.
Sending a Test Command
Open Action Invoker
Click Invoke Action in the DevTools toolbar, or press A.
Select Message Type
Choose Command, Event, Query, or Response from the dropdown. The form adjusts to show relevant fields (e.g., correlationId for Query).
Fill Addresses
Enter the source and destination addresses. DevTools auto-populates tenantId from your authenticated session and id + timestamp are generated automatically.
Edit Payload
Enter the payload as JSON in the editor. DevTools validates the JSON before allowing send. You can paste an example from the Message Feed using I.
Send and Observe
Click Send. The message appears immediately in the Message Feed. If you sent a Query, DevTools highlights the matching Response when it arrives.
Correlation Tracer
Given any message with a correlationId, the Correlation Tracer reconstructs the full message chain — showing every message in the sequence, the time between each step, and which nodes participated.
// Example trace output for correlationId: corr-doc-001
┌─────────────────────────────────────────────────────────────────┐
│ Correlation Trace: corr-doc-001 │
│ Total duration: 1,847ms Messages: 2 │
├──────┬────────────┬────────────────────────────────┬────────────┤
│ # │ Type │ From → To │ +ms │
├──────┼────────────┼────────────────────────────────┼────────────┤
│ 1 │ Query │ node:.../incoming-doc │ t+0 │
│ │ │ → agent:.../doc-classifier │ │
├──────┼────────────┼────────────────────────────────┼────────────┤
│ 2 │ Response │ agent:.../doc-classifier │ t+1,847 │
│ │ │ → node:.../incoming-doc │ │
└──────┴────────────┴────────────────────────────────┴────────────┘
Do not enable the DevTools connection endpoint in production. The real-time message feed gives any connected developer full visibility into all ANCP message payloads for their tenant. In production environments, disable the DevTools hub route and use the audit log tables in the ProcessSecurity database for observability instead.
Enabling DevTools Locally
# Clone the edge-stream monorepo
git clone https://github.com/bizfirst/edge-stream.git
cd edge-stream
# Install dependencies
pnpm install
# Start Dev Tools
cd apps/edge-stream-dev-tools
pnpm dev
# => http://localhost:5174
# In your backend (ASP.NET Core appsettings.Development.json)
{
"AncpDevTools": {
"Enabled": true,
"HubPath": "/ancp-devtools-hub"
}
}