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:54:41 +00:00
2026-04-07 14:38:49 +00:00
2026-04-15 21:24:01 -04:00
2026-04-15 21:24:01 -04:00
2026-04-07 14:38:49 +00:00
2026-04-15 21:24:01 -04:00
2026-03-31 04:53:29 +00:00
2026-04-07 14:44:05 +00:00
2026-04-10 21:17:44 -04:00
2026-04-10 05:45:27 -04:00
2026-04-07 14:38:55 +00:00
2026-04-08 06:29:26 -04:00
2026-03-28 16:02:27 -04:00
2026-04-07 14:23:07 +00:00
2026-03-28 16:25:18 -04:00
2026-04-15 21:24:01 -04:00
2026-04-04 01:41:53 +00:00
2026-04-06 17:52:10 +00:00
2026-04-15 21:24:01 -04:00
2026-04-06 17:59:45 +00:00
2026-04-07 14:12:38 +00:00
2026-04-07 14:54:41 +00:00
2026-04-07 11:05:00 -04:00
2026-04-07 14:12:38 +00:00
2026-04-07 11:05:00 -04:00
2026-04-07 14:12:38 +00:00
2026-04-04 01:36:56 +00:00
2026-03-28 17:01:49 +00:00
2026-04-10 21:17:44 -04:00
2026-03-28 12:53:20 +00:00
2026-03-30 19:04:53 -04:00
2026-04-06 15:51:22 +00:00