Agent-to-agent protocols
Protocols for discovering remote agents, negotiating supported interfaces, exchanging messages, and tracking long-running tasks across organizational boundaries.
Use it when
- Agents are owned, deployed, or secured by different systems.
- A remote task needs discovery, lifecycle state, artifacts, and asynchronous updates.
- Integration should not depend on exposing an agent's internal memory or implementation.
Choose another layer when
- Calling a deterministic data or action tool; MCP or an API is usually clearer.
- Delegating to an in-process worker controlled by the same runtime.
Production path
Build it in this order
- 01
Publish an accurate capability card
Describe the agent's identity, interfaces, authentication expectations, and supported skills without overstating what is production-ready.
Quality check: A client can discover whether the agent is compatible before sending a task.
- 02
Model task lifecycle explicitly
Handle accepted, working, input-required, completed, failed, and canceled states with stable identifiers.
Quality check: Retries and reconnects do not create ambiguous duplicate work.
- 03
Secure every boundary
Authenticate callers, authorize tasks, minimize shared data, validate artifacts, and preserve an audit trail.
Quality check: A remote agent cannot exceed the capabilities granted to the requesting identity.
Artifacts you may see
- /.well-known/agent-card.json
- A2A task schemas
- message and artifact types
Connected layers
Evidence ledger
Primary documentation behind this guide
Provider-specific behavior is sourced to that provider. Open standards are sourced to their specifications and official maintainers.