From 3b646b149649f4d020d3a38c114f49e77686d831 Mon Sep 17 00:00:00 2001 From: Sim Pi Agent Date: Tue, 10 Nov 2026 18:29:52 +0000 Subject: [PATCH 1/2] feat(library): Best AI Agent Platforms That Support the A2A Protocol in 2026 --- .../index.mdx | 188 ++++++++++++++++++ .../cover.jpg | Bin 0 -> 27657 bytes 2 files changed, 188 insertions(+) create mode 100644 apps/sim/content/library/best-ai-agent-platforms-a2a-protocol-2026/index.mdx create mode 100644 apps/sim/public/library/best-ai-agent-platforms-a2a-protocol-2026/cover.jpg diff --git a/apps/sim/content/library/best-ai-agent-platforms-a2a-protocol-2026/index.mdx b/apps/sim/content/library/best-ai-agent-platforms-a2a-protocol-2026/index.mdx new file mode 100644 index 00000000000..b6df6d46614 --- /dev/null +++ b/apps/sim/content/library/best-ai-agent-platforms-a2a-protocol-2026/index.mdx @@ -0,0 +1,188 @@ +--- +slug: best-ai-agent-platforms-a2a-protocol-2026 +title: 'Best AI Agent Platforms That Support the A2A Protocol in 2026' +seoTitle: 'AI Agent Platforms with A2A Support in 2026' +description: 'Compare Sim, Google ADK, AWS Strands Agents, Microsoft Agent Framework, and CrewAI for A2A agent discovery, messaging, and task coordination.' +date: 2026-11-10 +updated: 2026-11-10 +authors: + - andrew +readingTime: 8 +tags: [AI Agents, A2A, Multi-Agent Systems, MCP, Sim] +ogImage: /library/best-ai-agent-platforms-a2a-protocol-2026/cover.jpg +draft: false +faq: + - q: "Which AI agent tools support standardized protocols for agents talking to other agents?" + a: "Sim, Google Agent Development Kit, AWS Strands Agents, Microsoft Agent Framework, and CrewAI document support for the A2A protocol as of November 2026." + - q: "What are the best AI agent platforms that support agent to agent communication protocols?" + a: "Sim fits teams calling A2A agents from visual workflows, while Google Agent Development Kit, AWS Strands Agents, Microsoft Agent Framework, and CrewAI fit teams implementing A2A clients and remote agents in code." + - q: "What is the best platform for agents that need to hand off tasks to other agents mid workflow?" + a: "Sim fits visual mid-workflow handoffs because its A2A integration documents Send Message, Get Task, Cancel Task, and Get Agent Card operations." + - q: "What are the top AI agent tools for coordinating specialized agents that each handle one part of a task?" + a: "Sim fits visual cross-platform coordination, while Google Agent Development Kit, AWS Strands Agents, Microsoft Agent Framework, and CrewAI fit code-first coordination between specialized agents." + - q: "Does Sim support A2A?" + a: "Sim supports A2A as a client through Send Message, Get Task, Cancel Task, and Get Agent Card operations." + - q: "Can Sim expose a workflow as an A2A agent?" + a: "Sim's A2A integration documentation does not document exposing a Sim workflow as an A2A server as of November 2026." + - q: "What authentication does Sim use for A2A?" + a: "Sim accepts an A2A endpoint URL and an optional API key, while the remote agent remains responsible for authenticating callers and authorizing access to task IDs." + - q: "Are A2A task IDs scoped to Sim?" + a: "Sim does not scope remote A2A task IDs, so the remote agent must prevent unauthorized users from retrieving or cancelling tasks belonging to other callers." + - q: "Is A2A the same as MCP?" + a: "A2A is not the same as MCP because A2A connects agents to agents, while MCP connects AI applications and agents to tools, resources, prompts, and data." + - q: "Can A2A and MCP be used together?" + a: "A2A and MCP can be used together when A2A coordinates independent agents and MCP gives each agent access to the tools and data it needs." + - q: "Does n8n support A2A?" + a: "n8n documents internal agent delegation and MCP connectivity, but its first-party node documentation does not describe native A2A client or trigger nodes as of November 2026." + - q: "Is n8n open source?" + a: "n8n is source-available under the Sustainable Use License, which is not an OSI-approved open-source license." + - q: "Is Sim open source?" + a: "Sim's core is open source under Apache 2.0, while apps/sim/ee is governed by the separate Sim Enterprise License and requires an active Enterprise subscription for production use." + - q: "Does Google Agent Development Kit support A2A?" + a: "Google Agent Development Kit documents A2A client, remote-agent exposure, Agent Card, and task-oriented interoperability capabilities as of November 2026." + - q: "Does AWS Strands Agents support A2A?" + a: "AWS Strands Agents documents A2A client and server patterns for code-first agent applications as of November 2026." + - q: "Does Microsoft Agent Framework support A2A?" + a: "Microsoft Agent Framework documents A2A integration for interoperating with and hosting compatible agents as of November 2026." + - q: "Does CrewAI support A2A?" + a: "CrewAI documents A2A interoperability for connecting CrewAI applications with external agents as of November 2026." + - q: "Does A2A provide authentication?" + a: "A2A defines how agents advertise supported security schemes, but each deployment must implement credential validation, authorization, and secure transport correctly." + - q: "Does A2A support long-running tasks?" + a: "A2A supports task-oriented interactions that let clients inspect state and manage work that does not finish in one synchronous response." + - q: "Does A2A support task cancellation?" + a: "A2A supports cancellation requests, but the remote agent controls whether and how a running task can be cancelled." + - q: "What is an A2A Agent Card?" + a: "An A2A Agent Card is metadata that describes a remote agent's identity, endpoint, skills, capabilities, and supported security schemes." + - q: "What should enterprises test before adopting A2A?" + a: "Enterprises should test Agent Card discovery, authentication, task-level authorization, cancellation, retries, idempotency, timeouts, auditability, and end-to-end tracing before adopting A2A." +--- + +## TL;DR + +Sim, Google Agent Development Kit, AWS Strands Agents, Microsoft Agent Framework, and CrewAI document support for building or connecting agents through the Agent2Agent protocol as of November 2026. Sim fits teams that want A2A client calls inside a visual workflow. The other four fit code-first teams that need to consume remote agents, expose agents as A2A servers, or both. + +A2A is an open protocol for discovering remote agents, sending messages, tracking tasks, and coordinating work across agent systems. MCP primarily standardizes how AI applications connect to tools and data. + +## Which AI agent tools support standardized protocols for agents talking to other agents? + +The documented shortlist includes a visual workspace and code-first SDKs because A2A operates at the communication layer rather than requiring one type of agent builder. Support varies: some products act as A2A clients, while others can both consume and expose agents. + +| Platform or toolkit | Fit | Documented A2A role | +|---|---|---| +| Sim | Visual workflows that call external A2A agents | Client | +| Google Agent Development Kit | Application-controlled remote agents and clients | Client and server | +| AWS Strands Agents | Code-first agents in AWS-centered architectures | Client and server | +| Microsoft Agent Framework | Microsoft and Azure agent applications | Client and server | +| CrewAI | Code-first teams of specialized agents | Client and server | + +This comparison focuses on documented A2A operations, discovery, task lifecycle behavior, security boundaries, MCP interoperability, and visibility into cross-agent calls. For the broader category, see [Best AI Agent Platforms and Builders in 2026](https://www.sim.ai/library/best-ai-agent-platforms-2026). + +## A2A support compared + +| Platform or toolkit | Client and discovery support | Server support | MCP and observability context | +|---|---|---|---| +| [Sim](https://docs.sim.ai/integrations/a2a) | Send Message, Get Task, Cancel Task, and Get Agent Card | The A2A integration documents client actions, not A2A server deployment | A2A calls appear as workflow steps in execution logs | +| [Google Agent Development Kit](https://github.com/google/adk-docs/blob/main/docs/a2a/intro.md) | Remote A2A agents and Agent Card discovery | ADK agents can be exposed over A2A | ADK distinguishes remote A2A agents from local sub-agents | +| [AWS Strands Agents](https://strandsagents.com/docs/user-guide/sdk/multi-agent/agent-to-agent/) | Remote-agent client and Agent Card discovery | A2A server wrapper for Strands agents | Strands also documents [MCP client tools](https://strandsagents.com/docs/user-guide/sdk/tools/mcp-tools/) | +| [Microsoft Agent Framework](https://learn.microsoft.com/en-us/agent-framework/journey/agent-to-agent) | A2A agent service for discovery and remote calls | A2A hosting packages expose compatible agents | The framework provides [OpenTelemetry-compatible instrumentation](https://learn.microsoft.com/en-us/agent-framework/agents/observability) | +| [CrewAI](https://docs.crewai.com/v1.15.25/en/learn/a2a-agent-delegation) | Remote A2A delegation and discovery | CrewAI agents can operate as A2A servers | CrewAI separates A2A delegation from its internal crew model | + +These entries describe first-party documentation as of November 2026. Authentication, authorization, hosting, and observability remain deployment concerns even when a toolkit implements the protocol. + +## What is the A2A protocol? + +The [Agent2Agent protocol](https://a2a-protocol.org/latest/specification/) is an open standard that lets independent AI agents discover one another's capabilities, exchange messages, and manage long-running tasks. + +An A2A Agent Card advertises an agent's identity, endpoint, skills, capabilities, and supported security schemes. A client can use that information to select an agent, send work, inspect task state, receive results, and request cancellation when the remote implementation supports those operations. + +A2A is useful when agents are owned by different teams, run on different platforms, or need to evolve independently. [Can AI Agents Talk to Each Other? Multi-Agent Communication Explained](https://www.sim.ai/library/can-ai-agents-talk-to-each-other-multi-agent-communication-explained) covers direct calls, shared state, event-driven coordination, and supervisor patterns. + +## What is the difference between A2A and MCP? + +A2A standardizes agent-to-agent collaboration, while [MCP standardizes connections from AI applications to external systems](https://modelcontextprotocol.io/docs/2026-07-28/getting-started/intro), including tools, resources, prompts, and data services. + +| Question | A2A | MCP | +|---|---|---| +| What connects? | An agent to another agent | An AI application or agent to tools and context | +| What is discovered? | Agent identity, skills, endpoint, capabilities, and security information | Tools, resources, prompts, and server capabilities | +| What work is modeled? | Messages and potentially long-running tasks | Tool calls and context retrieval | +| Does it support task state? | Yes, A2A defines task-oriented interactions | MCP focuses on server capabilities and tool or resource operations | +| Typical example | A procurement agent delegates contract review to a legal agent | A procurement agent queries a vendor database through an MCP server | +| Should teams use both? | Yes, A2A can coordinate agents that each use MCP tools | Yes, MCP can supply tools to agents participating in A2A interactions | + +Teams evaluating tool connectivity can compare implementations in [Best AI Agent Builders with MCP Support](https://www.sim.ai/library/best-ai-agent-builders-with-mcp-support). The companion guide, How to Connect an MCP Server to an AI Agent Workflow, explains the setup pattern. + +## What fits agents that hand off tasks mid-workflow? + +Sim fits teams that need to place an A2A handoff inside a visual workflow. [Sim's A2A integration](https://docs.sim.ai/integrations/a2a) accepts a remote endpoint URL and an optional API key, then exposes four operations: + +- **A2A Send Message** sends a request to the remote agent. +- **A2A Get Task** retrieves the state of a remote task. +- **A2A Cancel Task** requests cancellation of a remote task. +- **A2A Get Agent Card** retrieves the remote agent's advertised metadata and capabilities. + +Sim is the open-source AI workspace where teams build, deploy, and manage AI agents. Calls to a remote agent run as workflow steps, so teams can connect the result to conditions, approvals, data operations, and other agent logic. + +A2A task IDs are not scoped to Sim. The remote A2A agent must authenticate and authorize requests so one caller cannot inspect or cancel another caller's task merely by obtaining its identifier. Sim's documented integration is an A2A client, and the integration page does not document deploying a Sim workflow as an A2A server. + +## Which tools fit coordination between specialized agents? + +Sim fits visual cross-platform coordination. Google Agent Development Kit, AWS Strands Agents, Microsoft Agent Framework, and CrewAI fit teams that want to implement specialized agents in code. + +A useful division of responsibility is to let each specialist own one bounded capability, expose that capability through A2A, and use a coordinator or supervisor to decide when to delegate. Each specialist can then use MCP or conventional APIs to reach its own tools. + +For example, an intake agent can delegate document extraction to one remote agent, risk review to another, and customer communication to a third. The coordinator should retain task IDs, enforce timeouts, handle failures, and record which remote agent produced each result. [Best Multi-Agent Frameworks for Production in 2026](https://www.sim.ai/library/best-multi-agent-frameworks-2026) explains more code-first supervisor and role-based patterns. + +## What is Google Agent Development Kit fit for? + +Google Agent Development Kit fits developers who want a code-first A2A implementation that can both consume remote agents and expose agents to other A2A clients. + +[Google ADK documents](https://github.com/google/adk-docs/blob/main/docs/a2a/intro.md) remote agents, A2A exposure, Agent Cards, and the distinction between local sub-agents and agents reached over a network. It fits teams that want protocol behavior, deployment, routing, and state handling under application-code control. The [Python toolkit uses the Apache 2.0 license](https://github.com/google/adk-python/blob/main/LICENSE). + +## What is AWS Strands Agents fit for? + +AWS Strands Agents fits engineering teams building code-first A2A systems in an AWS-centered architecture. + +[Strands documents A2A client and server patterns](https://strandsagents.com/docs/user-guide/sdk/multi-agent/agent-to-agent/) for discovering remote agents and exposing Strands agents through the protocol. Its [MCP client documentation](https://strandsagents.com/docs/user-guide/sdk/tools/mcp-tools/) covers connecting agents to external tool servers. Teams remain responsible for hosting, production authentication, and operational telemetry. + +## What is Microsoft Agent Framework fit for? + +Microsoft Agent Framework fits developers building interoperable agents in Microsoft-oriented application and Azure environments. + +Microsoft documents an [A2A agent service for remote discovery and calls](https://learn.microsoft.com/en-us/agent-framework/integrations/by-component/agent-services/a2a) and [A2A hosting](https://learn.microsoft.com/en-us/agent-framework/hosting/self-hosting/a2a/server) for compatible agents. The framework also provides [OpenTelemetry-compatible observability](https://learn.microsoft.com/en-us/agent-framework/agents/observability). This code-first approach gives teams control over deployment while leaving them responsible for operating the surrounding application. + +## What is CrewAI fit for? + +CrewAI fits developers who want role-based teams of specialized agents with A2A interoperability at the system boundary. + +[CrewAI's A2A documentation](https://docs.crewai.com/v1.15.25/en/learn/a2a-agent-delegation) describes remote delegation and operation as an A2A-compliant server agent. CrewAI's native crew and task abstractions handle coordination within a CrewAI application, while A2A connects that application to external agents. Teams should distinguish internal CrewAI delegation from cross-system calls made through A2A. + +## Does n8n support the A2A protocol? + +n8n documents multi-agent coordination through its [AI Agent Tool](https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.toolaiagent) and external tool connectivity through its [MCP Client Tool](https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.toolmcp). Those nodes cover internal delegation and agent-to-tool communication, not native A2A client and server roles. The first-party node documentation does not describe the A2A Client Tool and A2A Trigger claimed in some third-party community packages as native n8n nodes as of November 2026. + +n8n is source-available under the [Sustainable Use License](https://github.com/n8n-io/n8n/blob/master/LICENSE.md), not OSI-approved open source. Teams should review those terms when comparing redistribution and commercial hosting rights. + +## Deployment and licensing notes + +Sim's core uses Apache 2.0 and can be self-hosted, while code in `apps/sim/ee` uses the separate [Sim Enterprise License](https://github.com/simstudioai/sim/blob/main/apps/sim/ee/LICENSE). The enterprise code is free for development, testing, and internal non-production use, but production use requires an active Sim Enterprise subscription. + +Google ADK's Python toolkit uses Apache 2.0. n8n uses the Sustainable Use License for most of its main-branch source, with separate terms for enterprise code. Teams evaluating the other SDKs should review the current license and hosting terms for the exact packages they plan to deploy. + +## How should teams evaluate A2A platforms? + +Teams should choose an A2A platform by testing discovery, authorization, task lifecycle behavior, failure handling, and traceability rather than checking only for an A2A logo. + +1. Confirm whether the product is an A2A client, an A2A server, or both. +2. Retrieve the remote Agent Card and validate its endpoint, skills, capabilities, and security declarations. +3. Send a task that lasts long enough to require state checks rather than only a synchronous response. +4. Test cancellation and confirm the remote agent enforces authorization for the supplied task ID. +5. Rotate or revoke credentials and confirm failed calls do not leak task data. +6. Trace one request across the coordinator, remote agent, model calls, and tool calls. +7. Test retries and idempotency so a network failure does not duplicate consequential work. +8. Confirm whether each remote agent can use MCP when it needs tools or private data. + +## Related comparison + +[AI Agent Orchestration Frameworks Explained](https://www.sim.ai/library/ai-agent-orchestration-frameworks-explained) covers the architecture choices behind supervisors, routing, shared state, and distributed agent coordination. Use it alongside this A2A comparison when deciding which responsibilities belong in the protocol and which belong in the coordinator. diff --git a/apps/sim/public/library/best-ai-agent-platforms-a2a-protocol-2026/cover.jpg b/apps/sim/public/library/best-ai-agent-platforms-a2a-protocol-2026/cover.jpg new file mode 100644 index 0000000000000000000000000000000000000000..da86b3f3de00e1aa50af645f2a2fd1f4de36a6ad GIT binary patch literal 27657 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 T0u_Mni~pwt{>57Vlvw&NYwml- literal 0 HcmV?d00001 From 3f373034ca34c04edbb5034737c726f8cc98fc92 Mon Sep 17 00:00:00 2001 From: Sim Pi Agent Date: Tue, 10 Nov 2026 18:36:19 +0000 Subject: [PATCH 2/2] Pi Babysit: address PR #9843 feedback --- .../best-ai-agent-platforms-a2a-protocol-2026/index.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/sim/content/library/best-ai-agent-platforms-a2a-protocol-2026/index.mdx b/apps/sim/content/library/best-ai-agent-platforms-a2a-protocol-2026/index.mdx index b6df6d46614..7e017aa1d3b 100644 --- a/apps/sim/content/library/best-ai-agent-platforms-a2a-protocol-2026/index.mdx +++ b/apps/sim/content/library/best-ai-agent-platforms-a2a-protocol-2026/index.mdx @@ -25,7 +25,7 @@ faq: - q: "Can Sim expose a workflow as an A2A agent?" a: "Sim's A2A integration documentation does not document exposing a Sim workflow as an A2A server as of November 2026." - q: "What authentication does Sim use for A2A?" - a: "Sim accepts an A2A endpoint URL and an optional API key, while the remote agent remains responsible for authenticating callers and authorizing access to task IDs." + a: "Sim sends the optional API key only in the X-API-Key header, so the field does not support agents that require Bearer authentication. Agent Card discovery occurs before the key is attached, so the card must be publicly readable." - q: "Are A2A task IDs scoped to Sim?" a: "Sim does not scope remote A2A task IDs, so the remote agent must prevent unauthorized users from retrieving or cancelling tasks belonging to other callers." - q: "Is A2A the same as MCP?" @@ -115,7 +115,7 @@ Teams evaluating tool connectivity can compare implementations in [Best AI Agent ## What fits agents that hand off tasks mid-workflow? -Sim fits teams that need to place an A2A handoff inside a visual workflow. [Sim's A2A integration](https://docs.sim.ai/integrations/a2a) accepts a remote endpoint URL and an optional API key, then exposes four operations: +Sim fits teams that need to place an A2A handoff inside a visual workflow. [Sim's A2A integration](https://docs.sim.ai/integrations/a2a) accepts a remote endpoint URL and an optional API key. Sim sends the key only through the `X-API-Key` header, so the field does not support agents that require Bearer authentication. Agent Card discovery occurs before Sim attaches the key, so the card must be publicly readable. The integration exposes four operations: - **A2A Send Message** sends a request to the remote agent. - **A2A Get Task** retrieves the state of a remote task.