[Feature request]: A2A (Agent2Agent Protocol) integration support for providing more tools and context to agents?
What do you need?
Could we achieve more via Fabric if could manage to somehow integrate A2A (Agent2Agent Protocol) and Fabric?
A2A (Agent2Agent Protocol) is a new open protocol enabling communication and interoperability between agentic AI applications (that is complementary to the MCP protocol (which someone posted a seperate feature request for here -> https://github.com/danielmiessler/fabric/issues/1387 )
Any thoughts if can integrate support "A2A" (Agent2Agent) open protocol? Development of it is lead by Google:
-
https://developers.googleblog.com/en/a2a-a-new-era-of-agent-interoperability/
-
https://google.github.io/A2A/#/
-
https://github.com/google/A2A
-
A2A is an open protocol that complements Anthropic's Model Context Protocol (MCP), which provides helpful tools and context to agents. A2A protocol is designed to address the challenges identified in deploying large-scale, multi-agent systems. A2A empowers developers to build agents capable of connecting with any other agent built using the protocol and offers users the flexibility to combine agents from various providers. Critically, businesses benefit from a standardized method for managing their agents across diverse platforms and cloud environments. We believe this universal interoperability is essential for fully realizing the potential of collaborative AI agents.
https://youtube.com/watch?v=rAeqTaYj_aI
- https://www.koyeb.com/blog/a2a-and-mcp-start-of-the-ai-agent-protocol-wars#what-is-googles-a2a
While introducing A2A, Google claims building AI agentic system demands two layers:
- Tools and data integration: Standard ways for agents/LLMs access external sources and tools
- Agent-to-agent communication: A standard way for determines how agents interact with one another
MCP focuses on the first category: organizing what agents, tools, or users send into the model, whereas A2A focuses on the second category: coordination between intelligent agents. On the other hand, by separating tools from agents, Google is able to position A2A as complementary to — rather than in competition with — MCP.
https://youtu.be/vIfagfHOLmI?si=pKEOugt3oZJlWRaj
- https://blog.logto.io/a2a-mcp
https://www.youtube.com/watch?v=voaKr_JHvF4
An open protocol enabling communication and interoperability between opaque agentic applications.
One of the biggest challenges in enterprise AI adoption is getting agents built on different frameworks and vendors to work together. That’s why we created an open Agent2Agent (A2A) protocol, a collaborative way to help agents across different ecosystems communicate with each other. Google is driving this open protocol initiative for the industry because we believe this protocol will be critical to support multi-agent communication by giving your agents a common language – irrespective of the framework or vendor they are built on. With A2A, agents can show each other their capabilities and negotiate how they will interact with users (via text, forms, or bidirectional audio/video) – all while working securely together.
See A2A in Action
Watch this demo video to see how A2A enables seamless communication between different agent frameworks.
Conceptual Overview
The Agent2Agent (A2A) protocol facilitates communication between independent AI agents. Here are the core concepts:
- Agent Card: A public metadata file (usually at
/.well-known/agent.json) describing an agent's capabilities, skills, endpoint URL, and authentication requirements. Clients use this for discovery. - A2A Server: An agent exposing an HTTP endpoint that implements the A2A protocol methods (defined in the json specification). It receives requests and manages task execution.
- A2A Client: An application or another agent that consumes A2A services. It sends requests (like
tasks/send) to an A2A Server's URL. - Task: The central unit of work. A client initiates a task by sending a message (
tasks/sendortasks/sendSubscribe). Tasks have unique IDs and progress through states (submitted,working,input-required,completed,failed,canceled). - Message: Represents communication turns between the client (
role: "user") and the agent (role: "agent"). Messages containParts. - Part: The fundamental content unit within a
MessageorArtifact. Can beTextPart,FilePart(with inline bytes or a URI), orDataPart(for structured JSON, e.g., forms). - Artifact: Represents outputs generated by the agent during a task (e.g., generated files, final structured data). Artifacts also contain
Parts. - Streaming: For long-running tasks, servers supporting the
streamingcapability can usetasks/sendSubscribe. The client receives Server-Sent Events (SSE) containingTaskStatusUpdateEventorTaskArtifactUpdateEventmessages, providing real-time progress. - Push Notifications: Servers supporting
pushNotificationscan proactively send task updates to a client-provided webhook URL, configured viatasks/pushNotification/set.
FYI, there's a directly related discussion about MCP server and A2A support here but for a very specific and narrow use case of Home Assistant integration (which already has MCP support today):
- https://github.com/danielmiessler/fabric/discussions/1322
I think MCP and A2A should both be created as standalone server projects. The Fabric source code should remain focused on its primary purpose.
See the discussion in this recent PR:
#1450
Also, inspired by that discussion with @PipeDionisio and my own investigations, I'm creating a full-fledged MCP server (possibly in Python, maybe in Go).
Feel free to discuss it here: #1454
I released fabric-mcp recently: https://github.com/ksylvan/fabric-mcp
Does this solution satisfy what this issue is about?
Also, look through the DeepWiki documentation: https://deepwiki.com/ksylvan/fabric-mcp
@Hedda
I released fabric-mcp recently: https://github.com/ksylvan/fabric-mcp
Does this solution satisfy what this issue is about?
No this request is about Google's A2A protocol, not the MCP protocol, but your solution however directly relates to misteral's issue:
- https://github.com/danielmiessler/fabric/issues/1387
That is, A2A and MCP are complementary protocols, but they are not the same and as such they do not direcly replace each other.
I think MCP and A2A should both be created as standalone server projects. The Fabric source code should remain focused on its primary purpose.
@ksylvan I guess one of the best way forward could be for someone to create a Fabric-A2A project (i.e. a Fabric A2A Server)? ... or do you think it would be a better solution if someone added support for Google's A2A protocol to your Fabric MCP Server? 😉