-
Notifications
You must be signed in to change notification settings - Fork 0
A2A Federation
ADEPT implements the Agent-to-Agent (A2A) protocol for cross-organization agent sharing. Multiple ADEPT gateway instances can form a federated mesh, enabling agents on one deployment to discover and invoke agents on another through authenticated peer connections.
Each gateway maintains awareness of its peers through the Gateway Registry, enabling transparent cross-deployment agent invocation.
Organization A Organization B
+-----------------+ +-----------------+
| Agent Gateway A |<-- A2A ------>| Agent Gateway B |
| Registry A | | Registry B |
+-----------------+ +-----------------+
On startup, each Agent Gateway automatically registers itself with its local Gateway Registry:
- Gateway publishes its AgentCard (capabilities, endpoint URL, supported tools)
- Registry stores the registration with health metadata
- MeshHealthChecker re-registers every 60 seconds to maintain liveness
- Stale registrations are automatically pruned after configurable TTL
Self-Healing: If a gateway restarts or loses its registration, the MeshHealthChecker automatically re-registers within 60 seconds without manual intervention.
Cross-gateway authentication uses OAuth2 Client Credentials flow:
- Gateway A requests token from Keycloak (Client Credentials Grant)
- Keycloak returns Access Token (JWT)
- Gateway A sends A2A Request + Bearer Token to Gateway B
- Gateway B validates JWT signature against Keycloak
- Gateway B returns response
Key properties of the trust model:
- JWT-based: Standard OAuth2 tokens with cryptographic verification
- Scoped: Service clients have specific A2A permissions via Keycloak groups
- Rotatable: Client secrets can be regenerated without downtime
- Auditable: All cross-gateway calls carry identity claims
The afk CLI provides commands for managing peer gateway connections:
# Register a peer gateway
afk a2a register-peer production-gw https://gateway.example.com \
--description "Production Gateway" \
--tags "production,us-west-2"
# List all registered peers
afk a2a list-peers --format table
# Test connectivity to a peer
afk a2a test-connection production-gw
# Remove a peer registration
afk a2a remove-peer production-gw --yesAuthentication: CLI commands authenticate via the
VALIDATION_RUNNER_CLIENT_IDandVALIDATION_RUNNER_CLIENT_SECRETservice credentials using Client Credentials flow.
ADEPT supports running multiple isolated gateway instances on a single host using Docker Compose multi-stack configuration:
| Component | Purpose |
|---|---|
docker-compose.core.yaml |
Primary stack (default ports) |
docker-compose.multi-stack.yaml |
Additional isolated instances |
Each stack operates independently with its own Agent Gateway, Orchestration Service, MCP tool servers, and Gateway Registry entry.
Stacks discover each other through the shared Gateway Registry, forming the federated mesh automatically upon startup.
Each gateway publishes an AgentCard describing its capabilities:
{
"alias": "research-gateway",
"public_url": "https://gateway.example.com",
"capabilities": [
"description:Scientific research agent with HPC access",
"tag:genomics",
"tag:proteomics"
]
}Peer gateways use AgentCards to route requests to the most appropriate agent for a given task domain.
Getting Started
Architecture
- Overview
- MCP Tool System
- Slurm HPC Integration
- Multi-Agent Orchestration
- A2A Federation
- Security Model
Deployment
User Guides
Developer Tools
CI/CD
Testing
Contributing
Reference