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 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 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 athttps://outbind.ai/.well-known/agent-card.json). - Endpoint:
POST https://app.outbind.ai/api/a2a, JSON-RPC 2.0. Methodsmessage/send(A2A 0.3) andSendMessage(1.0). - Sign-in:
Authorization: Bearerwith an OAuth token (Connect, or auth.md agent registration) or an AI assistant keyob_…. See Create an account.
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.
{
"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):
{
"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.