tensorone logo

Research

Agent2Agent (A2A) Protocol

The Agent2Agent (A2A) Protocol defines the structured rules, message types, and interaction primitives that enable autonomous agents to collaborate, argue, escalate, or delegate tasks effectively in a multi-agent environment.

A2A acts as the language of coordination—allowing agents to form consensus, negotiate outcomes, and pass stateful context between each other in a predictable, extensible format.


Motivation

Large-scale AI systems require more than individual intelligence—they need collective reasoning. Without a shared communication standard, agents become isolated tools rather than parts of a coherent system.

The A2A Protocol solves this by:

  • Establishing a formal structure for inter-agent messages
  • Supporting context preservation across chains
  • Enabling role-based reasoning through action types
  • Allowing for interruption, delegation, and escalation flows

Core Message Schema

Each A2A message adheres to a strict envelope format:

{
  "from": "agent.researcher",
  "to": "agent.critic",
  "type": "assertion",
  "intent": "evaluate_risk",
  "payload": {
    "claim": "Synthetic datasets increase distribution drift."
  },
  "context": {
    "thread_id": "9e3f-2341",
    "depth": 2,
    "memory_ref": "session-428b"
  }
}

Fields:

  • from / to: Unique agent identifiers or roles
  • type: One of inform, ask, assert, delegate, escalate
  • intent: Actionable label understood across agents
  • payload: Arbitrary structured content
  • context: Thread-level metadata (IDs, memory, retry count, etc.)

Supported Message Types

  • inform – Passive state sharing (e.g., “FYI, task complete.”)
  • ask – Explicit question requiring a response
  • assert – Statement open to challenge or support
  • delegate – Task handoff to another agent
  • escalate – Forward task to supervisor/higher-order role

These primitives allow us to construct rich dialogue trees between agents with well-defined semantics.


Example Agent Interaction

[Planner] → (delegate: plan_research) → [Researcher]
[Researcher] → (assert: hypothesis) → [Critic]
[Critic] → (ask: clarify scope) → [Researcher]
[Researcher] → (inform: clarification) → [Critic]
[Critic] → (assert: approved) → [Planner]

This creates an interaction graph with memory of assertions, pending tasks, and outcomes.


Features

  • Threaded message history with causal references
  • Depth tracking to avoid infinite loops
  • Memory references for linking external context (e.g., vector DB chunks)
  • Extensible intents that map to internal model actions or tool calls

Integration

A2A messages are typically passed:

  • In-memory during real-time sessions
  • Through TensorOne serverless endpoints in async systems
  • Via MCP when model coordination is required mid-chain
  • Logged into TensorOne Evals for traceability

Future Work

We’re currently exploring:

  • Message reputation scoring to rank agent reliability
  • Conversation summarization for post-mortem analysis
  • Secure A2A signing to verify agent identity and message origin
  • Graph-based visualization of agent conversations

A2A is what allows our agents to act as a team rather than independent tools. With structured dialogue, shared context, and typed intent, they can move from isolated calls to intelligent coordination.

It’s not just communication—it’s cooperation with protocol guarantees.


Previous
MCP