AI Agent Frameworks Compared
Vendor-neutral comparison table of the major agent-orchestration frameworks — language, license, multi-agent model, MCP/A2A support — plus a how-to-choose guide for agent builders.
Nine major frameworks compete for the agent-orchestration layer. Each makes a different architectural bet. This page is a current, agent-consumable reference — not a tutorial. All facts are web-verified as of June 2026; check the source links before pinning a choice.
Framework comparison table
| Framework | Maintainer | Language(s) | License | Multi-agent model | MCP | A2A | Notable for agents |
|---|---|---|---|---|---|---|---|
| OpenAI Agents SDK | OpenAI | Python | MIT | Handoffs (linear chain; one active agent at a time) | Yes — native | No (handoffs only; no cross-vendor A2A) | Lightest opinionated wrapper around OpenAI APIs; built-in tracing; Responses API integration |
| Google ADK | Python, TypeScript, Java | Apache 2.0 | Graph-based + sequential pipelines; native A2A Agent Cards auto-generated | Yes | Yes — native, auto-generates Agent Card | Optimized for Gemini but model-agnostic; tight Vertex AI / Cloud Run integration; strongest A2A first-mover | |
| LangGraph | LangChain AI | Python, TypeScript | MIT | Stateful graph (nodes + edges + conditional routing; cycles allowed) | Yes — via langchain-mcp-adapters | Platform only (LangGraph Platform); open-source self-hosted A2A is not available | Explicit state machines; best for complex branching and long-running pipelines; LangSmith tracing |
| CrewAI | crewAI Inc | Python | MIT | Role/crew (named agents with roles, goals, backstory; sequential or hierarchical) | Yes — first-class (docs.crewai.com/en/mcp/overview) | Yes | Fastest to get a role-based multi-agent crew running; large template library |
| Microsoft Agent Framework | Microsoft | Python, C#/.NET | MIT | Graph-based workflows; multi-runtime (Python and .NET agents can interop via A2A) | Yes | Yes — 1.0 (April 2026); cross-runtime Python ↔ .NET via A2A | GA April 2026; successor to AutoGen + Semantic Kernel (AutoGen now maintenance-only; Semantic Kernel still active) for new agent work; enterprise Azure integration; Durable Task hosting |
| AWS Strands Agents | Amazon Web Services | Python, TypeScript | Apache 2.0 | Agents-as-tools (nested delegation); event-driven | Yes — first-class | Yes — 1.0 (SDK 1.0, May 2026) | AWS-native (Bedrock AgentCore, Lambda, ECS); model-agnostic; minimal boilerplate; strong production tooling |
| LlamaIndex Workflows | LlamaIndex (run-llama) | Python | MIT | Event-driven steps (async, cyclable); agents orchestrate via workflow events | Yes — native (MCP as default tool protocol) | Yes — native (built into LlamaIndex Agents, 2026) | Best-in-class RAG + retrieval integration; document-heavy agent pipelines; Workflows-as-MCP-server pattern |
| Pydantic AI | Pydantic (Samuel Colvin) | Python | MIT | Dependency-injection model; agents call sub-agents via typed tools | Yes — native | Yes — native (ai.pydantic.dev/a2a/) | Type-safety first; Pydantic validation on all inputs/outputs; Logfire observability built in; v1.0 GA Sep 2025 |
| Mastra | Mastra AI | TypeScript | Apache 2.0 (core); Enterprise license (ee/ dirs) | Graph-based workflows + agent networks; A2A for cross-platform delegation | Yes — bidirectional (consume MCP servers + expose agents as MCP) | Yes — native (May 2026; mastra.ai/docs/agents/a2a) | Only TypeScript-native framework in this list; strong Next.js / Node.js DX; built-in evals, syncs, and memory |
How to choose
Graph-based vs handoff vs role/crew orchestration
Graph-based (LangGraph, Google ADK, Microsoft Agent Framework, Mastra): define agents as nodes and routing logic as edges. Best when you need explicit branching, cycles, conditional retry, or parallel execution. Higher upfront design cost; easier to reason about at scale.
Handoff (OpenAI Agents SDK): one agent runs at a time and can hand control to another. Simpler mental model; natural fit for sequential task chains. Limited for parallel or conditional fan-out.
Role/crew (CrewAI): assign each agent a role, goal, and backstory; the framework orchestrates them. Fast to prototype; less control over low-level routing.
Event-driven steps (LlamaIndex Workflows, AWS Strands): agents emit and consume typed events; good for async, long-running pipelines and tight integration with retrieval systems.
Python vs TypeScript ecosystems
All frameworks except Mastra are Python-first (or Python-only). If your team lives in TypeScript / Node.js, Mastra is the only production-grade native option as of June 2026. Google ADK and LangGraph also ship TypeScript SDKs; AWS Strands TypeScript hit 1.0 in April 2026.
Model-agnostic vs vendor-leaning
All nine frameworks are technically model-agnostic, but vendor gravity varies. OpenAI Agents SDK defaults to OpenAI APIs. Google ADK is optimized for Gemini / Vertex AI. AWS Strands integrates tightly with Bedrock. Microsoft Agent Framework favors Azure AI Foundry. CrewAI, LangGraph, LlamaIndex, Pydantic AI, and Mastra are genuinely model-agnostic — swap the model with a one-line config change.
Production concerns
State persistence: LangGraph (checkpointers), Microsoft Agent Framework (Durable Task / Azure Durable Functions), AWS Strands (session manager, remote), and Mastra (built-in storage) have first-class persistence. Others require custom wiring.
Observability: Pydantic AI ships Logfire; LangGraph ships LangSmith (separate paid product); OpenAI Agents SDK has built-in tracing to the OpenAI dashboard; others rely on OpenTelemetry or third-party integrations.
Human-in-the-loop: OpenAI Agents SDK has explicit approvals support. LangGraph and Microsoft Agent Framework support interrupts and checkpointing. CrewAI and Mastra support human approval steps. See /resources/agentic-security-checklist for what to gate.
MCP and A2A interoperability: if your agents need to call external tools via MCP or delegate tasks to agents in other frameworks, check the MCP/A2A columns above. See /resources/mcp-vs-a2a for protocol details.
Verified sources
- OpenAI Agents SDK (Python, MIT): https://github.com/openai/openai-agents-python
- OpenAI Agents SDK MCP docs: https://openai.github.io/openai-agents-python/mcp/
- Google ADK Python (Apache 2.0): https://github.com/google/adk-python
- Google ADK TypeScript: https://github.com/google/adk-js
- Google ADK docs: https://google.github.io/adk-docs/
- Google ADK + A2A: https://cloud.google.com/blog/products/ai-machine-learning/unlock-ai-agent-collaboration-convert-adk-agents-for-a2a
- LangGraph Python (MIT): https://github.com/langchain-ai/langgraph
- LangGraph JS MCP docs: https://langchain-ai.github.io/langgraphjs/agents/mcp/
- LangGraph MCP adapters: https://github.com/langchain-ai/langchain-mcp-adapters
- LangGraph A2A platform status: https://github.com/langchain-ai/langgraph/issues/5987
- CrewAI (Python, MIT): https://github.com/crewAIInc/crewAI
- CrewAI MCP docs: https://docs.crewai.com/en/mcp/overview
- Microsoft Agent Framework (MIT, Python + .NET, GA April 2026): https://github.com/microsoft/agent-framework
- Microsoft Agent Framework 1.0 announcement: https://devblogs.microsoft.com/agent-framework/microsoft-agent-framework-version-1-0/
- AWS Strands Agents SDK (Python + TypeScript, Apache 2.0): https://github.com/strands-agents/sdk-python
- Strands Agents homepage: https://strandsagents.com/
- LlamaIndex (Python, MIT): https://github.com/run-llama/llama_index
- LlamaIndex MCP docs: https://developers.llamaindex.ai/python/framework/module_guides/mcp/
- Pydantic AI (Python, MIT): https://github.com/pydantic/pydantic-ai
- Pydantic AI A2A docs: https://ai.pydantic.dev/a2a/
- Mastra (TypeScript, Apache 2.0 core): https://github.com/mastra-ai/mastra
- Mastra A2A docs: https://mastra.ai/docs/agents/a2a
- Mastra A2A announcement: https://mastra.ai/blog/introducing-agent-to-agent-support