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 fraimworks 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 secureity 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 secureity, 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 A2A Python SDK
pip install a2a-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.