-
Notifications
You must be signed in to change notification settings - Fork 306
Open
Description
Overview
This proposal adds semantic conventions for the A2A (Agent-to-Agent) protocol, which enables agents from different vendors/frameworks to communicate. A2A uses JSON-RPC 2.0 over HTTP and supports both synchronous and streaming (SSE) responses.
Motivation
A2A is an emerging standard for agent interoperability. As agentic AI systems become more prevalent, observability for agent-to-agent communication is critical. Currently, there are no semantic conventions for A2A, forcing implementations to use vendor-specific namespaces (e.g., kong.a2a.*).
Proposed Attributes
gen_ai.a2a.* namespace
| Attribute | Type | Description |
|---|---|---|
gen_ai.a2a.rpc.method |
string | JSON-RPC method (e.g., message/send, tasks/get) |
gen_ai.a2a.task.id |
string | A2A Task ID |
gen_ai.a2a.task.state |
string | Task state: submitted, working, input-required, completed, failed, canceled |
gen_ai.a2a.protocol.version |
string | A2A protocol version (e.g., 0.3) |
gen_ai.a2a.streaming |
boolean | Whether the response uses SSE streaming |
Reuse existing gen_ai.* attributes
| Attribute | A2A Mapping |
|---|---|
gen_ai.operation.name |
Operation type (see below) |
gen_ai.conversation.id |
A2A contextId |
Operation name mapping
| A2A Endpoint | gen_ai.operation.name |
|---|---|
/message/send |
invoke_agent |
/message/sendStreaming |
invoke_agent |
/tasks/{id} |
get_task |
/tasks |
list_tasks |
/tasks/{id}/cancel |
cancel_task |
/tasks/{id}/subscribe |
stream_task_updates |
/agentCard |
get_agent_card |
A2A Protocol Reference
- Specification: https://a2a-protocol.org/latest/specification/
- GitHub: https://github.com/google/A2A
Related
- GenAI semantic conventions: https://github.com/open-telemetry/semantic-conventions/tree/main/docs/gen-ai
nowNick
Metadata
Metadata
Assignees
Type
Projects
Status
New issues
Status
Need triage