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.
 
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 the SDKs:
- 🐍 A2A Python SDK 
pip install a2a-sdk - 🧑💻 A2A JS SDK 
npm install @a2a-js/sdk - ☕️ A2A Java SDK using maven
 - 🔷 A2A .NET SDK using NuGet 
dotnet add package A2A 
 - 🐍 A2A Python SDK 
 - 🎬 Use our samples to see A2A in action
 
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.
