An open protocol enabling communication and interoperability between opaque agentic applications.
The Agent2Agent (A2A) protocol addresses a critical challenge in the AI landscape: enabling gen AI agents, built on diverse frameworks by different companies running on separate servers, to communicate and collaborate effectively - as agents, not just as tools. A2A aims to provide a common language for agents, fostering a more interconnected, powerful, and innovative AI ecosystem.
With A2A, agents can:
- Discover each other's capabilities.
- Negotiate interaction modalities (text, forms, media).
- Securely collaborate on long running tasks.
- Operate without exposing their internal state, memory, or tools.
Watch this demo video to see how A2A enables seamless communication between different agent frameworks.
As AI agents become more prevalent, their ability to interoperate is crucial for building complex, multi-functional applications. A2A aims to:
- Break Down Silos: Connect agents across different ecosystems.
- Enable Complex Collaboration: Allow specialized agents to work together on tasks that a single agent cannot handle alone.
- Promote Open Standards: Foster a community-driven approach to agent communication, encouraging innovation and broad adoption.
- Preserve Opacity: Allow agents to collaborate without needing to share internal memory, proprietary logic, or specific tool implementations, enhancing security and protecting intellectual property.
- Standardized Communication: JSON-RPC 2.0 over HTTP(S).
- Agent Discovery: Via "Agent Cards" detailing capabilities and connection info.
- Flexible Interaction: Supports synchronous request/response, streaming (SSE), and asynchronous push notifications.
- Rich Data Exchange: Handles text, files, and structured JSON data.
- Enterprise-Ready: Designed with security, authentication, and observability in mind.
- 📚 Explore the Documentation: Visit the Agent2Agent Protocol Documentation Site for a complete overview, the full protocol specification, tutorials, and guides.
- 📝 View the Specification: A2A Protocol Specification
- 🎬 Use our samples to see A2A in action
- Sample A2A Client/Server (Python, JS)
- Multi-Agent Web App
- CLI (Python, JS)
- 🤖 Use our sample agents to see how to bring A2A to agent frameworks
- 📑 Review key topics to understand protocol details
We welcome community contributions to enhance and evolve the A2A protocol!
- Questions & Discussions: Join our GitHub Discussions.
- Issues & Feedback: Report issues or suggest improvements via GitHub Issues.
- Contribution Guide: See our CONTRIBUTING.md for details on how to contribute.
- Private Feedback: Use this Google Form.
- Partner Program: Google Cloud customers can join our partner program via this form.
- Agent Discovery:
- Formalize inclusion of authorization schemes and optional credentials directly within the
AgentCard
.
- Formalize inclusion of authorization schemes and optional credentials directly within the
- Agent Collaboration:
- Investigate a
QuerySkill()
method for dynamically checking unsupported or unanticipated skills.
- Investigate a
- Task Lifecycle & UX:
- Support for dynamic UX negotiation within a task (e.g., agent adding audio/video mid-conversation).
- Client Methods & Transport:
- Explore extending support to client-initiated methods (beyond task management).
- Improvements to streaming reliability and push notification mechanisms.
The A2A Protocol is an open-source project by Google LLC, under the Apache License 2.0, and is open to contributions from the community.