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 July 2026; check the source links before pinning a choice.
Key facts
- Nine major agent-orchestration frameworks compete, each betting on a different architecture: graph-based, handoff, role/crew, or event-driven.
- Graph-based frameworks — Mastra, Microsoft Agent Framework, Google ADK, and LangGraph — suit explicit branching, cycles, and parallel execution, at a higher upfront design cost.
- OpenAI Agents SDK's handoff model and CrewAI's role/crew model are simpler to reason about but trade away fine-grained routing control.
- Python dominates this list; Mastra stands alone as a framework that is TypeScript-native end-to-end rather than a ported SDK.
- Every one of the nine frameworks can technically swap models, though some — OpenAI Agents SDK, Google ADK, AWS Strands, and Microsoft Agent Framework among them — still gravitate toward their parent company's own stack.
- Production readiness differs sharply across state persistence, observability, and human-in-the-loop support, so check the comparison table before committing.
Framework comparison table
| Framework | Maintainer | Language(s) | License | Multi-agent model | MCP | A2A | Notable for agents |
|---|---|---|---|---|---|---|---|
| OpenAI Agents SDK | OpenAI | Python, TypeScript | 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; official JS/TS SDK at github.com/openai/openai-agents-js |
| Google ADK | Python, TypeScript, Java, Go, Kotlin (beta) | Apache 2.0 | Graph-based Workflow Runtime (ADK 2.0 GA, May 2026): deterministic graph of nodes/edges with Sequential/Parallel/Loop agents and coordinator+subagent patterns; 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 | Via LangSmith Deployment (formerly LangGraph Platform); not available in the open-source library alone | 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 — via fasta2a (Agent.to_a2a() deprecated; removed in v2.0) | Type-safety first; Pydantic validation on all inputs/outputs; Logfire observability built in; v1.0 GA Sep 2025; v2.0 went GA in June 2026 (harness-first design; latest is v2.5.1, July 2026) |
| 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
Most frameworks are Python-first. TypeScript options as of June 2026: Mastra is built TypeScript-first end-to-end; the OpenAI Agents SDK ships an official JS/TS package (github.com/openai/openai-agents-js); Google ADK, LangGraph, and AWS Strands all ship TypeScript SDKs. Mastra remains the only framework that is TypeScript-native throughout rather than a port of a Python library.
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.
Bottom line
If you need explicit branching, cycles, or parallel execution, default to a graph-based framework — LangGraph or Mastra if you want model-agnostic flexibility, Google ADK or Microsoft Agent Framework if you're already committed to Gemini/Vertex AI or Azure. If you just need a sequential task chain with the least ceremony, start with OpenAI Agents SDK's handoff model or CrewAI's role/crew model instead. TypeScript-first teams should start with Mastra, the only framework here that is TypeScript-native end-to-end rather than a ported SDK. Whatever you pick, check the production-concerns subsection above first: state persistence, observability, and human-in-the-loop support vary sharply, and a framework that wins on orchestration style can still be the wrong pick if it lacks the production plumbing your deployment needs.
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/
- OpenAI Agents JS/TS SDK (official): https://github.com/openai/openai-agents-js
- Google ADK Python (Apache 2.0): https://github.com/google/adk-python
- Google ADK TypeScript: https://github.com/google/adk-js
- Google ADK Go: https://github.com/google/adk-go
- Google ADK 2.0 GA (May 2026): https://adk.dev/2.0/
- 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 via LangSmith Deployment (formerly LangGraph Platform): https://docs.langchain.com/langsmith/server-a2a
- 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 monorepo (Python + TypeScript, Apache 2.0; formerly sdk-python): https://github.com/strands-agents/harness-sdk
- 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 fasta2a (A2A; replaces deprecated Agent.to_a2a()): https://github.com/pydantic/fasta2a
- 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
- Pydantic AI v2.0 GA and changelog, incl. v2.5.1 (Jul 2026) (WebSearch-fallback, 2 sources): https://pydantic.dev/docs/ai/project/changelog/