Agent2Agent (A2A) Protocol support for VT Code.
Layer 0 crate with zero internal vtcode dependencies. Provides the A2A protocol implementation for agent-to-agent communication, including agent discovery, task management, and webhook notifications.
| Area | Modules | Description |
|---|---|---|
| Agent Card | agent_card |
Agent discovery and capability advertisement |
| Client | client |
A2A protocol client |
| CLI | cli |
CLI interface for A2A commands |
| Errors | errors |
A2A-specific error types |
| RPC | rpc |
JSON-RPC message types and protocol constants |
| Server | server |
HTTP server (feature-gated: a2a-server) |
| Task Manager | task_manager |
Task lifecycle management |
| Types | types |
Core A2A protocol types (Message, Task, Part, etc.) |
| Webhook | webhook |
Push notification support |
Agent cards describe agent identity, version, capabilities, and security requirements. They enable agents to discover and communicate with each other.
The task manager handles the lifecycle of A2A tasks, including creation, execution, and completion tracking.
WebhookNotifier is always available (not feature-gated) — only the HTTP server is gated behind a2a-server.
a2a-server— enables the HTTP server module- Feature chain: vtcode binary
a2a-server→ vtcode-corea2a-server→ vtcode-a2aa2a-server
- The
servermodule is feature-gated behinda2a-server— never import unconditionally shutdown_signal_logged()is defined in lib.rs (not a separate module)- Re-export facade in vtcode-core (
a2a/mod.rs) must stay in sync with feature gates
- A2A Documentation — protocol guides and examples
- Architecture Guide — explicit delegation model