What is A2A?
The Agent-to-Agent (A2A) Protocol enables Routa to expose its ACP agents as federated, interoperable services that can be discovered and invoked by other AI systems. A2A implements the A2A SDK v0.3.x specification for standardized agent communication.Why A2A?
A2A enables:- Federation - Other AI systems can discover and use Routa agents
- Interoperability - Standardized protocol for agent coordination
- Service Discovery - Agent cards expose capabilities and endpoints
- Event Streaming - Real-time updates via Server-Sent Events
Architecture
Routa’s A2A implementation consists of:Core Components
- A2A Session Registry (
src/core/a2a/a2a-session-registry.ts) - Tracks active ACP sessions exposed via A2A - A2A Task Bridge (
src/core/a2a/a2a-task-bridge.ts) - Maps Routa agents to A2A tasks - A2A Executor (
src/core/a2a/a2a-executor.ts) - Placeholder executor (actual impl via JSON-RPC)
HTTP Endpoints
Routa exposes these A2A endpoints:| Endpoint | Method | Description |
|---|---|---|
/api/a2a/card | GET | Agent card (discovery) |
/api/a2a/rpc | POST | JSON-RPC endpoint |
/api/a2a/rpc | GET | SSE event stream |
/api/a2a/sessions | GET | List active sessions |
/api/a2a/message | POST | HTTP transport (alternative) |
/api/a2a/tasks | GET | List A2A tasks |
/api/a2a/tasks/{id} | GET | Get task by ID |
Agent Card
Routa exposes a single agent card that represents the entire multi-agent platform:Fetching the Agent Card
A2A Tasks
Routa maps its agents to A2A tasks:Task States
A2A defines these task states:| State | Description |
|---|---|
submitted | Task created, waiting to start |
working | Task in progress |
input-required | Waiting for user input |
completed | Task finished successfully |
failed | Task failed with error |
canceled | Task was canceled |
rejected | Task was rejected (validation failed) |
auth-required | Authentication needed |
Agent Status Mapping
Routa agent statuses map to A2A task states:| Agent Status | A2A Task State |
|---|---|
PENDING | submitted |
ACTIVE | working |
COMPLETED | completed |
ERROR | failed |
CANCELLED | canceled |
Session Discovery
List active sessions exposed via A2A:API Reference
A2aSessionRegistry
List Sessions
Get Session
Generate Agent Card
A2ATaskBridge
Create Task
Update Task from Agent
Register Agent as Task
List Tasks
Cancel Task
Capabilities
Each A2A session exposes these capabilities:Base Capabilities
initialize- Initialize the A2A connectionmethod_list- List available JSON-RPC methods
ACP Session Methods
session/new- Create a new ACP sessionsession/prompt- Send a message to a sessionsession/cancel- Cancel a running sessionsession/load- Load a persisted session
Routa Coordination Tools
list_agents- List agents in a workspacecreate_agent- Create a new agent (CRAFTER, GATE, DEVELOPER)delegate_task- Delegate a task to an agentmessage_agent- Send a message to an agent
Protocol Version
Routa implements A2A Protocol v0.3.0. Key features:- JSON-RPC 2.0 transport
- SSE event streaming
- Task lifecycle management
- Agent card discovery
- Skill-based routing