vtcode-a2a

June 17, 2026 · View on GitHub

Agent2Agent (A2A) Protocol support for VT Code.

Overview

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.

Module Groups

AreaModulesDescription
Agent Cardagent_cardAgent discovery and capability advertisement
ClientclientA2A protocol client
CLIcliCLI interface for A2A commands
ErrorserrorsA2A-specific error types
RPCrpcJSON-RPC message types and protocol constants
ServerserverHTTP server (feature-gated: a2a-server)
Task Managertask_managerTask lifecycle management
TypestypesCore A2A protocol types (Message, Task, Part, etc.)
WebhookwebhookPush notification support

Key Concepts

Agent Card

Agent cards describe agent identity, version, capabilities, and security requirements. They enable agents to discover and communicate with each other.

Task Management

The task manager handles the lifecycle of A2A tasks, including creation, execution, and completion tracking.

Webhook Notifications

WebhookNotifier is always available (not feature-gated) — only the HTTP server is gated behind a2a-server.

Feature Flags

  • a2a-server — enables the HTTP server module
  • Feature chain: vtcode binary a2a-server → vtcode-core a2a-server → vtcode-a2a a2a-server

Rules

  • The server module is feature-gated behind a2a-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

See Also