Side by side · Frameworks and runtimes
AI agent frameworks compared
LangGraph, CrewAI, OpenAI Agents SDK, Microsoft Agent Framework, Google ADK, Strands, Pydantic AI, and Mastra compared: what each is for and leaves to you.
Eric Tarnowski · Co-founder and President, Pyrana · Last reviewed October 12, 2026
The short answer
There is no single best AI agent framework; the right one depends on language, cloud, and how much control you want. LangGraph and Microsoft Agent Framework suit explicit, checkpointed workflows; the OpenAI Agents SDK, Strands, and Pydantic AI suit lean agent loops; CrewAI suits role-based multi-agent work; Google ADK and Strands align with Google Cloud and AWS. Every one of them produces agents, and every one leaves the enterprise application around those agents (per-user authorization, approval routing, audit of business actions, and the UI) to your team.
Agent frameworks build agents. Runtimes host them. Application platforms such as Pyrana build the governed application the agents work inside.
Choose LangGraph when
- You want an explicit graph over shared state, with checkpointers and interrupts, in Python or TypeScript.
- You want LangSmith tracing and evaluation, and optional managed hosting on LangSmith Deployment.
Choose OpenAI Agents SDK when
- You want a small set of primitives (agents, handoffs, guardrails) closely aligned with OpenAI models.
- You are migrating from Agent Builder, which shuts down on November 30, 2026.
Choose CrewAI when
- Your team thinks in roles and tasks and wants agents that collaborate and delegate.
- You want each crew deployed as a REST endpoint on CrewAI AMP.
Choose Microsoft Agent Framework when
- You build in .NET or Python on Azure and want the successor to Semantic Kernel and AutoGen.
- You want graph workflows with checkpoints stored in Azure Cosmos DB.
Choose Google ADK when
- You build on Google Cloud and want to deploy to Agent Runtime, Cloud Run, or GKE.
- You need Python, TypeScript, Go, Java, or Kotlin.
Choose Strands Agents when
- You build on AWS and want a model-driven loop that deploys to Bedrock AgentCore, Lambda, Fargate, or EKS.
Choose Pydantic AI when
- You want typed Python agents and to run durably on an engine you already operate, such as Temporal or DBOS.
Choose Mastra when
- Your team is TypeScript-first and wants agents and suspendable workflows in the same codebase as its web backend.
At a glance
LangGraph LangChain | OpenAI Agents SDK OpenAI | CrewAI CrewAI | Microsoft Agent Framework Microsoft | |
|---|---|---|---|---|
| Core abstraction | Graph of nodes and edges over shared state | Agents, handoffs, guardrails, run loop | Flows that call Crews of role-playing agents | Agents, a Harness Agent, and graph workflows |
| Languages | Python, TypeScript | Python, TypeScript | Python | .NET, Python; Go in preview |
| Durable state | Checkpointers (Postgres recommended in production) | Sessions; serialized run state; Temporal integration | @persist flow state (SQLite default) | Workflow checkpoints (in-memory, file, Cosmos DB) |
| Human approval | interrupt() and Command(resume) | needs_approval on tools; resume from run state | @human_feedback; webhook resume on Enterprise | Request and response in workflows; tool approval in Harness Agent |
| Managed option from the maker | LangSmith Deployment | Agents API (managed harness) is a separate product | CrewAI AMP | Microsoft Foundry integration |
| License | MIT | MIT | MIT | Open source |
| Left to your team | End-user app, permission model, approval routing, business audit | End-user app, permission model, approval routing, business audit | End-user app, permission model, approval routing, business audit | End-user app, permission model, approval routing, business audit |
| Latest milestone | 1.0 on Oct 22, 2025; 1.2.x in Oct 2026 | Recommended path after Agent Builder shutdown (Nov 30, 2026) | 1.15.27 on Oct 9, 2026 | 1.0 on Apr 3, 2026 |
- LangGraph
- Graph of nodes and edges over shared state
- OpenAI Agents SDK
- Agents, handoffs, guardrails, run loop
- CrewAI
- Flows that call Crews of role-playing agents
- Microsoft Agent Framework
- Agents, a Harness Agent, and graph workflows
- LangGraph
- Python, TypeScript
- OpenAI Agents SDK
- Python, TypeScript
- CrewAI
- Python
- Microsoft Agent Framework
- .NET, Python; Go in preview
- LangGraph
- Checkpointers (Postgres recommended in production)
- OpenAI Agents SDK
- Sessions; serialized run state; Temporal integration
- CrewAI
- @persist flow state (SQLite default)
- Microsoft Agent Framework
- Workflow checkpoints (in-memory, file, Cosmos DB)
- LangGraph
- interrupt() and Command(resume)
- OpenAI Agents SDK
- needs_approval on tools; resume from run state
- CrewAI
- @human_feedback; webhook resume on Enterprise
- Microsoft Agent Framework
- Request and response in workflows; tool approval in Harness Agent
- LangGraph
- LangSmith Deployment
- OpenAI Agents SDK
- Agents API (managed harness) is a separate product
- CrewAI
- CrewAI AMP
- Microsoft Agent Framework
- Microsoft Foundry integration
- LangGraph
- MIT
- OpenAI Agents SDK
- MIT
- CrewAI
- MIT
- Microsoft Agent Framework
- Open source
- LangGraph
- End-user app, permission model, approval routing, business audit
- OpenAI Agents SDK
- End-user app, permission model, approval routing, business audit
- CrewAI
- End-user app, permission model, approval routing, business audit
- Microsoft Agent Framework
- End-user app, permission model, approval routing, business audit
- LangGraph
- 1.0 on Oct 22, 2025; 1.2.x in Oct 2026
- OpenAI Agents SDK
- Recommended path after Agent Builder shutdown (Nov 30, 2026)
- CrewAI
- 1.15.27 on Oct 9, 2026
- Microsoft Agent Framework
- 1.0 on Apr 3, 2026
What an agent framework does
An AI agent framework is a library for building software in which a language model decides which tools to call, in what order, until a task is done. It supplies the agent loop, tool definitions, multi-agent patterns, state, and increasingly human approval and durable resume. It does not supply the business application: users, permissions, approval routing, the record of what was decided, or the pages people work in.
By late 2026 the leading frameworks have converged on a common feature set. Most support MCP tools, multiple model providers, multi-agent patterns, persistent state, and a way to pause for a person. The real differences are the core abstraction (graph, agent loop, roles, typed functions), the language, the cloud each aligns with, and what managed hosting its maker sells.
The frameworks at a glance
| Framework | Maker | Languages | Core abstraction | Durable state and resume | Human approval | Managed hosting from the maker |
|---|---|---|---|---|---|---|
| LangGraph | LangChain | Python, TypeScript | Graph of nodes and edges over shared state | Checkpointers per thread; Postgres recommended in production | interrupt() and Command(resume) | LangSmith Deployment (cloud, hybrid, self-hosted) |
| OpenAI Agents SDK | OpenAI | Python, TypeScript | Agents, handoffs, guardrails | Sessions (SQLite, Redis, SQLAlchemy, others); serialized run state; Temporal integration | needs_approval on tools | None for the SDK; the Agents API is a separate managed harness |
| CrewAI | CrewAI | Python | Flows calling Crews of role-playing agents | @persist flow state, SQLite by default | @human_feedback; webhook resume on Enterprise | CrewAI AMP (Cloud, Factory, hybrid) |
| Microsoft Agent Framework | Microsoft | .NET, Python; Go in preview | Agents, Harness Agent, graph workflows | Workflow checkpoints per superstep (in-memory, file, Cosmos DB) | Human-in-the-loop workflows; tool approval in Harness Agent | Integrates with Microsoft Foundry |
| Google ADK | Python, TypeScript, Go, Java, Kotlin | Agents plus sequential, loop, parallel, and graph workflows | Session services; resumable apps (Python 1.16.0+) | Tool confirmation (experimental, Python 1.14.0+) | Agent Runtime, Cloud Run, GKE | |
| Strands Agents | AWS | Python, TypeScript | Model-driven agent loop; swarm, graph, workflow patterns | File and S3 session managers | Interrupts from hooks or tools; HumanInTheLoop handler | Bedrock AgentCore, Lambda, Fargate, EKS |
| Pydantic AI | Pydantic | Python | Typed agents; Pydantic Graph for control flow | Durable execution on Temporal, DBOS, Prefect, Restate, and others | requires_approval; deferred tool requests | None; runs on the engine you operate |
| Mastra | Mastra | TypeScript | Agents and workflows | Workflow snapshots in your storage provider | suspend() and resume() on workflow steps | Self-deployed; integration guides for Next.js, Express, Hono |
| LlamaIndex | LlamaIndex | Python | Prebuilt agents and event-driven Workflows | Serialize workflow context to resume | InputRequiredEvent and HumanResponseEvent | Self-deployed |
| smolagents | Hugging Face | Python | CodeAgent (actions written as code), ToolCallingAgent | Not a focus | Not a focus | None; sandboxes via Modal, Blaxel, E2B, Docker |
| DSPy | Stanford NLP | Python | Signatures, modules, optimizers | Not a focus | Not a focus | None |
Graph and workflow frameworks
These frameworks make control flow explicit. You define steps and transitions, and the framework checkpoints state between them. They suit processes where the order of operations matters and must be inspectable.
LangGraph describes itself as a low-level orchestration framework and runtime for long-running, stateful agents. You define a graph over shared state; checkpointers save it per thread, and interrupt() pauses for a person. LangGraph 1.0 shipped on October 22, 2025, with a commitment to no breaking changes until 2.0. LangSmith adds tracing and evaluation, and LangSmith Deployment (formerly LangGraph Platform) hosts agents from LangGraph and other frameworks.
Microsoft Agent Framework is the direct successor to Semantic Kernel and AutoGen, built by the same teams. It combines agents, an opinionated Harness Agent for long multi-step tasks (planning, context compaction, file access, tool approval), and functional and graph-based workflows. Workflows checkpoint at the end of each superstep, with built-in storage in memory, on disk, or in Azure Cosmos DB. Version 1.0 shipped on April 3, 2026, for .NET and Python.
Google ADK (Agent Development Kit) is open source and available in five languages. It offers sequential, loop, and parallel workflow agents plus graph workflows, works with almost any model, and deploys to containers on your own infrastructure or to Agent Runtime on Gemini Enterprise Agent Platform, Cloud Run, and GKE. Resumable apps replay completed events after an interruption.
LlamaIndex offers prebuilt agents and Workflows, an event-driven, step-based model where each step consumes an event and emits the next. It suits teams already using LlamaIndex for retrieval over their documents.
Which agent frameworks support durable execution?
LangGraph, Microsoft Agent Framework, CrewAI, Mastra, and Google ADK persist state and resume. Pydantic AI integrates with durable engines directly, and the OpenAI Agents SDK has an official Temporal integration, generally available since March 23, 2026. Resuming a run is not the same as running a business action exactly once. Google ADK's docs say plainly that on resume, tools run at least once and may run more than once, so tools with side effects such as purchases must check for duplicates. LangGraph's docs give similar advice for code before an interrupt.
Agent-loop SDKs
These frameworks center on one capable agent loop and keep orchestration light. They suit teams that want minimal abstraction and plan to add structure in their own code.
OpenAI Agents SDK provides agents, handoffs (agents delegating to agents), guardrails, sessions, tracing, MCP tools, realtime voice agents, and sandbox agents that work in an isolated filesystem. It supports non-OpenAI models through adapters. It is OpenAI's recommended path for Agent Builder users: OpenAI notified developers on June 3, 2026 that Agent Builder and the Evals platform are deprecated, and both shut down on November 30, 2026.
Strands Agents is an Apache 2.0 open-source SDK from AWS for Python and TypeScript, described as a model-driven approach to building agents in a few lines of code. It supports Amazon Bedrock, Anthropic, OpenAI, Gemini, and other providers, with built-in MCP and multi-agent patterns (agents as tools, swarm, graph, workflow, A2A). It deploys to Bedrock AgentCore, Lambda, Fargate, EKS, and containers.
Pydantic AI brings typed outputs, dependencies, and tools to Python agents, with human approval of tool calls built in. Its durable execution story is distinctive: rather than its own runtime, it integrates with eight engines, including Temporal and DBOS as first-party integrations, so agents survive restarts on infrastructure you already operate.
smolagents from Hugging Face keeps its agent logic to about a thousand lines and favors CodeAgent, which writes its actions as code, executed in sandboxes such as Modal, E2B, or Docker. It suits research and code-heavy tasks.
Role-based multi-agent: CrewAI
CrewAI organizes work around roles. Each agent has a required role, goal, and backstory, and agents in a crew collaborate and delegate tasks. Flows wrap crews with state, events, and routing, and CrewAI's docs recommend starting production applications with a Flow. CrewAI AMP (Agent Management Platform) deploys each crew as a REST endpoint with tracing, a tool repository, and a no-code Crew Studio; a free Basic tier includes 50 workflow executions per month.
TypeScript-first: Mastra
Mastra is a TypeScript framework for agents and applications. Agents take instructions, a model string such as a provider and model name, and tools. Workflows can suspend() at a step and resume() from anywhere in your application, such as an HTTP endpoint, with snapshots stored in your configured storage provider so they survive restarts and deployments. LangGraph, the OpenAI Agents SDK, Google ADK, and Strands also offer TypeScript.
Optimizing programs: DSPy
DSPy, maintained by Stanford NLP under the MIT license, is less an agent framework than a way to program language models. You declare tasks as typed signatures, compose modules, and let optimizers tune prompts against a metric you define. It can sit alongside an agent framework to improve individual steps.
Which agent framework is best for enterprise?
Pyrana's view: choose by language, cloud, and the control model your engineers prefer, because capability gaps between the leaders are narrow and close quickly. Azure shops tend toward Microsoft Agent Framework, Google Cloud toward ADK, AWS toward Strands, and teams wanting explicit graphs toward LangGraph. Then plan for what none of them provides.
What every framework leaves you to build
Every framework above produces agents. None produces the enterprise application those agents work inside. That boundary is the subject of the pillar on agent framework vs runtime vs platform. In practice, a team shipping a governed application on any framework builds the following.
| Layer | What the framework provides | What the team builds |
|---|---|---|
| End-user application | Developer tools (studios, debuggers, playgrounds) | Pages, inbox, copilot surface, API |
| Identity | Hooks to accept a user or token | SSO, agent identity, on-behalf-of identity, service principals |
| Authorization | Little or none on the agent's calls | Who may read, run, or approve, per entity, enforced on every tool call |
| Approval routing | A pause on a tool call and a way to resume | Threshold policy, named approver groups, eligibility at decision time, protection against replayed resumes |
| Exactly-once actions | Durable resume of the run | Idempotent effects, so an approved posting happens once |
| System of record | Run state and traces | Versioned, attributed outputs and an audit record of business decisions |
| Governed knowledge | Retrieval and memory primitives | Curation, classification, change control, and provable citations |
| Release management | Code and configuration you deploy | Immutable versions, audited activation, rollback |
The OpenAI Agents SDK's own docs make one of these boundaries explicit: its run-state loaders do not authenticate the snapshot or the person submitting it, so the application must authorize the reviewer and prevent duplicate or replayed resumes. LangChain's docs note that self-hosted Agent Server has no default authentication. These are not shortcomings of the frameworks. They are a different layer.
Managed runtimes (LangSmith Deployment, CrewAI AMP, AWS Bedrock AgentCore, Agent Runtime on Google Cloud) close part of the gap: hosting, scaling, session state, and in some cases identity and policy for agents. The business application, its permission model, and its record of decisions remain yours.
Where Pyrana fits
Pyrana is not an agent framework. It is an agentic application platform: identity, authorization, storage, orchestration, approvals, audit, and context are built once, and each application is one App configuration plus a frontend experience. Agents are a mechanism inside the application, running on the Pyrana Harness with durable workflows on Temporal workers.
The rows in the table above are what Pyrana provides. Every call passes one fail-closed gate with an authorization check on the entity and an audit record written before dispatch. Tool approval policies freeze the exact invocation under a hash, route it to a named lane, check eligibility at decision time, and dispatch idempotently. Outputs are versioned, attributed resources. cortIQ holds company knowledge as classified Context Units with per-run citation accounting.
Frameworks and Pyrana connect through open interfaces. An agent built on any framework can work with a Pyrana App through the App MCP server, as the user, through the same gate. A framework agent exposed as an MCP server or REST endpoint can be a Pyrana tool source, and existing framework code can live in a client-owned extension. For head-to-head detail, see Pyrana vs LangGraph, Pyrana vs OpenAI Agents SDK, and Pyrana vs CrewAI.
Questions buyers ask
What is the best AI agent framework for enterprise?
Which agent frameworks support human in the loop?
Which agent frameworks support durable execution?
What is the difference between an agent framework and an agent platform?
Is Semantic Kernel or AutoGen still the right choice?
Related
Concept
Agent framework vs runtime vs application platform
Agent frameworks build the agent, runtimes host it, and application platforms add users, permissions, approvals, and context. What each layer gives you.
Comparison
Pyrana vs LangGraph
LangGraph orchestrates stateful agents; LangSmith traces, evaluates, and deploys them. Pyrana builds governed agentic applications. How to choose between them.
Comparison
Pyrana vs OpenAI Agents SDK
The OpenAI Agents SDK is a code-first agent framework; Agent Builder shuts down November 30, 2026. How it compares with Pyrana's agentic application platform.
Comparison
Pyrana vs CrewAI
CrewAI builds role-based agent crews and flows; CrewAI AMP deploys them. Pyrana builds governed agentic applications. How to choose between the two layers.
Sources and review
Facts about other products come from their own documentation, checked on the dates shown. Product names are trademarks of their owners and are used only to identify those products; no affiliation or endorsement is implied. Statements about fit are Pyrana's view. Last reviewed October 12, 2026. Spot something out of date? Tell us and we will correct it.
- LangGraph documentation: Overview · checked October 12, 2026
- LangGraph documentation: Interrupts · checked October 12, 2026
- LangGraph documentation: Persistence · checked October 12, 2026
- LangChain blog: LangChain and LangGraph 1.0 · checked October 12, 2026
- LangSmith documentation: Deployment · checked October 12, 2026
- OpenAI Agents SDK documentation · checked October 12, 2026
- OpenAI Agents SDK: Human in the loop · checked October 12, 2026
- OpenAI API docs: Agents guide · checked October 12, 2026
- OpenAI API docs: Deprecations · checked October 12, 2026
- Temporal: OpenAI Agents SDK integration · checked October 12, 2026
- CrewAI documentation: Introduction · checked October 12, 2026
- CrewAI documentation: Flows · checked October 12, 2026
- CrewAI changelog · checked October 12, 2026
- CrewAI AMP documentation · checked October 12, 2026
- Microsoft Learn: Microsoft Agent Framework overview · checked October 12, 2026
- Microsoft Learn: Agent Framework workflow checkpoints · checked October 12, 2026
- Microsoft Agent Framework blog: Version 1.0 · checked October 12, 2026
- Google ADK documentation · checked October 12, 2026
- Google ADK: Tool confirmation · checked October 12, 2026
- Google ADK: Resume agents · checked October 12, 2026
- Strands Agents repository · checked October 12, 2026
- Strands Agents documentation: Interrupts · checked October 12, 2026
- Strands Agents documentation: Session management · checked October 12, 2026
- AWS: What is Amazon Bedrock AgentCore · checked October 12, 2026
- Pydantic AI documentation: Overview · checked October 12, 2026
- Pydantic AI documentation: Deferred tools · checked October 12, 2026
- Mastra documentation · checked October 12, 2026
- Mastra documentation: Suspend and resume · checked October 12, 2026
- LlamaIndex documentation: Workflows · checked October 12, 2026
- LlamaIndex documentation: Human in the loop · checked October 12, 2026
- Hugging Face smolagents documentation · checked October 12, 2026
- DSPy documentation · checked October 12, 2026
Changes
- October 12, 2026 · Published.
Bring your hardest process.
We will show you the governed application it becomes, on your stack.