A2A Dispatches
Dispatch history and outcomes.
The Dispatches page is a chronological view of persisted task-instance rows for registered external A2A agents. It covers both explicit dispatches authored in a workflow via agent.dispatch and transparent dispatches selected by the routing layer. It is operational history, not proof that every attempted dispatch was persisted.
Navigate to it from the Factory section of your project:
/<org>/<project>/factory/a2a/dispatchesDispatch kinds
Every row in the a2a_task_instances table carries a workType prefix that encodes how the dispatch was initiated:
| Kind | Prefix | Description |
|---|---|---|
explicit | explicit:<workType> | A workflow node directly named the agent and skill. The operator chose the target. |
transparent | transparent:<workType> or bare string | The routing layer selected the agent automatically via skill matching and Thompson Sampling. The caller specified work requirements; the platform chose the agent. |
The Dispatches page decodes this prefix and lets you filter by kind.
Reading the dispatch log
Each row in the table shows:
| Column | Notes |
|---|---|
| Agent | Name and URL of the target agent (joined from agent_cards) |
| Skill / work type | The skill invoked and the work-type label (decoded, prefix stripped) |
| Kind | explicit or transparent |
| Status | active, completed, or failed |
| Session ID | Correlation key - links to the session that initiated the dispatch |
| Started | Wall-clock dispatch time |
| Latency | Duration for completed/failed rows; blank for active rows |
Click any row to view the session that initiated it, or navigate to agent detail to see all dispatches for a specific agent.
Filtering and pagination
Use the controls at the top of the page to:
- Filter by kind - show all, explicit only, or transparent only
- Filter by status - all, active, completed, or failed
- Filter by agent - narrow to a specific registered agent
The log is paginated using a cursor-based scheme: the page returns up to 50 rows (max 200) ordered newest-first. A Next page button appears when more rows exist. The cursor is a started_at timestamp - bookmark the URL to return to the same position.
Back-compat note for pre-prefix rows
Rows written before the explicit: / transparent: prefix convention (W5-FU-9) are treated as transparent for display purposes. The filter and query logic matches both the prefixed form and legacy bare-string workTypes so older records remain visible without re-migration.
Interpreting outcomes
Active dispatches
active means the session has been claimed by a worker but has not yet posted a completion. An active row that is older than your expected session timeout may indicate a stuck agent. Use the session inspector on the linked session to diagnose.
Failed dispatches
failed rows record sessions that terminated with an error. Common causes:
- The remote agent returned a JSON-RPC error envelope (task
status.state = 'failed') - The dispatch timed out (default 30-second wall-clock timeout from the MCP bridge)
- Cedar policy denied the invocation before the wire call
Click the session ID to inspect the full activity stream.
Cost and latency patterns
The latency column lets you spot slow agents. For cost-related breakdowns, visit the Routing Intelligence panel, which shows per-agent Thompson Sampling posteriors and cost-efficiency scores derived from dispatch outcomes.
How dispatch records are created
The implemented task-instance subscriber calls recordTaskStart to write status='active' and calls recordTaskComplete to update a persisted row to completed or failed with completed_at. The dispatch log reads successful writes from a2a_task_instances directly.
The MCP bridge emits pre-verb and post-verb events on the Layer-6 hook bus, which trigger the task-instance-store subscriber to write and update rows without any coupling between the bridge and the persistence layer.
Related pages
- A2A Registry - register and manage agents
- A2A Agent Detail - per-agent dispatch history
- A2A Routing - how agents are selected for transparent dispatches
- A2A MCP Bridge - wire protocol for outbound calls
- Routing Intelligence - Thompson Sampling posteriors and cost efficiency