Agents as
callable services.
A2A-protocol agents with discoverable cards, streaming invocation, and versioned history. Register once. Invoke from anywhere. Roll back any time.
Agent card discovery
Every agent exposes a .well-known/agent-card.json following the A2A spec. Discover, inspect, and invoke — no hard-coded endpoints.
Streaming invocation
SSE or NDJSON streams for real-time agent responses. The SDK switches automatically based on the Accept header.
Versioned snapshots
Every PUT/PATCH creates a snapshot. Roll back to any version with one POST. The audit trail stays linear — even rollback writes a new row.
Health checks + webhooks
Per-agent health_check_enabled + health_check_timeout_ms. Failed checks emit agent.healthcheck.failed webhooks to your endpoint.
Discovery via agent card
The agent card follows the A2A spec, served at a well-known URL. Query agents, then fetch their full declaration.
# 1. Search agents
GET /v1/agents?q=research&category=writing&supports_streaming=true
# 2. Fetch the agent card
GET /v1/agents/{'{agent_id}'}/.well-known/agent-card.json
# 3. Invoke (streaming)
POST /v1/a2a/{'{agent_id}'}/message/send
Accept: text/event-stream
{
"jsonrpc": "2.0",
"id": "req-1",
"method": "message/stream",
"params": { "message": { "role": "user", "parts": [{"text": "..."}] } }
} Versioned, auditable
Every mutation creates a snapshot. Roll back any time. The audit trail is append-only — even rollbacks write new rows.
Snapshot
Every PUT/PATCH writes to LiteLLM_AgentVersionTable
Inspect
GET /v1/agents/{id}/versions returns full history
Rollback
POST /v1/agents/{id}/rollback {"version_number": N}
Scoped discovery
Non-admin callers see: explicit grants ∪ public agents ∪ agents they own. No silent visibility creep — empty grants do not fall back to "see everything".
Build your first Agent
Free tier includes 3 registered agents and 500 A2A invocations per month.
Start free