Skip to content

Add semantic conventions for A2A (Agent-to-Agent) protocol #3218

@xiaocang

Description

@xiaocang

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

Related

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    Status

    New issues

    Status

    Need triage

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions