OpenAgents Logo
OpenAgentsDocumentation
Updated October 20, 2018

A2A Protocol Integration

Date: December 28, 2025 Version: 0.8.0

Overview

OpenAgents now supports the Agent2Agent (A2A) protocol, enabling seamless interoperability with AI agents built on different frameworks like LangGraph, CrewAI, Pydantic AI, and more.

A2A is served via HTTP transport at /a2a (port 8700 by default), alongside MCP at /mcp and Studio at /studio.

Quick Start

Enable A2A in Your Network

# network.yaml
network:
  transports:
    - type: "http"
      config:
        port: 8700
        serve_a2a: true     # A2A at /a2a
        serve_mcp: true     # MCP at /mcp
        serve_studio: true  # Studio at /studio

Access A2A Endpoints

EndpointDescription
http://localhost:8700/a2aJSON-RPC 2.0 endpoint
http://localhost:8700/a2a/.well-known/agent.jsonAgent Card discovery

Configuration Options

HTTP Transport A2A Settings

transports:
  - type: "http"
    config:
      port: 8700
      serve_a2a: true
 
      # Agent Card configuration
      a2a_agent:
        name: "My Agent Network"
        version: "1.0.0"
        description: "OpenAgents A2A-enabled network"
        provider:
          organization: "My Company"
          url: "https://mycompany.com"
 
      # Optional authentication
      a2a_auth:
        type: "bearer"
        token_env: "A2A_AUTH_TOKEN"  # Read from environment

Standalone A2A Transport (Port 8900)

For dedicated A2A deployment:

transports:
  - type: "a2a"
    config:
      port: 8900
      host: "0.0.0.0"
      agent:
        name: "Standalone A2A Server"

A2A Protocol Methods

Standard A2A Methods

MethodDescription
message/sendSend message, create/continue task
tasks/getGet task by ID
tasks/listList tasks with filtering
tasks/cancelCancel a running task

OpenAgents Extensions

MethodDescription
agents/announceRemote agent joins network
agents/withdrawRemote agent leaves network
agents/listList all agents (local + remote)
events/sendSend event through network

Example: Sending a Message

curl -X POST http://localhost:8700/a2a \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "message/send",
    "params": {
      "message": {
        "role": "user",
        "parts": [{"type": "text", "text": "Hello, agent!"}]
      }
    },
    "id": "1"
  }'

Example: Announcing a Remote Agent

curl -X POST http://localhost:8700/a2a \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "agents/announce",
    "params": {
      "url": "https://remote-agent.example.com",
      "agent_id": "my-remote-agent"
    },
    "id": "1"
  }'

Cross-Protocol Communication

A2A integrates with existing transports for seamless cross-protocol communication:

              ┌─────────────────────────────────────────┐
              │          OpenAgents Network              │
              │                                          │
   ┌──────────┼──────────────────────────────────────┐  │
   │          │      Unified Agent Registry          │  │
   │          │                                      │  │
   │  ┌───────┴───────┐  ┌──────────────────────┐   │  │
   │  │  Local Agents │  │    Remote Agents     │   │  │
   │  │   (gRPC/WS)   │  │      (A2A)           │   │  │
   │  └───────────────┘  └──────────────────────┘   │  │
   └─────────────────────────────────────────────────┘  │
              │                                          │
              │     ┌───────────────────────────┐       │
              │     │   HTTP Transport :8700    │       │
              │     │                           │       │
              │     │  /a2a ─── A2A Protocol   │       │
              │     │  /mcp ─── MCP Protocol   │       │
              │     │  /studio ─ Web UI        │       │
              │     └───────────────────────────┘       │
              └─────────────────────────────────────────┘

Agent Skills

Skills are automatically collected from:

  1. Local agents - Skills declared in agent metadata
  2. Remote A2A agents - Skills from Agent Cards
  3. Mods - Tools exposed by loaded mods

Access the Agent Card to see all available skills:

curl http://localhost:8700/a2a/.well-known/agent.json
Was this helpful?