A2A Protocol

The Agent-to-Agent (A2A) protocol enables AI agents to discover, communicate, and delegate tasks to each other with built-in trust verification.

Overview

A2A allows agents to form collaborative networks. Each agent publishes an Agent Card describing its capabilities, and other agents can discover and invoke those capabilities through a standard JSON-RPC interface.

text
┌─────────────┐ Agent Card ┌─────────────┐ │ Agent A │ ──────────────▶ │ Agent B │ │ │ │ │ │ "I need │ JSON-RPC │ "I can do │ │ analysis" │ ◀────────────▶ │ analysis" │ │ │ │ │ │ Sekuire ID │ Trust Verify │ Sekuire ID │ └─────────────┘ ──────────────▶ └─────────────┘

Agent Cards

An Agent Card is a machine-readable document describing an agent's capabilities:

/.well-known/agent.jsonjson
{ "name": "Data Analysis Agent", "sekuire_id": "7f8a9b3c2d1e...", "version": "1.2.0", "description": "Statistical analysis and visualization", "url": "https://analysis.example.com", "skills": [ { "name": "analyze_csv", "description": "Analyze CSV data and produce summary statistics", "input_schema": { "type": "object", "properties": { "data_url": { "type": "string" }, "columns": { "type": "array", "items": { "type": "string" } } } }, "output_schema": { "type": "object", "properties": { "summary": { "type": "object" }, "chart_url": { "type": "string" } } } } ], "authentication": { "type": "sekuire_trust", "verify_url": "https://api.sekuire.com/api/v1/trust/verify" } }

Skills

Skills are the discrete capabilities an agent offers. Each skill has:

FieldDescription
nameUnique identifier for the skill
descriptionHuman-readable description of what it does
input_schemaJSON Schema for the input parameters
output_schemaJSON Schema for the output format
timeout_msMaximum execution time (optional)
cost_estimateEstimated cost per invocation (optional)

Task Delegation

Tasks are delegated via JSON-RPC over HTTP:

POST /a2a/tasksjson
{ "jsonrpc": "2.0", "method": "tasks/send", "id": "task_001", "params": { "skill": "analyze_csv", "input": { "data_url": "https://storage.example.com/data.csv", "columns": ["revenue", "date"] }, "caller": { "sekuire_id": "a1b2c3d4...", "signature": "ed25519_signature_of_request" } } }

Task Response

json
{ "jsonrpc": "2.0", "id": "task_001", "result": { "status": "completed", "output": { "summary": { "mean_revenue": 45000, "trend": "increasing" }, "chart_url": "https://analysis.example.com/charts/abc123.png" }, "agent": { "sekuire_id": "7f8a9b3c2d1e...", "signature": "ed25519_signature_of_response" } } }

Trust Verification

Before executing a delegated task, the receiving agent verifies the caller:

  1. Extract the caller's sekuire_id from the request
  2. Verify the Ed25519 signature against the caller's public key
  3. Check the Sekuire Registry for the caller's trust profile
  4. Evaluate workspace policies (is this caller allowed to invoke this skill?)
  5. If all checks pass, execute the task
ℹ️Both the request and response are signed, creating a non-repudiable audit trail of agent interactions.

Next Steps