Expose any agent as a spec-compliant A2A protocol endpoint (v1.0).Documentation Index
Fetch the complete documentation index at: https://docs.orxhestra.com/llms.txt
Use this file to discover all available pages before exploring further.
Setup
Endpoints
| Method | Endpoint | Description |
|---|---|---|
GET | /.well-known/agent-card.json | Agent Card discovery |
POST | / | JSON-RPC 2.0 dispatch |
JSON-RPC methods (v1.0)
| Method (PascalCase) | Slug alias | Description |
|---|---|---|
SendMessage | message/send | Send a message, receive the completed Task |
SendStreamingMessage | message/stream | Send a message, receive an SSE stream of TaskStatusUpdateEvent / TaskArtifactUpdateEvent |
GetTask | tasks/get | Retrieve a task by id |
CancelTask | tasks/cancel | Cancel a running task |
ListTasks | tasks/list | Paginated history with optional contextId / state filters |
SubscribeToTask | tasks/resubscribe | Re-attach to an existing task’s SSE stream (e.g. after a client reconnect) |
GetExtendedAgentCard | agent/getAuthenticatedExtendedCard | Fetch the agent card augmented with extended_card_extras |
CreateTaskPushNotificationConfig | tasks/pushNotificationConfig/set | Register a webhook for a task |
GetTaskPushNotificationConfig | tasks/pushNotificationConfig/get | Read one config |
ListTaskPushNotificationConfigs | tasks/pushNotificationConfig/list | List all configs for a task |
DeleteTaskPushNotificationConfig | tasks/pushNotificationConfig/delete | Remove one config |
Both the PascalCase names and the spec slug aliases are accepted on every method, so you can call whichever your client library prefers.
Push notifications
Register an HTTPS webhook against a task; the server POSTs the streaming events (status + artifact updates) as they happen. Useful when the client can’t hold an SSE connection open for the full task lifetime.PushNotificationDispatcher SSRF-guards every URL: HTTPS
only, no localhost, no loopback / link-local / RFC1918 hosts. Pass
allow_insecure_webhooks=True (or your own dispatcher) to relax this
for development.
Task store extension
A2AServer stores tasks in an InMemoryTaskStore by default
(LRU-bounded at 10K entries). Swap in a persistent backend by
implementing the TaskStore protocol:
Spec compliance matrix
| v1.0 feature | Status |
|---|---|
| All 11 spec JSON-RPC methods | Supported |
AgentCard required fields (protocolVersion, defaultInputModes, defaultOutputModes, securitySchemes, …) | Supported |
SSE streaming (SendStreamingMessage + SubscribeToTask) | Supported |
| Push-notification webhook delivery | Supported (Bearer auth) |
Pluggable TaskStore / PushNotificationStore | Supported |
| Ed25519 message signing + DID resolution | Supported |
JWS-signed AgentCard signatures field | Schema-only (signing TBD) |
| OAuth 2.0 / OIDC enforcement middleware | Schema-only (securitySchemes advertised) |
| JWT / API-key / HMAC / Basic webhook auth | Bearer only this release |
| gRPC + REST bindings | Out of scope (JSON-RPC is the only advertised binding) |
Example requests
- Discover
- Send (blocking)
- Stream (SSE)
A2A Client (A2AAgent)
UseA2AAgent to call a remote A2A server from within your agent tree:
v1.0 Protocol Details
A2A v1.0 uses:- PascalCase JSON-RPC method names (
SendMessage, notmessage/send) - Lowercase role values (
user,agent) - Unified Part type with oneof content fields (
text,raw,url,data) plusmediaType supportedInterfaceson AgentCard (replaces top-levelurl)