Agents

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.

xct@solar:~
# 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.

01

Snapshot

Every PUT/PATCH writes to LiteLLM_AgentVersionTable

02

Inspect

GET /v1/agents/{id}/versions returns full history

03

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".

Orchestrate Agents Read the docs →

Build your first Agent

Free tier includes 3 registered agents and 500 A2A invocations per month.

Start free