# Use Outbind as an A2A agent

> Call Obi's brain from another agent over the A2A protocol: the agent card, sign-in, how to name a skill, and what comes back.

Outbind's brain is also an [A2A](https://a2a-protocol.org) agent, so another agent can hire it to remember prospects, write sales emails and replies, score fit and sort replies. Every skill is one [brain tool](https://outbind.ai/docs/tools) and runs through the same checks and limits as MCP. Nothing is ever sent.

- **Agent card:** `https://app.outbind.ai/.well-known/agent-card.json` (also at `https://outbind.ai/.well-known/agent-card.json`).
- **Endpoint:** `POST https://app.outbind.ai/api/a2a`, JSON-RPC 2.0. Methods `message/send` (A2A 0.3) and `SendMessage` (1.0).
- **Sign-in:** `Authorization: Bearer` with an OAuth token (Connect, or [auth.md agent registration](https://outbind.ai/auth.md)) or an AI assistant key `ob_…`. See [Create an account](https://outbind.ai/docs/sign-up).

## Calling a skill

Put the skill and its arguments in a data part. The arguments are the tool's, listed on the card and in [Brain tools](https://outbind.ai/docs/tools).

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "message/send",
  "params": {
    "message": {
      "role": "user",
      "messageId": "9f1c…",
      "parts": [
        { "kind": "data", "data": { "skill": "write_email", "arguments": { "prospect": { "email": "jane@acme.com" }, "instructions": "mention their new Madrid office" } } }
      ]
    }
  }
}
```

The answer is a message with a text part (what happened) and a data part (the tool's result):

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "kind": "message",
    "role": "agent",
    "parts": [
      { "kind": "text", "text": "Write a sales email: done. The result is in the data part. Nothing was sent." },
      { "kind": "data", "data": { "subject": "…", "body": "…", "issues": [] } }
    ]
  }
}
```

A call the plan or role doesn't allow comes back as a data part `{ "error": { "code", "message" } }`; read the message to the person. A message with no skill gets a reply listing the skills.

## Not offered

Streaming, tasks and push notifications: every call finishes in one answer. `tasks/get` answers that there are no tasks.

## Next

[Brain tools](https://outbind.ai/docs/tools) · [Outbind for AI agents](https://outbind.ai/docs/agents)
