[A2A] Implement Agent2Agent Protocol for Fleet-Wizard Delegation #1122

Open
opened 2026-04-07 21:17:07 +00:00 by Timmy · 0 comments
Owner

Objective

Implement Google’s Agent2Agent (A2A) protocol in Hermes so that our fleet wizards can discover each other’s capabilities and delegate tasks autonomously.

Background

Today, wizard-to-wizard communication is human-mediated (Telema, Gitea issues). A2A provides a machine-native protocol: agents publish Agent Cards, negotiate tasks, and return structured results. This is the difference between "passing notes through a human" and "calling an API."

Acceptance Criteria

Phase 1 — Agent Card & Discovery (1 week)

  • Each Hermes instance can serve an /agent.json Agent Card describing its name, capabilities, input/output formats, and endpoint URL
  • Agent Cards are auto-generated from a YAML/JSON config (~/.hermes/agent_card.yaml)
  • A registry service (or simple Gitea file) lists all fleet Agent Cards
  • Discovery: any agent can query the registry and list available fleet agents

Phase 2 — Task Delegation (1 week)

  • Hermes can send an A2A Task to another agent’s /tasks endpoint
  • Hermes can receive an A2A Task and route it to the correct internal tool/function
  • Task results (artifacts, status updates) are returned via the A2A protocol
  • End-to-end test: Bezalel agent sends a CI health check task to Ezra agent; Ezra responds with status report

Phase 3 — Security & Reliability (1 week)

  • A2A endpoints require authentication (shared secret or token from ~/.timmy/)
  • Timeout and retry logic on outbound A2A tasks (max 3 retries, 30s timeout)
  • Logging: every inter-agent task is logged to a central location for audit

Suggested Implementation Path

  1. Create agent/a2a/ package with card.py, client.py, server.py
  2. Implement FastAPI/Flask routes for A2A endpoints (or reuse existing HTTP server)
  3. Add A2A_DELEGATE tool so agents can delegate via natural language intent

Owner

Bezalel with Ezra co-owner

Linked Epic

#1120

## Objective Implement Google’s Agent2Agent (A2A) protocol in Hermes so that our fleet wizards can discover each other’s capabilities and delegate tasks autonomously. ## Background Today, wizard-to-wizard communication is human-mediated (Telema, Gitea issues). A2A provides a machine-native protocol: agents publish Agent Cards, negotiate tasks, and return structured results. This is the difference between "passing notes through a human" and "calling an API." ## Acceptance Criteria ### Phase 1 — Agent Card & Discovery (1 week) - [ ] Each Hermes instance can serve an `/agent.json` Agent Card describing its name, capabilities, input/output formats, and endpoint URL - [ ] Agent Cards are auto-generated from a YAML/JSON config (`~/.hermes/agent_card.yaml`) - [ ] A registry service (or simple Gitea file) lists all fleet Agent Cards - [ ] Discovery: any agent can query the registry and list available fleet agents ### Phase 2 — Task Delegation (1 week) - [ ] Hermes can send an A2A `Task` to another agent’s `/tasks` endpoint - [ ] Hermes can receive an A2A `Task` and route it to the correct internal tool/function - [ ] Task results (artifacts, status updates) are returned via the A2A protocol - [ ] End-to-end test: Bezalel agent sends a CI health check task to Ezra agent; Ezra responds with status report ### Phase 3 — Security & Reliability (1 week) - [ ] A2A endpoints require authentication (shared secret or token from `~/.timmy/`) - [ ] Timeout and retry logic on outbound A2A tasks (max 3 retries, 30s timeout) - [ ] Logging: every inter-agent task is logged to a central location for audit ## Suggested Implementation Path 1. Create `agent/a2a/` package with `card.py`, `client.py`, `server.py` 2. Implement FastAPI/Flask routes for A2A endpoints (or reuse existing HTTP server) 3. Add `A2A_DELEGATE` tool so agents can delegate via natural language intent ## Owner Bezalel with Ezra co-owner ## Linked Epic #1120
ezra was assigned by Timmy 2026-04-08 14:16:36 +00:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Timmy_Foundation/the-nexus#1122