--- name: omni-agents-a2a description: "Interact with OmniRoute via JSON-RPC 2.0 agent-to-agent protocol. 6 built-in A2A skills: smart-routing, quota-management, provider-discovery, cost-analysis, health-report, list-capabilities." --- ## Overview Interact with OmniRoute via JSON-RPC 2.0 agent-to-agent protocol. 6 built-in A2A skills: smart-routing, quota-management, provider-discovery, cost-analysis, health-report, list-capabilities. ## Authentication All requests require a valid Bearer token or session cookie. Obtain a token via `POST /api/auth/login` or configure `REQUIRE_API_KEY=false` for local development. ## Endpoints _No endpoints mapped for this area yet._ ## Payloads See the full OpenAPI specification at `GET /api/openapi/spec` or `docs/openapi.yaml` for detailed request/response schemas. # OmniRoute — A2A Protocol Requires `OMNIROUTE_URL` and `OMNIROUTE_KEY`. See [entry-point SKILL](https://raw.githubusercontent.com/diegosouzapw/OmniRoute/main/skills/omniroute/SKILL.md) for setup. OmniRoute publishes an Agent Card at `/.well-known/agent.json` and accepts JSON-RPC 2.0 calls at `/a2a`. ## Discovery ```bash curl $OMNIROUTE_URL/.well-known/agent.json ``` Returns Agent Card with skills, endpoints, auth scheme. ## Available skills | Skill | Purpose | | -------------------- | ----------------------------------------------------------------------------------- | | `smart-routing` | Given a prompt, recommends best provider/model combo | | `quota-management` | Reports quota balance for given provider/account | | `provider-discovery` | Lists providers matching capability filters (vision, JSON mode, tools, max-context) | | `cost-analysis` | Estimates cost for a given request shape | | `health-report` | Returns system health (circuit states, latencies, errors) | ## Call example (JSON-RPC 2.0) ```bash curl -X POST $OMNIROUTE_URL/a2a \ -H "Authorization: Bearer $OMNIROUTE_KEY" \ -H "Content-Type: application/json" \ -d '{ "jsonrpc": "2.0", "method": "tasks/send", "params": { "skillId": "smart-routing", "input": { "prompt_length": 4000, "tools": true, "vision": false } }, "id": 1 }' ``` ## Response shape ```json { "jsonrpc": "2.0", "result": { "taskId": "...", "status": "completed", "output": { "recommended_combo": "...", "reasoning": "..." } }, "id": 1 } ``` ## Errors - `-32600` → invalid request (bad JSON-RPC envelope) - `-32601` → method not found (check `method` field) - `-32602` → invalid params (check `skillId` against Agent Card) - `401` → missing/invalid `OMNIROUTE_KEY` ## Reference Full docs: https://github.com/diegosouzapw/OmniRoute/blob/main/docs/frameworks/A2A-SERVER.md