Agent frameworks in production, 2026: a ranking by evidence, how each one works, and when to write your own loop
Ten agent frameworks ranked by named production cases, Stack Overflow 2026 usage and project activity: LangGraph, OpenAI Agents SDK, Google ADK, Vercel AI SDK, Pydantic AI, CrewAI, AWS Strands, DSPy, Mastra, Claude Agent SDK. How each one works, where it bites, and when no framework is the better choice.
In the most careful study of production agents, led by Berkeley and published at ICML 2026, 17 of 20 interviewed teams wrote their own loop. Those that use a framework pick from a short list, and LangGraph leads it on named production cases and on survey use, if you count LangChain 1.x, which runs on top of it. This guide ranks ten frameworks by evidence that named companies run them in production, explains how each one works inside, and ends with a cheat sheet for picking one, including the case for picking none.
TL;DR
- In a Berkeley-led study, 17 of 20 production teams wrote their own agent loop. In the same study’s survey, 61% of deployed agents used a framework. Both are true, and they describe different teams.
- The ranking: LangGraph, OpenAI Agents SDK, Google ADK, Vercel AI SDK, Pydantic AI, CrewAI, AWS Strands, DSPy, Mastra, Claude Agent SDK.
- The frameworks fall into two families: a loop with a session, or a graph with checkpoints. Durable execution is a separate package or integration almost everywhere.
- Only two production cases on the list were published by the companies themselves (LinkedIn, Dropbox). The rest come from vendors.
- Downloads are out of the ranking on purpose: dependencies and CI make them a poor proxy for production.
01 · Two answers to “do you need a framework?”

Source: Measuring Agents in Production (Berkeley-led, ICML 2026); Datadog, State of AI Engineering.
The most careful data on the question comes from Measuring Agents in Production, a study led by Berkeley with Stanford, UIUC and others, accepted at ICML 2026. It has two parts, and they disagree in a useful way.
In the interviews, the authors talked to teams with agents serving real users. 17 of 20 built “custom in-house implementations with direct API calls”. Only three used an external framework: LangChain or LangGraph, and DSPy. The reasons were flexibility, integration with their own infrastructure and security policies. The authors sum up the simplicity argument in a line worth quoting: “Core agent loops are straightforward to implement directly, avoiding dependency bloat.” Two of the teams migrated from frameworks such as CrewAI to their own code for production.
In the survey, 61% of deployed agents ran on a framework, led by LangChain and LangGraph at 25%. The populations differ: the interviews came through the authors’ professional networks, the survey is broader.
Two more data points frame the ranking. Datadog’s State of AI Engineering sees agent frameworks in “almost 18%” of organizations in its telemetry by early 2026, about double a year earlier. And in Stack Overflow’s 2026 survey, the leader, LangChain, is at 30% among the 4,400 developers who answered the agent-frameworks question, and the rest are at 24% or below.
So a ranking of frameworks covers part of production, and the part grows.
02 · How we ranked: evidence over popularity
The ranking asks one question: how strong is the evidence that named companies run this framework in production? “In production” here means an agent serving real users or a real company process, confirmed by the company’s own publication or a vendor case with a named company and specifics, dated October 2025 or later. A pilot without users does not count. Many vendor case pages carry no date; we counted them as weaker evidence, and that is where the bottom of the ranking is least certain.
Each framework gets a score from three parts:
- Cases. Named companies in the window. A company’s own publication weighs more than a vendor case.
- Independent use. The share of developers who used it in the past year, from Stack Overflow’s 2026 survey.
- Activity. Commits and releases over the last year, compared quarter to quarter. An archived project or one that moved to another product loses a point.
Ties go to the higher survey share. A framework with no named case in the window cannot enter the top ten, however popular it is.

Source: our count across the ranking, October 2026.
Read the result with one correction in mind. Only two cases on the list were published by the companies running the framework: LinkedIn on LangGraph and Dropbox on DSPy. AWS’s Strands cases appear on AWS’s blog, some co-written with the customer. Everything else comes from vendor case pages and launch posts. Vendor cases are real, but the vendor picked them.
03 · The ranking at a glance
| # | Framework | Language | How it runs | Named production cases | Stack Overflow 2026 | The catch |
|---|---|---|---|---|---|---|
| 1 | LangGraph + LangChain 1.x | Python, TypeScript | Graph, checkpoint per step | LinkedIn, Rippling | 19% (LangChain 30%) | A resumed node re-runs from the top |
| 2 | OpenAI Agents SDK | Python, TypeScript | Loop with handoffs and sessions | One named customer quote | 24% | Still 0.x after 19 months |
| 3 | Google ADK | Python, TypeScript, Go | Event loop; graph workflows since 2.0 | Comcast, L’Oréal, Geotab | 14% | Some 1.x overrides are ignored in 2.0 with no error |
| 4 | Vercel AI SDK | TypeScript | Tool loop; durable workflow agent | Ramp, Searchable, Stably | 9% | Three major versions in 11 months |
| 5 | Pydantic AI | Python | Typed loop over a node graph | Tiger Data, Overjoy | 9% | V2 came 9.5 months after V1 |
| 6 | CrewAI | Python | Crews and event-driven Flows | PwC, DocuSign | 5.5% | Teams rewrite after the prototype |
| 7 | AWS Strands Agents | Python, TypeScript | Model-driven loop | Verizon Connect, Motorway | 4% | Downloads match no other metric |
| 8 | DSPy | Python | Modules compiled by optimizers | Dropbox | 3.6% | An optimizer more than a runtime |
| 9 | Mastra | TypeScript | Agent loop and graph workflows | Workday, Salesforce | 3% | ~78 minor releases in 9 months |
| 10 | Claude Agent SDK | Python, TypeScript | Subprocess of the Claude Code CLI | Anything, Salesforce | not in the survey | Picking it means picking the model |

Source: Stack Overflow Developer Survey 2026, n = 4,400 respondents to the agent-frameworks question.
The boundary between places 9 and 10 is fragile: one point changes the order at the bottom. If LangChain and LangGraph counted as two entries, both would score high and Claude Agent SDK would drop out. The ranking measures the strength of production evidence.
04 · Two families under the hood
Every framework on the list runs the same core loop: the model decides the next step, tools run, the result goes back into context, and the loop stops when the model produces a final answer or hits a limit. The differences are in three places: where state lives, how a person approves a risky action, and whether the loop is code or a graph.

Source: framework documentation, checked October 2026.
Loop and session. OpenAI Agents SDK, Vercel AI SDK, AWS Strands, Claude Agent SDK and Pydantic AI give you an agent object and a run loop. History lives in a session, and you add durability when you need it.
Graph with checkpoints. LangGraph, Google ADK 2.x, CrewAI Flows and Mastra workflows let you define the flow as nodes and edges, and save state at defined points so a run can pause for a person or resume after a crash.
Durable execution, the property that a run survives a process restart, is a separate package or integration almost everywhere: Vercel’s workflow agent, OpenAI’s integrations with Temporal, Restate and DBOS, eight durable engines for Pydantic AI, durable agents in beta for Mastra. LangGraph is the exception: checkpoints are the core of its runtime. Human approval is built into nine of the ten frameworks. DSPy has none in its documentation.
05 · #1 LangGraph (+ LangChain 1.x)
What it is. In its own docs, “a low-level orchestration framework and runtime for building, managing, and deploying long-running, stateful agents”. Stable 1.0 since October 2025, now 1.2.16, MIT. LangChain 1.x’s create_agent runs on top of it, so in practice it is one stack.
What it is made of. State is a typed schema; reducers decide how updates merge, for example add_messages appends. Nodes are functions that read state and return updates. Edges are fixed or conditional. Send fans work out in parallel, and Command updates state and jumps in one step. You can write the same flow with the Graph API or with the Functional API (@entrypoint, @task) for plain procedural code.
How it runs. A Pregel-style loop of super-steps: pick the nodes, run them in parallel, apply their writes. A node’s writes become visible only in the next step. A checkpointer saves state at every super-step under a thread_id, asynchronously by default. That gives resume after a crash, replay, and human approval: interrupt() pauses, Command(resume=...) continues. Hosting lives in LangSmith as Agent Server, and even the self-hosted standalone server needs a LangSmith license key.
In production. LinkedIn engineers described (a QCon London talk, published by InfoQ in December 2025) a hiring agent built on LangChain and LangGraph, with a layer of adapters on top: “Today we like it, tomorrow some other framework comes out or we want to try something, we have the ability to switch relatively cheaply.” Rippling’s AI, per a LangChain case study, runs a supervisor with sub-agents for over a million users, on Deep Agents, LangChain’s agent harness built on LangGraph. In our own CRM, AgenticCRM, the agent runs on the TypeScript port: we use the loop and streaming and keep approvals in our own database. The rest of the app talks to the agent through one interface, so the framework can be swapped, much like LinkedIn’s adapter layer.
The catch. On resume, the node restarts from the top, so anything before interrupt() runs again: an email sent there goes out twice. Wrapping interrupt() in try/except swallows the pause. Command plus a static edge runs both routes. A running thread picks up the latest graph code. Checkpoints are an attack surface: langgraph-checkpoint shipped deserialization fixes through version 4.1.1 for attackers who can write to the checkpoint store, and langchain-core had a CVSS 9.3 flaw fixed in 1.2.5.
Take it for long runs that must survive a crash, human approval in the middle of a flow, and many concurrent threads. Skip it for a few sequential model calls; its own authors write that “the biggest competitor to any code framework is always no framework.”
06 · #2 OpenAI Agents SDK
What it is. “A lightweight yet powerful framework for building multi-agent workflows”, provider-agnostic, for Python and JavaScript. Python 0.24.0 (October 15, 2026), JavaScript 0.21.0 (October 20).
What it is made of. An Agent is a model with instructions, tools, guardrails and handoffs. The Runner runs it (run, run_sync, run_streamed). Handoffs are tools to the model: a handoff to a refund agent appears as transfer_to_refund_agent. Guardrails check input, output and tool calls. Sessions keep conversation history in SQLite, Redis, SQLAlchemy, MongoDB or Dapr. Tracing is built in.
How it runs. The loop calls the model; on a handoff it switches the current agent and loops; on tool calls it runs them and loops; it ends on typed output with no tool calls, or raises MaxTurnsExceeded. Run state serializes, approvals use needs_approval, and durable runs come through Temporal, Restate or DBOS.
In production. Second in Stack Overflow’s survey at 24%, behind only LangChain. Named cases in our window are thin: one customer quote (Oscar Health, in OpenAI’s April 2026 SDK announcement), which we could not verify on the original page. Meanwhile OpenAI is deprecating its visual Agent Builder, which shuts down on November 30, 2026.
The catch. Still 0.x after 19 months, and minor releases carry migration steps: one required organization and project on the client, another changed the default model. Guardrails run in parallel with the agent by default, and the docs warn: “if the guardrail’s tripwire is triggered, the agent may have already consumed tokens and executed tools before being cancelled.” Input guardrails run only for the first agent in a chain.
Take it for a fast start on OpenAI models with handoffs between specialist agents. Pin the version, and switch guardrails to blocking mode before tools with side effects.
07 · #3 Google ADK
What it is. “A flexible and modular framework that applies software development principles to AI agent creation”, optimized for Gemini but model-agnostic, in Python, TypeScript and Go. Version 2.12.0 for Python, 2.3.0 for TypeScript and 2.6.0 for Go, all released October 13, 2026.
What it is made of. Agent (or LlmAgent) is a self-contained unit with instructions, tools and behavior. Since 2.0, Workflow is a graph engine with routing, fan-out and fan-in, loops, retry and dynamic nodes. Runner drives everything; SessionService and MemoryService hold state, in memory, in a database or on Vertex AI. Tool Confirmation and RequestInput give human approval, and the 2.12 release added require_confirmation for workflow nodes.
How it runs. An event loop: the agent runs until it has something to report, emits an Event, and resumes only after the Runner has processed it. In-memory services lose everything on restart, so production needs the database or Vertex AI session service.
In production. Comcast is rebuilding its Xfinity Assistant with ADK, and L’Oréal and Geotab appear in the same Google launch, as quotes without numbers. Google says more than six trillion tokens a month go through ADK, a self-reported figure. 14% of developers in the survey.
The catch. Two architectures in a year. In 2.0, BaseAgent subclasses BaseNode, and the migration notes warn that overrides of _run_async_impl() or generate_content() are ignored with no error. Tool confirmation does not yet work with the database or Vertex AI session services, so human approval and persistent sessions do not combine out of the box.
Take it on Google Cloud and Gemini, or when you need one framework across Python, TypeScript and Go. Before upgrading from 1.x, list your overrides and test each one.
08 · #4 Vercel AI SDK
What it is. “A provider-agnostic TypeScript toolkit designed to help you build AI-powered applications and agents” across Next.js, React, Svelte, Vue and Node.js. Package ai 7.0.150 as of October 22, 2026.
What it is made of. generateText and streamText for single calls, tool() with a description, input schema and execute, and ToolLoopAgent, which the docs call “the recommended approach for building agents”. For durable runs there is WorkflowAgent, with automatic state persistence and tool approval flows that survive step boundaries. Version 7 also added experimental harness packages that run Claude Code, Codex and other coding agents as agents inside your app.
How it runs. The tool loop stops after 20 steps by default, “a safety measure to prevent runaway loops”. prepareStep runs between steps. A standard ToolLoopAgent runs in memory: if the process crashes, progress is lost.
In production. Named in Datadog’s telemetry among agent frameworks, and 9% in the survey. Ramp, Searchable and Stably appear on Vercel’s case pages.
The catch. Three major versions in 11 months (5.0 in July 2025, 6.0 in December 2025, 7.0 in June 2026), each with a codemod. In the standard useChat pattern the client sends the message history, so “a client that crafts a valid-looking approval for a schema-conforming input can bypass the human-in-the-loop step”; the docs offer experimental_toolApprovalSecret to bind approvals to the server.
Take it for TypeScript web products with streaming UI. Bind approvals to the server before any tool can spend money or send data.
09 · #5 Pydantic AI
What it is. “The Python AI SDK: a typed, extensible agent loop with every model a string swap away”, from the team behind Pydantic. Version 2.60.0 as of October 23, 2026.
What it is made of. An Agent is a container for instructions, tools and toolsets, a structured output type, a dependency type, a model and settings. Dependencies are injected into tools and validators through RunContext. Output types make the model return validated data. pydantic-graph is a separate package for explicit state machines.
How it runs. Five ways to run, from run to iter, which walks the nodes of the agent’s underlying graph. Memory is the message history you store and pass back; persistence ranges from your own database to StepPersistence snapshots to eight durable-execution engines. Deferred tools give human approval.
In production. The most named customers among the light frameworks, all on the vendor’s site: Tiger Data, Overjoy and others. Overjoy moved from LangChain, which it called “overly complicated”. 9% in the survey.
The catch. V1 promised no breaking changes until V2. V2 shipped 9.5 months later and removed graph persistence. The vendor sells the observability product (Logfire) that most of its case studies feature.
Take it for typed Python agents where validation matters. Its own docs give two good rules: “Don’t use a nail gun unless you need a nail gun” for graphs, and “a jsonb column is enough” for storing a chat thread.
10 · #6 CrewAI
What it is. “An open-source Python framework with high-level abstractions and low-level APIs for building production-ready multi-agent workflows”, with autonomous collaboration through Crews and event-driven control through Flows. Version 1.15.28, October 14, 2026.
What it is made of. A Crew is a group of agents with a process, sequential by default or hierarchical. Each Agent has a role, goal, backstory, tools and model. A Task is an assignment for one agent. Flows add explicit steps with @start, @listen and @router, typed state, @persist for state across restarts, and @human_feedback since 1.8.0.
How it runs. The crew runs its process; each agent iterates up to 20 times before it must give its best answer.
In production. PwC and DocuSign are named on CrewAI’s pages, with DocuSign reporting faster first contact with leads. The site claims use by 65% of the Fortune 500. In Stack Overflow’s survey, 5.5% of developers used it, and the Berkeley study met two teams that migrated from frameworks such as CrewAI to their own code for production.
The catch. The gap between marketing reach and production evidence is the widest on the list. The docs themselves recommend starting production apps with a Flow and warn about MCP: “You should only connect your CrewAI agents to MCP servers that you fully trust.” Tool output is the usual way in for prompt injection, as 15 public cases show.
Take it for multi-agent prototypes and role-based workflows. For production, start with a Flow, as its own docs advise. Whether the job needs several agents at all is a separate question, covered in multi-agent vs single agent.
11 · #7 AWS Strands Agents
What it is. “An open-source SDK for building and running AI agents in Python and TypeScript”, described as “a model-driven approach”. Its docs say it plainly: “Choose Strands when you would otherwise write your own agent loop.” Python 1.62.0 and TypeScript 1.22.0, October 21, 2026.
What it is made of. An Agent with a model-driven loop, tools (including MCP servers loaded as tools), hooks, session managers and multi-agent patterns.
How it runs. “Invoke the model, check if it wants to use a tool, execute the tool if so, then invoke the model again with the result.” The loop ships with invocation limits, cancellation, stop reasons and concurrent invocations. Limits are checked at the top of each iteration, so a single turn can overshoot a token budget. Sessions persist through SnapshotSessionManager, file or S3 managers; interrupts give human approval.
In production. Verizon Connect scaled an agent on Strands to over 100,000 users, per AWS’s blog; Motorway’s case is co-written with the customer. 4% in the survey.
The catch. Its PyPI downloads are the strangest number in the category: the two-week total went from 3.0 million to 16.5 million between early May and early June 2026, with no comparable rise in stars, commits or survey share. The TypeScript repository is archived and the code now lives in a harness-sdk monorepo.
Take it on AWS and Bedrock, or when you want a small loop with production controls built in.
12 · #8 DSPy
What it is. “The framework for programming, rather than prompting, language models”, from Stanford NLP. DSPy stands for Declarative Self-improving Python. Version 3.4.1, October 12, 2026.
What it is made of. Signatures declare inputs and outputs ("question -> answer"). Modules such as Predict, ChainOfThought and ReAct wrap a prompting technique. Optimizers such as MIPROv2 and GEPA tune prompts and weights against your metric.
How it runs. An agent is a ReAct module with tools, 20 iterations by default. There are no sessions, agent memory or human approval in the docs; “state” means the optimized program.
In production. The strongest independent case on the list, and it is not an agent runtime. Dropbox used DSPy to optimize an LLM relevance judge: the error metric fell 45% (NMSE 8.83 to 4.86), adapting to a new model went from one or two weeks to one or two days, and invalid JSON from a small model dropped from 358 to 9 cases. 3.6% in the survey.
The catch. The optimizer overfit at Dropbox, copying keywords and user names into prompts. And results can shift between versions: with 3.4.1, GEPA’s default changed, “so optimization results can differ from 3.4.0 even with the same seed.”
Take it to make prompts portable across models and to tune them against a metric, which you need anyway before launch (how to evaluate an agent). Its docs advise starting “with just a single dspy.ChainOfThought module”.
13 · #9 Mastra
What it is. “A TypeScript framework for building AI agents and applications.” Version 1.0 in January 2026, @mastra/core 1.79.0 as of October 21.
What it is made of. Agents that reason toward a goal and pick tools; graph-based workflows with .then(), .branch() and .parallel(); memory of several kinds (message history, semantic recall, working memory); storage on libSQL, Postgres, MongoDB or Oracle; evals. A2A is built in, the only framework on the list with it in the core.
How it runs. Agents iterate until a final answer or a stop condition. Workflows run on a built-in engine or on runners such as Inngest. Suspend and resume plus requireApproval give human approval; durable agents are in beta.
In production. Workday moved a security alert triage agent from Amazon Bedrock Agents to Mastra in 31 days and removed about 3,000 lines of code, mainly to test locally; Salesforce uses a Mastra harness for its non-Claude models. Both are on Mastra’s site. 3% in the survey.
The catch. About 78 minor releases in nine months. Directories named ee/ sit under a separate enterprise license. Agent networks are deprecated and will be removed in a future major release.
Take it for TypeScript teams that want agents, workflows and memory in one package. The docs draw a useful line: agents when the steps aren’t known in advance, workflows “for predetermined, multi-step processes with explicit control flow.”
14 · #10 Claude Agent SDK
What it is. “The same tools, agent loop, and context management that power Claude Code, programmable in Python and TypeScript.” Python 0.2.173 and TypeScript 0.3.309 as of October 22, 2026.
What it is made of. query() for one-off sessions, ClaudeSDKClient for multi-turn conversations, built-in tools for files, commands and web search, custom tools through an in-process MCP server, hooks, and permission callbacks (canUseTool) for approval.
How it runs. The SDK spawns and supervises a claude CLI subprocess “that owns a shell, a working directory, and session files on disk”, one subprocess per session. max_turns caps tool-use turns, max_budget_usd caps spend. Sessions are JSONL files, or an external SessionStore.
In production. Anything is an Anthropic customer case, and Salesforce uses the SDK for Claude models (reported on Mastra’s site). It is not among the options in Stack Overflow’s survey.
The catch. Choosing a model vendor’s harness means choosing the model. The docs warn that hosting it “is not like hosting a stateless API wrapper. Every running agent is a long-lived process tied to local state.” Its download numbers likely include automation that installs it to run the binary.
Take it for agents that work like Claude Code: files, shell, code. Set a budget: the docs call it “a good default for production agents”.
15 · Who didn’t make it
- Microsoft Agent Framework. The production-ready 1.0 shipped in April 2026, unifying Semantic Kernel and AutoGen, with long-term support promised. We found no named customer case since then. It goes back on the list with the first one.
- AutoGen. Its README says the project “has been archived and is no longer actively maintained by Microsoft”.
- Semantic Kernel. Microsoft names Agent Framework its successor, though releases continue (1.81.0 on October 6).
- Haystack. Version 3.0 in July 2026 and strong cases (Bosch, the European Commission), but the case pages carry no dates and Stack Overflow’s survey does not list it. It is the closest miss, right at the fragile 10th-place boundary.
- Llama Stack. 17.4% in Stack Overflow’s survey, more than Google ADK, but we found no named production case in the window.
- LlamaIndex. Repositioned as a document processing platform.
- Agno, smolagents, Letta. No named customers found.
16 · MCP and A2A are protocols
MCP connects an agent to tools and data; A2A connects agents to each other. Neither competes with the frameworks above, so neither is ranked. MCP now sits in the Agentic AI Foundation under the Linux Foundation, and its July 2026 revision made the protocol stateless. A2A reached 1.0 in March 2026 with more than 150 supporting organizations, but the announcement named no production deployments.
| Framework | MCP | A2A |
|---|---|---|
| LangGraph | yes | in Agent Server (LangSmith); the open-source library has no A2A |
| OpenAI Agents SDK | yes | not found in docs |
| Google ADK | yes | extra (experimental in Python) |
| Vercel AI SDK | yes | not found in docs |
| Pydantic AI | yes | separate package fasta2a |
| CrewAI | yes | extra crewai[a2a] |
| AWS Strands | yes | extra |
| DSPy | extra dspy[mcp] | not found in docs |
| Mastra | yes | built in |
| Claude Agent SDK | yes | not found in docs |
17 · Why downloads aren’t in the ranking

Source: pypistats API, PyPI metadata and GitHub API; our analysis, October 2026.
Download counts are the first number most rankings reach for, and in this category they mislead in three ways.
- Dependencies. The
mcppackage is a hard dependency of CrewAI, OpenAI Agents SDK, Claude Agent SDK, Strands and Semantic Kernel, and Pydantic AI pulls it in too.langchainpulls inlanggraph. Each install of one counts for the others. - Spikes with no cause in the code. CrewAI’s daily PyPI downloads went from about 250,000 in April to 1.5 million in mid-August, then fell to about 83,000 in the week around August 25, 2026, and stayed there. Its commit rate over the same weeks was flat. Strands grew more than fivefold in a month without a matching change in any other metric.
- Packages that run a binary. Claude Agent SDK is a library that runs the Claude Code binary, so it is likely installed in automation and CI, where an agent runs as a process.
We did not find the cause of the August drop or the Strands jump. A number that moves 18 times with no visible reason cannot rank production use.
18 · Which one for which job, and when to write your own loop

Source: our read, based on the ranking and each framework’s design.
| Your situation | Our pick | Why |
|---|---|---|
| A short loop on one model, a few tools | Your own loop | 17 of 20 production teams went this way; fewer dependencies, easier debugging |
| Long runs, human approval mid-flow, resume after a crash | LangGraph | Checkpoints and interrupt() are the core of the runtime |
| A fast start on OpenAI models, handoffs between agents | OpenAI Agents SDK | The lightest path; pin the 0.x version |
| A TypeScript web product with streaming UI | Vercel AI SDK | Built for the frontend stack; bind approvals to the server |
| TypeScript agents plus workflows and memory in one package | Mastra | One framework for the whole app; watch the release pace |
| Google Cloud and Gemini, or Python plus Go | Google ADK | One framework across three languages |
| AWS and Bedrock | AWS Strands | Small loop with production limits built in |
| Typed, light Python with validated outputs | Pydantic AI | Types and dependency injection without a graph |
| Prompts that must move across models | DSPy | Optimizers tune against your metric |
| An agent that works like Claude Code | Claude Agent SDK | Same loop and tools; one long-lived process per session |
The case for your own loop is stronger than most framework pages admit, and the framework authors make it themselves. Anthropic’s guide to building agents suggests “that developers start by using LLM APIs directly: many patterns can be implemented in a few lines of code.” Microsoft’s Agent Framework docs say: “If you can write a function to handle the task, do that instead of using an AI agent.” LangGraph’s authors write that “the biggest competitor to any code framework is always no framework.”
A practical rule: start with your own loop and move to a framework the first time you need one of three things. Resume after a crash. Human approval in the middle of a run. Many long threads at once. If you do adopt one, do what LinkedIn did and keep it behind an adapter, so the next framework on this list costs you a migration of one layer and leaves the rest of the app alone.
This ranking will move. We will update it as new production cases appear, starting with Microsoft Agent Framework. What does your agent run on in production: one of these, or your own loop?
FAQ
Which AI agent framework is used most in production in 2026? LangGraph, together with LangChain 1.x that runs on top of it, has the strongest evidence: a talk by LinkedIn engineers about running their hiring agent on it, the most use among developers (LangChain 30%, LangGraph 19% in Stack Overflow’s 2026 survey) and the lead among framework users in the Berkeley-led study.
Do production AI agents need a framework at all? Often not. In the Berkeley-led study, 17 of the 20 production teams interviewed wrote their own loop with direct API calls. The same study’s survey found 61% of deployed agents on a framework, and Datadog sees frameworks in almost 18% of organizations.
Why are GitHub stars and downloads not used in this ranking? Downloads count installs, including CI runs and dependencies: six frameworks pull in the mcp package, langchain pulls in langgraph, and crewai’s daily downloads rose about sixfold between April and mid-August and then fell about 18 times in a week while its commit rate stayed flat. None of that says who runs the framework in production.
What is the difference between LangGraph and the OpenAI Agents SDK? LangGraph is a graph runtime with checkpoints at every step, interrupt() for human approval and resume after a crash. The OpenAI Agents SDK is a lighter loop of agents, tools, handoffs and guardrails with session memory; durable runs come through integrations such as Temporal or DBOS, and it is still on 0.x.
Are MCP and A2A agent frameworks? No, they are protocols. MCP connects an agent to tools and data, A2A connects agents to each other. All ten frameworks in this ranking support MCP; A2A is built into Mastra and available as an extra or separate package in ADK, CrewAI, Strands and Pydantic AI.