// publish_a2a
Publishing an A2A Endpoint
Register an Agent-to-Agent (A2A) protocol endpoint on AgentRoot. A2A endpoints allow agents to discover each other, negotiate capabilities, and exchange tasks using a standardized protocol.
// prerequisites
- A domain you control (e.g.
orchestr.ai) - An A2A-compliant agent serving an
agent.json descriptor - DNS access to add TXT records
- A web server to host the manifest
1Create your manifest
An A2A record points to your agent's agent.json endpoint, which describes its capabilities using the A2A protocol specification.
{
"domain": "orchestr.ai",
"records": [
{
"id": "task-planner",
"type": "a2a",
"name": "Task Planner Agent",
"description": "Breaks down complex tasks into subtasks and delegates to specialized agents",
"endpoint": "https://orchestr.ai/.well-known/agent.json",
"capabilities": ["task-decomposition", "delegation", "progress-tracking"],
"supports": {
"streaming": true,
"pushNotifications": true,
"stateTransitionHistory": true
}
}
]
}
Key fields for A2A records:
type must be "a2a"endpoint points to the agent.json descriptor URLcapabilities lists what the agent can do (used for agent discovery)supports declares A2A protocol features the agent implements
Your agent.json at the endpoint should follow the A2A spec:
{
"name": "Task Planner Agent",
"description": "Breaks down complex tasks into subtasks and delegates to specialized agents",
"url": "https://orchestr.ai/a2a",
"version": "1.0.0",
"capabilities": {
"streaming": true,
"pushNotifications": true,
"stateTransitionHistory": true
},
"skills": [
{
"id": "task-decomposition",
"name": "Task Decomposition",
"description": "Analyzes a complex goal and produces an ordered list of subtasks"
},
{
"id": "delegation",
"name": "Agent Delegation",
"description": "Routes subtasks to the best available agent based on capabilities"
}
]
}
A2A skills are different from AgentRoot skill records. A2A skills describe what an agent can do within the A2A protocol. AgentRoot skill records are Markdown documents that teach coding agents how to perform tasks.
2Host the manifest
https://orchestr.ai/.well-known/agentroot.json
Make sure both the manifest and the agent.json endpoint are publicly accessible.
3Add the DNS record
_agentroot.orchestr.ai TXT "v=ar1 manifest=https://orchestr.ai/.well-known/agentroot.json"
4Submit to AgentRoot
The CLI does a local DNS probe first, then posts to /api/submit:
$ npx -p @agent-root/cli agent-root submit orchestr.ai
Or via the API directly:
$ curl -X POST https://agentroot.io/api/submit \
-H "Content-Type: application/json" \
-d '{"domain": "orchestr.ai"}'
5Verify it worked
$ npx -p @agent-root/cli agent-root search "task planning" --type a2a
orchestr.ai/task-planner a2a Task Planner Agent
capabilities: task-decomposition, delegation, progress-tracking
supports: streaming, pushNotifications, stateTransitionHistory
Other A2A-compatible agents can now discover your endpoint through DNS and initiate task exchanges. View your manifest at https://agentroot.io/manifest/orchestr.ai to confirm everything is listed.
// next_steps