Key takeaways
- A function-calling loop and your own database cover many products; adopt a framework when runs must outlive a process.
- Ask where each framework keeps paused state, and test a resume across a deploy before you commit.
- The OpenAI Agents SDK uploads traces with model inputs and outputs to OpenAI unless you turn tracing off.
- The Claude Agent SDK runs only Claude models and is governed by Anthropic’s Commercial Terms of Service.
- Keep tools behind MCP and traces in OpenTelemetry, so changing framework later stays cheap.
AI agent frameworks differ most in where a run’s state lives, how a run resumes after a crash or a deploy, and how it pauses for a person to approve an action. This comparison of ten frameworks covers those, then where traces go by default, which models each can call, and what you’re tied to once you adopt one.
Many products need none of them. A loop that sends tool definitions to a model, runs the calls it asks for and saves the conversation in your database handles short tasks on one model. Adopt a framework when runs must outlive a process, wait days for an approval, or take enough steps that you need traces to debug them.
The ten are LangGraph, CrewAI, the OpenAI Agents SDK, the Claude Agent SDK, Google ADK, Microsoft Agent Framework, Pydantic AI, Mastra, the Vercel AI SDK and AWS’s Strands Agents. Every fact comes from each project’s repository, licence, releases or documentation as of 21 October 2026, and we haven’t benchmarked any of them.
Which AI agent framework to use, by situation
Take the first line that fits. Where two are named, the first is our default.
- Short tasks, one model, and your app is the only caller. No framework. Write the loop yourself.
- Python, any model, runs that must resume or wait for approval. LangGraph for an explicit graph with checkpoints, or Pydantic AI for typed agents on a durable engine such as Temporal or DBOS.
- TypeScript. The Vercel AI SDK for the loop and the UI, with
WorkflowAgentwhen runs must survive restarts. Mastra if you want workflows, storage and suspend-and-resume in one package. - .NET or Azure. Microsoft Agent Framework. AutoGen is archived, and Semantic Kernel’s README names Agent Framework as its successor.
- AWS. Strands Agents, which runs any model and deploys to Bedrock AgentCore Runtime.
- Gemini on Google Cloud. Google ADK 2.x.
- Committed to OpenAI models. The OpenAI Agents SDK, once you’ve decided whether traces holding your users’ data may go to OpenAI.
- An agent that edits files and runs shell commands, with Claude. The Claude Agent SDK, accepting Claude-only models and Anthropic’s Commercial Terms.
- Work that splits into roles with independent subtasks. CrewAI, after pricing the extra tokens.
Do you need an agent framework?
Anthropic’s December 2024 guidance is to start with the model API, because many agent patterns take a few lines of code and frameworks can hide the prompts and responses.1 Microsoft’s Agent Framework overview says to write a function instead of an agent whenever a function will do.2 We say so when a product doesn’t need AI at all, and the same reasoning applies one level down.
Here is the plain version as pseudocode. Each comment marks a job a framework would otherwise do.
# Pseudocode: a function-calling agent loop with your own storage
messages = db.load(conversation_id)
for step in range(MAX_STEPS):
reply = model.generate(messages, tools=TOOL_SCHEMAS)
messages.append(reply)
if not reply.tool_calls:
break
for call in reply.tool_calls:
if call.name in NEEDS_APPROVAL and not approved(call):
db.save(conversation_id, messages, pending=call) # pause for a person
return "waiting for approval"
result = run_tool(call) # must be safe to repeat
messages.append(tool_result(call, result))
db.save(conversation_id, messages) # a checkpoint after each step
log_step(conversation_id, step, reply) # your trace
return reply.text
For a support assistant or an internal tool with a few tools, this is enough, and you can read every prompt it sends. A framework pays when one of those comments gets hard.
The cost is a dependency that moves quickly. From 1 to 21 October 2026, the Vercel AI SDK’s ai package published 22 releases and the Claude Agent SDK for TypeScript published 19.3 Between April and August, Microsoft Agent Framework reached 1.0, and Google ADK, Pydantic AI and the Vercel AI SDK each shipped a new major version.4567
Ten AI agent frameworks compared, as of 21 October 2026
This AI agent framework comparison puts the ten side by side, as of 21 October 2026. Release dates are in UTC, from each project’s GitHub releases page.
| Framework (maintainer) | Licence | Languages | Latest release | Models | State and durable execution | Human approval | MCP | A2A | Tracing, default destination | Managed hosting by maintainer |
|---|---|---|---|---|---|---|---|---|---|---|
| LangGraph (LangChain) | MIT | Python, TypeScript | Python 1.2.16 (16 October); JS 1.5.2 (21 October) | Any | Checkpointer per thread; Postgres, MongoDB or Cosmos DB in production | interrupt(), then Command(resume=...) |
Yes, via LangChain (beta) | Agent Server only | Off; LangSmith with LANGSMITH_TRACING=true |
LangSmith Deployment |
| CrewAI (CrewAI Inc.) | MIT | Python | 1.15.28 (14 October) | Any; six native, others via LiteLLM | checkpoint on crews, flows and agents; JSON files by default |
@human_feedback in flows; paused state in SQLite |
Yes | Client and server; v0.3.0 by default | Usage telemetry on; traces opt-in, to CrewAI AMP | CrewAI AMP |
| OpenAI Agents SDK (OpenAI) | MIT | Python, TypeScript | Python 0.24.0 (15 October); JS 0.21.0 (20 October) | OpenAI by default; others via beta adapters | Sessions for history; Temporal, Restate, DBOS or Dapr for durable runs | needs_approval; serialise RunState, resume later |
Yes | No | On; to OpenAI, with inputs and outputs | None for SDK code; separate Agents API |
| Claude Agent SDK (Anthropic) | Anthropic Commercial Terms | Python, TypeScript | Python 0.2.171, TS 0.3.307 (21 October) | Claude only | JSONL on local disk; SessionStore for shared storage |
canUseTool callback; defer to exit and resume |
Yes | No | Off; OTLP to your collector, traces in beta | None for SDK code; separate Managed Agents (beta) |
| Google ADK (Google) | Apache 2.0 | Python, TypeScript, Go, Java, Kotlin | Python 2.12.0 (13 October); Java 1.13.0 (21 October) | Gemini, Claude, others via LiteLLM, Ollama or vLLM | Session services; resumable apps | Tool confirmation (experimental); human-input nodes in 2.0 graphs | Yes | Yes, experimental | OpenTelemetry; OTLP or Cloud Trace once configured | Agent Runtime |
| Microsoft Agent Framework (Microsoft) | MIT | Python, .NET; Go in preview | Python 1.22.0 (15 October); .NET 1.25.0 (14 October) | Any | Workflow checkpoints per superstep; Durable Extension | approval_mode="always_require"; durable waits via the Durable Extension |
Yes | Yes | Instrumented; no exporter by default | Foundry Hosted Agents |
| Pydantic AI (Pydantic) | MIT | Python | 2.59.0 (21 October) | Any | You store the conversation; eight durable engines, including Temporal and DBOS | requires_approval=True, then DeferredToolRequests |
Yes | Via the separate FastA2A package | Off; opt-in OpenTelemetry to Logfire or any backend | None |
| Mastra (Mastra) | Apache 2.0; ee/ source-available |
TypeScript | @mastra/core 1.79.0 (21 October) |
Any, via its model router | Snapshots on suspend, in memory unless configured; Inngest or Temporal runners | requireApproval on tools; suspend() |
Client and server | v0.3 and v1.0 | Exporters you configure | Mastra platform |
| Vercel AI SDK (Vercel) | Apache 2.0 | TypeScript | ai 7.0.148 (21 October) |
Any | None built in; WorkflowAgent survives restarts |
needsApproval on tools |
Client | Community provider only | OpenTelemetry once registered; inputs and outputs recorded | Vercel |
| Strands Agents (AWS) | Apache 2.0 | Python, TypeScript | Python 1.62.0, TS 1.22.0 (21 October) | Any; Bedrock by default | Session managers save after each invocation | Interrupts from hooks or tools | Yes | Client and server | OpenTelemetry via your tracer provider | Bedrock AgentCore Runtime |
Sources: release pages, licence files and the documentation cited below.38910111213141516171819202122232425262728
OpenAI Agents SDK, Claude Agent SDK and Google ADK: the lock-in question
Three of the ten come from model vendors, and each ties you in differently.
OpenAI Agents SDK. It runs inside your application and defaults to OpenAI’s gpt-5.6-luna. Other providers go through LiteLLM or Any-LLM adapters that OpenAI supports on a best-effort beta basis, and hosted file search and web search need OpenAI’s Responses models.29 Tracing is the bigger tie. It’s on by default, uploads to OpenAI with model and tool inputs and outputs, and is unavailable to organisations under Zero Data Retention.30 OpenAI’s managed option, the Agents API, released in public beta on 10 September 2026, is a separate product in which OpenAI runs a Codex-based agent loop.31
Claude Agent SDK. This is Claude Code as a library. It runs the Claude Code binary as a subprocess, with its file, shell and web tools, permissions, hooks and sessions, and calls Claude models only, through Anthropic’s API, Bedrock, Google Cloud or Microsoft Foundry.3233 Anthropic’s Commercial Terms of Service govern its use, including in products you offer your own customers.32 The TypeScript licence file says all rights reserved, and while the Python wrapper is MIT-licensed, the Claude Code binary both packages bundle is proprietary.8 Your product may not offer claude.ai login without Anthropic’s approval, or call itself Claude Code.32 Each session is a long-lived process whose state sits on local disk and is lost on a container restart, unless you mirror transcripts through a SessionStore adapter.34 Anthropic’s hosted alternative, Claude Managed Agents, is in beta.35
Google ADK. ADK is Apache 2.0 and comes in five languages. Python moved to 2.0 on 19 May 2026, Go on 30 June and TypeScript on 21 August, each switching to a graph-based engine.5 Java (1.13.0, 21 October) and Kotlin (1.4.0, 14 October) remain on 1.x.3 Its models page covers Gemini, Claude and connectors for LiteLLM, Ollama and vLLM, so the model tie is the loosest of the three.36 The pull is towards Agent Runtime, Google Cloud’s paid managed host.37 Google also warns that 2.0 session events break rigid 1.x database tables, so upgrade every reader before a 2.0 writer touches a shared store.5
Model-agnostic options, from LangGraph to Strands
The six below run any major model, and most of their maintainers also offer a managed platform.
LangGraph is the most explicit. You define a graph in code, and a checkpointer saves its state per thread. By default each step’s checkpoint is written while the next step runs, so choose sync durability if a crash must never lose the last completed step.38 LangSmith Deployment’s cloud option needs a Plus plan or above.39
Microsoft Agent Framework was announced on 1 October 2025 as the convergence of AutoGen and Semantic Kernel, and reached 1.0 on 3 April 2026. Microsoft calls it the successor to both.4042 Microsoft also committed to supporting Semantic Kernel for at least a year after Agent Framework’s general availability.41 AutoGen’s README announced maintenance mode on 6 April 2026, and since 16 October it has said the project is archived, with no bug or security fixes.42
Pydantic AI is typed Python that hands durability to an engine you may already run. Its docs list eight, including Temporal, DBOS, Prefect and Restate.43 Version 2, released on 23 June 2026, moved A2A support into the separate FastA2A package.644
Mastra is a TypeScript workflow engine with agents attached. A suspended workflow is saved as a snapshot in your storage, which is in memory unless you configure a persistent adapter.45 Its durable agents may still change without a major version bump.46 The core is Apache 2.0, but code in ee/ directories needs a written agreement and a licence key for production use.47
The Vercel AI SDK is a library first. Its ToolLoopAgent keeps state in memory, and the docs say a crash loses all progress. WorkflowAgent runs the loop on the Workflow SDK and survives restarts.48 Off Vercel, the documented option is a Postgres-backed worker that runs continuously, which rules out serverless hosts.49
Strands Agents, from AWS, runs in your process with no hosted control plane.50 Session managers save state after each invocation, and AgentCore Runtime, the managed host, gives each user session its own microVM.5152
LangGraph vs CrewAI, and when multi-agent is worth the tokens
CrewAI organises agents into role-based crews and event-driven flows, where LangGraph has you define the graph yourself. Both persist state. CrewAI checkpoints crews, flows and agents to JSON files under ./.checkpoints by default and skips completed tasks on resume, and @human_feedback saves a paused flow to SQLite.5354
The harder question is whether you want several agents at all. Anthropic’s write-up of its multi-agent research system, published on 13 June 2025, says agents typically use about 4 times the tokens of a chat, and multi-agent systems about 15 times.55 On Anthropic’s internal research eval, a lead Claude Opus 4 directing Claude Sonnet 4 subagents beat a single Claude Opus 4 by 90.2%, a vendor-reported figure. Anthropic tied the gain to research that splits into parallel threads, and said domains where every agent needs the same context, and most coding, fit less well. A day earlier, Cognition had argued that agents working in parallel make conflicting decisions because they can’t see each other’s context.56
We’d split work across agents only when the subtasks are independent and the answer is worth around 15 times the tokens of a chat, and otherwise give one agent better tools.
Durable execution and human approval in practice
“Resumes after a crash” means three different things across these docs.
- Saved conversations. History survives, but a run interrupted mid-step starts again from the last saved message. OpenAI’s sessions, the Claude Agent SDK’s transcripts, Strands’ session managers and Pydantic AI’s stored conversations work this way.
- Checkpointed state. State is saved after each step, and the run resumes from the last checkpoint. LangGraph, CrewAI, Microsoft Agent Framework workflows and ADK’s resumable apps do this.
- A durable execution engine. Temporal, DBOS, Restate, Inngest, Durable Task or the Workflow SDK records each step and replays the run. Pydantic AI, the OpenAI Agents SDK, Mastra, Microsoft Agent Framework and the Vercel AI SDK each integrate with at least one.4314465748
The docs also name the failure modes. LangGraph restarts an interrupted node from its first line, so anything the node did before calling interrupt() runs again.58 ADK says tools may run more than once when a workflow resumes, and tells you to make tools such as purchases check for duplicates.59 ADK’s tool confirmation is experimental and doesn’t support DatabaseSessionService or VertexAiSessionService, its persistent session services.60 Mastra’s default in-memory store loses suspended runs when the process exits.61
Approvals that take days need the paused run stored outside the process. The Claude Agent SDK’s canUseTool callback holds the process open while it waits, so for longer waits its docs suggest a PreToolUse hook that returns defer and lets the process exit.62 OpenAI’s RunState and Pydantic AI’s deferred tool requests can be stored in your database and resumed in a later request.6364 Microsoft’s Durable Extension and Vercel’s WorkflowAgent wait inside the engine instead, and Microsoft says the wait uses no compute or model tokens.5748 Load stored run state only from storage you trust, because OpenAI notes that restoring a RunState doesn’t authenticate the snapshot.63
Deploys are the other test. Microsoft Agent Framework 1.22.0 for Python, released on 15 October 2026, writes records that earlier versions can’t read, and its release notes say not to run old and new workers against the same store during a rolling deployment.65
Tracing: OpenTelemetry and where traces go by default
Three of the ten send telemetry off your machine by default. The OpenAI Agents SDK uploads traces to OpenAI that include model and tool inputs and outputs.30 CrewAI sends anonymous usage telemetry, which its docs say excludes prompts and task descriptions.66 Claude Code, which the Claude Agent SDK runs, sends usage metrics to Anthropic and a third-party logging service when it calls the Claude API directly, though not via Bedrock, Google Cloud or Foundry. Anthropic says they never include code, prompts or file paths, and DISABLE_TELEMETRY=1 turns them off.67 Microsoft Agent Framework can also add a feature-usage token, which carries no prompt or response content, to the User-Agent of Foundry and Azure OpenAI requests.68 Apart from those three, traces leave your process only after you set an environment variable or configure an exporter.
Contents differ too. Microsoft and Anthropic leave prompts and tool content out of traces unless you opt in.6869 The Vercel AI SDK records inputs and outputs by default once telemetry is registered, and Pydantic AI includes message content unless you set include_content=False.7071
OpenTelemetry is the common format. Google ADK, Microsoft Agent Framework, Pydantic AI, the Vercel AI SDK and Strands follow its semantic conventions for generative AI, and LangSmith accepts OpenTelemetry too.726871707374 The OpenAI Agents SDK uses its own trace processors, and the Claude Agent SDK exports OTLP under its own claude_code.* span names.3069
Those conventions are still at Development status. In May 2026 they moved to a repository of their own, which hadn’t published a release by 21 October, and names are still changing. On 6 October the project replaced the gen_ai.client.operation.duration metric with gen_ai.client.inference.duration.75 Frameworks also target different versions. Pydantic AI’s docs cite 1.37.0 and Microsoft Agent Framework defaults to the latest experimental set, so dashboards built on these names will need upkeep.7168
Keeping the exit open
Keep the parts you’d carry to another framework outside the one you pick. Tools are the clearest case. All ten can call tools on an MCP server, so a tool written once as an MCP server moves with you, while a tool written against one framework’s decorator has to be rewritten. Our comparison of MCP, A2A and function calling covers when a separate server is worth running. Prompts and evals belong in your repository, and traces in OpenTelemetry.
Visual builders are the extreme case. OpenAI announced on 3 June 2026 that Agent Builder is deprecated, and it shuts down on 30 November 2026. OpenAI’s migration guide points to Agents SDK code or ChatGPT workspace agents instead.76 Our Agent Builder migration guide walks through the move. When an agent’s source of truth lives in a vendor’s canvas, the vendor decides when you migrate.
Hosted platforms deserve the same scrutiny, because leaving one means rebuilding the persistence, scaling and endpoints it ran for you. LangGraph’s A2A endpoint, for example, lives in Agent Server, and LangChain’s deployment docs list a LangSmith licence even for running that server yourself.1039
A checklist for choosing an AI agent framework
- Build the task as a plain loop first, and note which part became hard.
- Find out where paused state lives. Test that a pending approval survives a restart and a deploy.
- Check whether tools can run twice on resume, and make every write idempotent.
- Read the licence and terms of every package you ship, including bundled binaries and
ee/directories. - List what leaves your network by default, traces and usage telemetry alike, and set the opt-outs before the first production run.
- Confirm the framework runs the models you might move to, without a beta adapter on the critical path.
- Put tools behind MCP, keep prompts and evals in your repository, and send traces through OpenTelemetry.
- Pin versions, read the changelog before taking a minor release of a 0.x SDK, and budget time for major upgrades.
-
Anthropic, “Building effective agents”, 19 December 2024, https://www.anthropic.com/engineering/building-effective-agents ↩
-
Microsoft Learn, “Microsoft Agent Framework Overview”, https://learn.microsoft.com/en-us/agent-framework/overview/ ↩↩
-
GitHub release pages, dates in UTC: LangGraph https://github.com/langchain-ai/langgraph/releases and https://github.com/langchain-ai/langgraphjs/releases; CrewAI https://github.com/crewAIInc/crewAI/releases; OpenAI Agents SDK https://github.com/openai/openai-agents-python/releases and https://github.com/openai/openai-agents-js/releases; Claude Agent SDK https://github.com/anthropics/claude-agent-sdk-python/releases and https://github.com/anthropics/claude-agent-sdk-typescript/releases; Google ADK https://github.com/google/adk-python/releases, https://github.com/google/adk-js/releases, https://github.com/google/adk-go/releases, https://github.com/google/adk-java/releases and https://github.com/google/adk-kotlin/releases; Microsoft Agent Framework https://github.com/microsoft/agent-framework/releases; Pydantic AI https://github.com/pydantic/pydantic-ai/releases; Mastra https://github.com/mastra-ai/mastra/releases; Vercel AI SDK https://github.com/vercel/ai/releases; Strands Agents https://github.com/strands-agents/harness-sdk/releases ↩↩↩
-
Shawn Henry, Microsoft Agent Framework blog, “Microsoft Agent Framework Version 1.0”, 3 April 2026, https://devblogs.microsoft.com/agent-framework/microsoft-agent-framework-version-1-0/ ↩↩
-
Google, “Welcome to ADK 2.0”, https://adk.dev/2.0/ ↩↩↩
-
Pydantic AI, release notes for v2.0.0, 23 June 2026, https://github.com/pydantic/pydantic-ai/releases/tag/v2.0.0 ↩↩
-
Vercel AI SDK, release notes for
ai@7.0.0, 25 June 2026, https://github.com/vercel/ai/releases/tag/ai%407.0.0 ↩ -
Licence files: https://github.com/langchain-ai/langgraph/blob/main/LICENSE, https://github.com/crewAIInc/crewAI/blob/main/LICENSE, https://github.com/openai/openai-agents-python/blob/main/LICENSE, https://github.com/anthropics/claude-agent-sdk-typescript/blob/main/LICENSE.md, https://github.com/anthropics/claude-agent-sdk-python/blob/main/LICENSE, https://github.com/anthropics/claude-code/blob/main/LICENSE.md, https://github.com/google/adk-python/blob/main/LICENSE, https://github.com/microsoft/agent-framework/blob/main/LICENSE, https://github.com/pydantic/pydantic-ai/blob/main/LICENSE, https://github.com/mastra-ai/mastra/blob/main/LICENSE.md, https://github.com/vercel/ai/blob/main/LICENSE, https://github.com/strands-agents/harness-sdk/blob/main/LICENSE.APACHE ↩↩
-
LangChain, “Migrate from langchain-mcp-adapters” (MCP in the
langchain.mcpnamespace, in beta), https://docs.langchain.com/oss/python/migrate/langchain-mcp-adapters ↩ -
LangChain, “A2A endpoint in Agent Server”, https://docs.langchain.com/langsmith/server-a2a ↩↩
-
CrewAI, “LLMs”, https://docs.crewai.com/en/concepts/llms, and “MCP Servers as Tools in CrewAI”, https://docs.crewai.com/en/mcp/overview ↩
-
CrewAI, “Agent-to-Agent (A2A) Protocol”, https://docs.crewai.com/en/learn/a2a-agent-delegation ↩
-
CrewAI, “CrewAI AMP” introduction, https://docs-platform.crewai.com/platform/en/introduction ↩
-
OpenAI Agents SDK, “Running agents” (durable execution integrations and conversation state), https://openai.github.io/openai-agents-python/running_agents/, and “Sessions”, https://openai.github.io/openai-agents-python/sessions/ ↩↩
-
OpenAI Agents SDK, “Model context protocol (MCP)”, https://openai.github.io/openai-agents-python/mcp/ ↩
-
Anthropic, “Persist sessions to external storage”, https://code.claude.com/docs/en/agent-sdk/session-storage ↩
-
Google, “Session: Tracking individual conversations”, https://adk.dev/sessions/session/ ↩
-
Google, “ADK with Agent2Agent (A2A) Protocol”, https://adk.dev/a2a/, and “Model Context Protocol tools”, https://adk.dev/tools-custom/mcp-tools/ ↩
-
Microsoft Learn, “Using function tools with human in the loop approvals”, https://learn.microsoft.com/en-us/agent-framework/agents/tools/tool-approval ↩
-
Microsoft Learn, “Hosting Agent Framework applications” (Foundry Hosted Agents generally available), https://learn.microsoft.com/en-us/agent-framework/hosting/ ↩
-
Pydantic, “Models and Providers” for Pydantic AI, https://pydantic.dev/docs/ai/models/overview/ ↩
-
Mastra, “A2A”, https://mastra.ai/docs/connections/a2a ↩
-
Mastra, “Observability”, https://mastra.ai/docs/observability/overview, and “Deploy”, https://mastra.ai/docs/deployment/overview ↩
-
AI SDK, “MCP Tools”, https://ai-sdk.dev/docs/ai-sdk-core/mcp-tools, and the community A2A provider, https://ai-sdk.dev/providers/community-providers/a2a ↩
-
Strands Agents, “Model Providers”, https://strandsagents.com/docs/user-guide/sdk/model-providers/ ↩
-
Strands Agents, “Agent-to-Agent (A2A) Protocol”, https://strandsagents.com/docs/user-guide/sdk/multi-agent/agent-to-agent/ ↩
-
LangChain, “Checkpointers”, https://docs.langchain.com/oss/python/langgraph/checkpointers ↩
-
Microsoft Learn, “Microsoft Agent Framework Workflows - Checkpoints”, https://learn.microsoft.com/en-us/agent-framework/workflows/checkpoints ↩
-
OpenAI Agents SDK, “Models” for Python, https://openai.github.io/openai-agents-python/models/, and for TypeScript, https://openai.github.io/openai-agents-js/guides/models/ ↩
-
OpenAI Agents SDK, “Tracing” for Python, https://openai.github.io/openai-agents-python/tracing/, and for TypeScript, https://openai.github.io/openai-agents-js/guides/tracing/ ↩↩↩
-
OpenAI, “Agents” (comparison of agent runtimes), https://developers.openai.com/api/docs/guides/agents, and the API changelog entry of 10 September 2026, https://developers.openai.com/api/docs/changelog ↩
-
Anthropic, “Agent SDK overview” (comparison with other Claude tools, branding guidelines, licence and terms), https://code.claude.com/docs/en/agent-sdk/overview ↩↩↩
-
Anthropic, “Quickstart” for the Agent SDK (authentication and third-party providers), https://code.claude.com/docs/en/agent-sdk/quickstart ↩
-
Anthropic, “Hosting the Agent SDK”, https://code.claude.com/docs/en/agent-sdk/hosting ↩
-
Anthropic, “Claude Managed Agents overview”, https://platform.claude.com/docs/en/managed-agents/overview ↩
-
Google, “AI Models for ADK agents”, https://adk.dev/agents/models/ ↩
-
Google, “Deploy to Agent Runtime”, https://adk.dev/deploy/agent-runtime/ ↩
-
LangGraph source, durability modes in
types.pyand the"async"default inpregel/main.py, https://github.com/langchain-ai/langgraph/blob/main/libs/langgraph/langgraph/types.py and https://github.com/langchain-ai/langgraph/blob/main/libs/langgraph/langgraph/pregel/main.py ↩ -
LangChain, “LangSmith Deployment” (deployment options and plan requirements), https://docs.langchain.com/langsmith/deployments ↩↩
-
Yina Arenas, Microsoft Azure Blog, “Introducing Microsoft Agent Framework”, 1 October 2025, https://azure.microsoft.com/en-us/blog/introducing-microsoft-agent-framework/ ↩
-
Shawn Henry, Semantic Kernel blog, “Semantic Kernel and Microsoft Agent Framework”, 7 October 2025, https://devblogs.microsoft.com/semantic-kernel/semantic-kernel-and-microsoft-agent-framework/ ↩
-
AutoGen README and its history (maintenance-mode banner of 6 April 2026, archive notice of 16 October 2026), https://github.com/microsoft/autogen and https://github.com/microsoft/autogen/commits/main/README.md ↩
-
Pydantic, “Durable Execution” overview, https://pydantic.dev/docs/ai/capabilities/durable_execution/overview/ ↩↩
-
Pydantic, “V1 → V2 Migration Map”, https://pydantic.dev/docs/ai/overview/migration/ ↩
-
Mastra, “Snapshots”, https://mastra.ai/docs/workflows/snapshots, and “Storage”, https://mastra.ai/docs/storage ↩
-
Mastra, “Durable agents”, https://mastra.ai/docs/harness/durable-agents, and “Temporal”, https://mastra.ai/integrations/deploy/temporal ↩↩
-
Mastra,
LICENSE.md, https://github.com/mastra-ai/mastra/blob/main/LICENSE.md, and Mastra Enterprise Edition License, https://github.com/mastra-ai/mastra/blob/main/ee/LICENSE ↩ -
AI SDK, “WorkflowAgent”, https://ai-sdk.dev/docs/agents/workflow-agent, and “Tool Approvals”, https://ai-sdk.dev/docs/agents/tool-approvals ↩↩↩
-
Workflow SDK, “Postgres World”, https://workflow-sdk.dev/worlds/postgres ↩
-
Strands Agents, README of the
harness-sdkrepository, https://github.com/strands-agents/harness-sdk ↩ -
Strands Agents, “Persist state across sessions”, https://strandsagents.com/docs/user-guide/sdk/agents/session-management/, and “Interrupts”, https://strandsagents.com/docs/user-guide/sdk/interrupts/ ↩
-
Strands Agents, “Deploying Strands Agents to Amazon Bedrock AgentCore Runtime”, https://strandsagents.com/docs/user-guide/sdk/deploy/deploy_to_bedrock_agentcore/ ↩
-
CrewAI, “Checkpointing”, https://docs.crewai.com/en/concepts/checkpointing ↩
-
CrewAI, “Human Feedback in Flows”, https://docs.crewai.com/en/learn/human-feedback-in-flows ↩
-
Anthropic, “How we built our multi-agent research system”, 13 June 2025, https://www.anthropic.com/engineering/multi-agent-research-system ↩
-
Walden Yan, Cognition, “Don’t Build Multi-Agents”, 12 June 2025, https://cognition.com/blog/dont-build-multi-agents ↩
-
Microsoft Learn, “Durable Extension”, https://learn.microsoft.com/en-us/agent-framework/hosting/durable-extension ↩↩
-
LangChain, “Interrupts”, https://docs.langchain.com/oss/python/langgraph/interrupts ↩
-
Google, “Resume Agents”, https://adk.dev/runtime/resume/ ↩
-
Google, “Action confirmations”, https://adk.dev/tools-custom/confirmation/, and “Human input” for graphs, https://adk.dev/graphs/human-input/ ↩
-
Mastra, “Human-in-the-Loop” for agents, https://mastra.ai/docs/agents/human-in-the-loop ↩
-
Anthropic, “Handle approvals and user input”, https://code.claude.com/docs/en/agent-sdk/user-input ↩
-
OpenAI Agents SDK, “Human-in-the-loop” for Python, https://openai.github.io/openai-agents-python/human_in_the_loop/, and for TypeScript, https://openai.github.io/openai-agents-js/guides/human-in-the-loop/ ↩↩
-
Pydantic, “Deferred Tools”, https://pydantic.dev/docs/ai/tools-toolsets/deferred-tools/ ↩
-
Microsoft Agent Framework, release notes for python-1.22.0, 15 October 2026, https://github.com/microsoft/agent-framework/releases/tag/python-1.22.0 ↩
-
CrewAI, “Telemetry”, https://docs.crewai.com/en/telemetry, and “CrewAI Tracing”, https://docs.crewai.com/en/observability/tracing ↩
-
Anthropic, “Data usage” for Claude Code (telemetry services and defaults by API provider), https://code.claude.com/docs/en/data-usage ↩
-
Microsoft Learn, “Observability” for Agent Framework, https://learn.microsoft.com/en-us/agent-framework/agents/observability ↩↩↩↩
-
Anthropic, “Observability with OpenTelemetry”, https://code.claude.com/docs/en/agent-sdk/observability ↩↩
-
AI SDK, “Telemetry”, https://ai-sdk.dev/docs/ai-sdk-core/telemetry ↩↩
-
Pydantic, “Pydantic Logfire Debugging and Monitoring”, https://pydantic.dev/docs/ai/integrations/logfire/, and the
include_content=Truedefault ininstrumented.py, https://github.com/pydantic/pydantic-ai/blob/main/pydantic_ai_slim/pydantic_ai/models/instrumented.py ↩↩↩ -
Google, “Traces”, https://adk.dev/observability/traces/ ↩
-
Strands Agents, “Traces”, https://strandsagents.com/docs/user-guide/sdk/observability-evaluation/traces/ ↩
-
LangChain, “Trace with OpenTelemetry”, https://docs.langchain.com/langsmith/trace-with-opentelemetry ↩
-
OpenTelemetry, “Semantic conventions for generative AI systems” (status: Development), https://github.com/open-telemetry/semantic-conventions-genai/blob/main/docs/gen-ai/README.md; the move to a dedicated repository, merged 5 May 2026, https://github.com/open-telemetry/semantic-conventions/pull/3696; and the metric change, merged 6 October 2026, https://github.com/open-telemetry/semantic-conventions-genai/pull/521 ↩
-
OpenAI, “Deprecations” (Agent Builder notice of 3 June 2026), https://developers.openai.com/api/docs/deprecations ↩
Frequently asked questions
What is the best AI agent framework in 2026?
It depends on your language, cloud and models. As of 21 October 2026, LangGraph and Pydantic AI suit model-agnostic Python, Mastra and the Vercel AI SDK suit TypeScript, Microsoft Agent Framework suits .NET, and Strands and Google ADK suit AWS and Google Cloud. Many products need no framework at all.
Do I need an agent framework?
Often not. A loop that sends tool definitions to a model, runs the calls it returns and saves the conversation in your database covers many products. A framework earns its place when runs must survive crashes and deploys, wait days for an approval, or be traced across many steps.
LangGraph vs CrewAI: what is the difference?
LangGraph has you define an explicit graph whose state a checkpointer saves as it runs, with any model. CrewAI organises agents into role-based crews and event-driven flows, saves checkpoints to JSON files by default, and suits work that splits naturally into roles.
OpenAI Agents SDK vs LangGraph: which should I use?
The OpenAI Agents SDK suits teams committed to OpenAI models that want sessions, approvals and tracing built in, and it sends traces to OpenAI by default. LangGraph runs any model and adds explicit control flow, with checkpoints you can resume mid-run. Both are MIT-licensed.
Is the Claude Agent SDK open source?
No. Anthropic’s documentation says use of the SDK is governed by its Commercial Terms of Service, and it runs Claude models only. The TypeScript package’s licence file says all rights reserved, and the Python wrapper’s MIT licence doesn’t cover the proprietary Claude Code binary that both packages bundle.
Is AutoGen deprecated?
Yes. Since 16 October 2026 its README has said the project is archived and no longer maintained, with no bug or security fixes. Microsoft points users to Microsoft Agent Framework, the successor to AutoGen and Semantic Kernel, which reached version 1.0 on 3 April 2026.
Building something like this?
9io is a small team of senior engineers with a fractional CTO, and we work by the hour. Send us a note about your product. The reply comes from the person who'd do the work.