zeph-a2a
A2A protocol client and server with agent discovery for Zeph.
Overview
Implements the Agent-to-Agent (A2A) protocol over JSON-RPC 2.0, enabling Zeph to discover, communicate with, and delegate tasks to remote agents. Feature-gated behind a2a; the server component requires the server sub-feature.
Key Modules
- client —
A2aClientfor sending tasks and messages to remote agents - server —
A2aServerexposing an A2A-compliant endpoint withProcessorEventstreaming viampsc::Sender(requiresserverfeature) - card —
AgentCardBuilderfor constructing agent capability cards - discovery —
AgentRegistryfor agent lookup and registration - jsonrpc — JSON-RPC 2.0 request/response types
- types — shared protocol types (Task, Message, Artifact, etc.)
- error —
A2aErrorerror types
Authentication
A2aServer supports bearer token authentication via the with_auth() builder method. When auth_token is None, the server emits a tracing::warn! at startup indicating that the endpoint is unauthenticated.
new
.with_auth
.serve
.await?;
Token comparison uses subtle::ConstantTimeEq to prevent timing attacks.
Installation
Enabled via the a2a feature flag on the root zeph crate.
License
MIT