---
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."
---
<!-- generated by src/lib/agentSkills/generator.ts; manual edits will be overwritten -->

## 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/reference/openapi.yaml` for detailed request/response schemas.

<!-- skill:custom-start -->
<!-- Migrated from skills/omniroute-a2a/SKILL.md (preserved curated content) -->

# 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
<!-- skill:custom-end -->
