Alexander Whitestone
ec2a427a7a
feat: implement A2A protocol for fleet-wizard delegation (#1122)
Implements Google Agent2Agent Protocol v1.0 with full fleet integration:
## Phase 1 - Agent Card & Discovery
- Agent Card types with JSON serialization (camelCase, Part discrimination by key)
- Card generation from YAML config (~/.hermes/agent_card.yaml)
- Fleet registry with LocalFileRegistry + GiteaRegistry backends
- Discovery by skill ID or tag
## Phase 2 - Task Delegation
- Async A2A client with JSON-RPC SendMessage/GetTask/ListTasks/CancelTask
- FastAPI server with pluggable task handlers (skill-routed)
- CLI tool (bin/a2a_delegate.py) for fleet delegation
- Broadcast to multiple agents in parallel
## Phase 3 - Security & Reliability
- Bearer token + API key auth (configurable per agent)
- Retry logic (max 3 retries, 30s timeout)
- Audit logging for all inter-agent requests
- Error handling per A2A spec (-32001 to -32009 codes)
## Test Coverage
- 37 tests covering types, card building, registry, server integration
- Auth (required + success), handler routing, error handling
Files:
- nexus/a2a/ (types.py, card.py, client.py, server.py, registry.py)
- bin/a2a_delegate.py (CLI)
- config/ (agent_card.example.yaml, fleet_agents.json)
- docs/A2A_PROTOCOL.md
- tests/test_a2a.py (37 tests, all passing)
2026-04-15 21:24:01 -04:00
..
2026-04-07 14:47:12 +00:00
2026-04-05 08:31:33 +00:00
2026-04-11 00:20:14 +00:00
2026-04-07 14:23:07 +00:00
2026-04-15 21:24:01 -04:00
2026-04-06 02:57:57 +00:00
2026-04-15 21:24:01 -04:00
2026-03-31 04:53:29 +00:00
2026-04-15 21:24:01 -04:00
2026-04-07 08:38:28 +00:00
2026-04-07 06:47:03 +00:00
2026-04-05 20:59:33 +00:00
2026-04-05 17:33:00 +00:00
2026-04-10 05:45:27 -04:00
2026-04-05 08:58:25 +00:00
2026-04-05 01:51:01 +00:00
2026-04-05 03:45:08 +00:00
2026-04-05 05:19:04 +00:00
2026-04-12 12:09:18 +00:00
2026-04-06 18:16:58 +00:00
2026-03-29 21:58:16 -04:00
2026-04-06 02:57:57 +00:00
2026-04-07 14:26:25 +00:00
2026-04-06 18:15:20 +00:00
2026-04-07 06:27:56 +00:00
2026-04-07 14:38:49 +00:00
2026-04-11 23:10:03 +00:00
2026-04-11 23:10:02 +00:00
2026-04-06 02:57:57 +00:00
2026-04-08 06:29:26 -04:00