GuideAgentic AIArchitectureEngineering

Agent Frameworks Compared: A Provider-Neutral 2026 Guide

Choose an agent framework by failure survival and exit cost, not feature count. A sourced, dated comparison of 2026 options with three NKK models: Durability Ladder, Exit-Cost Map and Selection Flow.

Author
NKK Innovations Research Team
Published
Reading time
18 min read
Guide

Key takeaways

  • MCP, A2A and trace context have shared but young specs; state and checkpoint formats have none, so state is where avoidable lock-in and production failures concentrate.
  • In the five frameworks whose defaults we checked, session and checkpoint defaults keep state in memory or local files. Production durability is your job.
  • The field consolidated: AutoGen is in maintenance mode and Microsoft Agent Framework is the named successor to AutoGen and Semantic Kernel.
  • Microsoft Agent Framework 1.0 describes a stable core with a preview periphery; version numbers and PyPI classifiers are weak maturity signals.
  • MCP is the shared tool interface across the frameworks we compared, but not a free default: pin the revision, vet servers, and treat spec changes as migrations.
  • No neutral cross-framework benchmark exists in the sources we could verify; run a two-week spike on your own tasks instead.

Most framework comparisons rank features. That is the wrong axis. By October 2026 the tool interface (MCP), agent-to-agent messaging (A2A) and trace context each have a shared layer, though a young one: MCP and A2A have versioned specifications [1][2], W3C Trace Context is a stable Recommendation [3], and the OpenTelemetry agent conventions are still in Development status [53]. The thing that decides whether an agent survives production, where its state lives and how a run resumes, is, in the documentation we reviewed, still defined separately by each framework, with no shared checkpoint specification that we could find. Our thesis: choose a framework by how much failure it survives and how cheaply you can leave, not by how many agent patterns it ships.

The field has also stopped being a free-for-all. Microsoft's AutoGen README now reads "AutoGen is now in maintenance mode." [4], Microsoft describes Agent Framework as "the next generation of both Semantic Kernel and AutoGen" [5], and LangGraph reached 1.0 in October 2025 [6]. The empirical record is thin and dated: a 2025 preprint of 11,910 developer discussions found AutoGen and LangChain the hardest to maintain among ten frameworks [7]; its limits are listed in the evidence section.

This guide compares actively maintained options on six criteria: state, tools and MCP, observability, deployment, lock-in and maturity. It uses official documentation, specification text, registry pages, the Thoughtworks Technology Radar and a few preprints, all opened on 13 October 2026. NKK has no benchmark data and publishes no ranking; the models below are NKK's opinion, built on the cited prior art.

What changed in the last twelve months

Consolidation. Microsoft's documentation calls Agent Framework "the direct successor, created by the same teams" [5]. Semantic Kernel still shipped version 1.45.0 on 6 October 2026 [9], and the sources we opened give no end-of-support date. The 2025 promise ran to one year after general availability [8]; the 1.0 post does not use that term [10], so any date counted from 1.0 is NKK inference.

A stable core with a preview periphery. The 1.0 post lists single agents, middleware, memory, graph workflows with checkpointing, multi-agent orchestration, declarative YAML, and A2A and MCP among its 1.0 features. It separately lists DevUI, Foundry hosted-agent integration, Skills and Agent Harness as early-adoption features whose APIs may change, and said A2A 1.0 support was "coming soon" [10]. The overview page marks Go as public preview [5]. "1.0" describes the core, not everything around it.

Governance of the open protocols. MCP, goose and AGENTS.md were contributed to the new Agentic AI Foundation in December 2025 [11]. A2A v1.0.0 was released on 12 March 2026 and v1.0.1, a bug-fix release, followed in late May [12]. In April the Linux Foundation called 1.0 the project's first stable specification and reported more than 150 supporting organisations [13]. NIST launched an AI Agent Standards Initiative in February 2026; its page lists a request for information and a draft concept paper but no final guidance [14].

Agent framework and protocol milestones
Timeline
  1. 2025-10-07
    Semantic Kernel support statement

    Microsoft commits to v1.x support for the foreseeable future and at least a year after Agent Framework is generally available.

  2. 2025-10-22
    LangChain and LangGraph 1.0

    LangGraph 1.0 is positioned as a durable agent framework; LangChain's create_agent is built on the LangGraph runtime.

  3. 2025-12-09
    Agentic AI Foundation formed

    MCP, goose and AGENTS.md are contributed to a neutral Linux Foundation home.

  4. 2026-03-12
    A2A v1.0.0 released

    First stable A2A specification, with breaking changes from 0.3.0; v1.0.1 bug fixes followed in late May 2026.

  5. 2026-04-03
    Microsoft Agent Framework 1.0

    Version 1.0 for .NET and Python with a long-term support and backward-compatibility commitment.

  6. 2026-04-15
    Thoughtworks Radar Vol. 34

    LangGraph and Google ADK at Trial; Mastra at Assess; "Ignoring durability in agent workflows" and "MCP by default" in Caution. Dated by the entry pages.

  7. 2026-07-28
    MCP revision 2026-07-28

    Stateless requests; protocol-level sessions and the initialize handshake removed; Roots, Sampling and Logging deprecated.

Seven dated events that changed the framework landscape between October 2025 and July 2026. A2A's 150-organisation milestone was announced on 2026-04-09 and is in the text. AutoGen's maintenance-mode notice is undated and is therefore not plotted.

Four families, not one category

LangGraph and the OpenAI Agents SDK are different kinds of product, and a feature-by-feature comparison hides that. We group the field into four families by what each project says it is for. The grouping is NKK's, and the boundaries blur.

The four framework families
NKK framework
Agent framework landscape, October 2026
Choose the family first, then the product
  • Model-provider SDKs: one vendor's models
    • OpenAI Agents SDK
    • Claude Agent SDK
  • Cloud-platform frameworks: open source, a home cloud
    • Microsoft Agent Framework
    • Google ADK
    • Strands Agents (AWS deployment targets)
  • Orchestration runtimes: explicit state and control
    • LangGraph
    • LlamaIndex Workflows
    • CrewAI Flows
  • Lean or language-specific: small surface
    • Pydantic AI
    • Mastra (TypeScript)
    • Haystack
    • smolagents
Shared substrate: model APIs, MCP tool servers, OpenTelemetry traces, an external state store
NKK's grouping of the actively maintained frameworks reviewed in this guide, based on how each project describes itself. Products sit in one family for convenience; several straddle two. Strands is placed by its documented AWS deployment targets, not by a stated maintainer.

Model-provider SDKs. The OpenAI Agents SDK centres on agents, handoffs, guardrails, sessions, built-in MCP integration and tracing, and uses the Responses API by default for OpenAI models [17]. Anthropic's Claude Agent SDK is described in its own docs as "A library that runs the Claude Code binary" [18]. It spawns a claude subprocess per session that owns a shell and working directory, so hosting is stateful rather than a stateless API wrapper [19]. In our view both are the most direct path to a vendor's newest model features and pay for it in portability.

Cloud-platform frameworks. Microsoft Agent Framework reached 1.0 for .NET and Python, with Go in public preview [10][5], and ships first-party connectors for Foundry, Azure OpenAI, OpenAI, Anthropic Claude, Amazon Bedrock, Google Gemini and Ollama [10]. Google's ADK is open source, available in Python, TypeScript, Go and Java, and deploys to Agent Runtime, Cloud Run or GKE [20]. Strands Agents is an open-source toolkit for Python and TypeScript with documented deployment targets from AWS Lambda to Amazon EKS and Bedrock AgentCore, and its documentation names no maintainer, so we do not attribute one; we place it here only because of those AWS deployment targets [21]. Thoughtworks put ADK at Trial, "pre-GA in parts", suiting teams invested in Google's platform [22].

Orchestration runtimes. LangGraph describes itself as "a low-level orchestration framework and runtime for building, managing, and deploying long-running, stateful agents" and can be used without LangChain [23]. LlamaIndex Workflows is an event-driven, step-based execution model that ships with llama-index-core and can be installed standalone [24]. CrewAI nests teams of agents (Crews) inside event-driven Flows, which its documentation calls the backbone of an application [25].

Lean or language-specific libraries. Pydantic AI presents a typed, extensible agent loop in which every model is a string swap away, a vendor claim we could not test [26]. Mastra is a TypeScript framework Thoughtworks places at Assess for teams committed to TypeScript [27]. Thoughtworks had Pydantic AI at Trial in November 2025 (Assess in April 2025), but the entry is no longer on the current edition [28]. Haystack has an agent component with MCP tool support and a state_schema [29]. smolagents has agents write actions as code, with sandbox options [30]. We found too little to characterise the Vercel AI SDK beyond its self-description as a TypeScript toolkit [31].

The six criteria, and what the docs actually say

The two tables below keep to claims we could trace to an opened page; where a page was silent, the cell says "Not stated". LlamaIndex Workflows and Strands are omitted for space; the first keeps per-run state in ctx.store and holds clients and models in Resource objects kept out of serialised state [24], and the second lists Bedrock, OpenAI, Anthropic, Google, LiteLLM and Ollama among its model providers [21].

Cloud and orchestration frameworks: six criteria (snapshot 2026-10-13)
Comparison
State
LangGraph
Checkpointers per thread; in-memory saver lost on restart
MS Agent Framework
Sessions; checkpoint per superstep; pluggable storage
Google ADK
Session, State, Memory; in-memory loses data
CrewAI
Flow state; @persist defaults to SQLite
Tools and MCP
LangGraph
MCP via LangChain adapter (beta)
MS Agent Framework
MCP built in; A2A 1.0 was 'coming soon'
Google ADK
McpToolset: stdio, Streamable HTTP, SSE
CrewAI
MCP tools via adapter; prompts, resources not integrated
Observability
LangGraph
LangSmith tracing; native OTel not stated
MS Agent Framework
OTel GenAI conventions; no exporters by default
Google ADK
Not stated
CrewAI
Not stated
Deployment
LangGraph
LangSmith cloud, self-hosted, hybrid, or own server
MS Agent Framework
Foundry hosted agents (preview at 1.0)
Google ADK
Agent Runtime, Cloud Run or GKE
CrewAI
Not stated
Lock-in signals
LangGraph
Works without LangChain; managed options need paid plans
MS Agent Framework
Seven first-party model connectors; Azure-oriented data notice
Google ADK
Open source; Radar favours LangGraph/CrewAI for portability
CrewAI
Not stated
Maturity signal (classifier or Radar)
LangGraph
Production/Stable classifier
MS Agent Framework
Production/Stable classifier
Google ADK
Radar Trial; pre-GA in parts
CrewAI
Classifier not read
Part 1 of 2: LangGraph, Microsoft Agent Framework, Google ADK and CrewAI compared on six criteria, with cells shortened to the essentials. "Not stated" means the documentation we opened was silent; that is an evidence gap, not a missing feature.
Provider SDKs and lean libraries: six criteria (snapshot 2026-10-13)
Comparison
State
OpenAI Agents SDK
Sessions; SQLite default; Redis, SQLAlchemy options
Claude Agent SDK
Local JSONL transcripts; SessionStore mirrors transcripts only
Pydantic AI
External durable engines (Temporal, DBOS, others)
Tools and MCP
OpenAI Agents SDK
Built-in MCP integration
Claude Agent SDK
MCP supported
Pydantic AI
MCP listed as a core fundamental
Observability
OpenAI Agents SDK
Uploads to OpenAI by default; pluggable processors
Claude Agent SDK
OpenTelemetry via environment variables
Pydantic AI
OpenTelemetry-native; Logfire suggested
Deployment
OpenAI Agents SDK
Not stated
Claude Agent SDK
Stateful subprocess per session; sizing in docs
Pydantic AI
Not stated
Lock-in signals
OpenAI Agents SDK
Responses-only features dropped or rejected elsewhere
Claude Agent SDK
Commercial Terms; Anthropic, Bedrock, Google endpoints
Pydantic AI
Vendor says any model is a string swap
Maturity signal (classifier or Radar)
OpenAI Agents SDK
No classifier
Claude Agent SDK
Alpha classifier
Pydantic AI
Radar Trial (Nov 2025); not in Vol. 34
Part 2 of 2: OpenAI Agents SDK, Claude Agent SDK and Pydantic AI compared on the same six criteria. "Not stated" means the documentation we opened was silent; that is an evidence gap, not a missing feature.

Three patterns stand out. First, state is the widest gap between documentation and production. LangGraph says its in-memory saver loses all checkpoints after a restart and recommends a persistent checkpointer for production [32]. ADK says its in-memory services are for local testing and lose data on restart [33]. The Claude Agent SDK's transcripts, memory files and working-directory artifacts live on local disk and do not survive a container restart, a scale-down or a move to another node [19]. OpenAI's default session backend is SQLite, and its in-memory form is not durable [34]. CrewAI's @persist also defaults to SQLite [35]. In the five defaults we checked, state sits in memory or in local files, so in our reading production durability is your job.

Second, every framework in the grid documents MCP support, but unevenly. ADK consumes MCP servers through McpToolset over stdio, Streamable HTTP and SSE [36]. CrewAI's adapter primarily supports MCP tools, and its docs say prompts and resources are not directly integrated at this time [37]. LangChain's adapter is in beta and may change [38]. No source we opened documents support for the 2026-07-28 revision.

Third, version numbers and registry recency say little about maturity, so the grid shows classifiers and Radar placements, not versions. The chart below is registry activity, not quality: days since each Python package's latest PyPI release on 13 October 2026, in alphabetical order. Pydantic AI, Haystack, Mastra and ADK TypeScript are not charted. AutoGen is the outlier, consistent with its maintenance-mode notice [4]. LlamaIndex is the llama-index meta-package, not the separate Workflows package this guide discusses, which releases separately.

Registry activity, not quality: days since latest PyPI release (as of 2026-10-13)
Chart
  • AutoGen AgentChat (outlier, 378)
    378 days
  • Claude Agent SDK
    5 days
  • CrewAI
    4 days
  • Google ADK
    0 days
  • LangGraph
    1 days
  • LlamaIndex (llama-index meta-package)
    22 days
  • MS Agent Framework
    5 days
  • OpenAI Agents SDK
    11 days
  • Semantic Kernel
    7 days
  • smolagents
    137 days
  • Strands Agents
    1 days
Days between each package's latest listed PyPI release date and 2026-10-13, calculated by NKK from the registry pages and listed alphabetically, not ranked. AutoGen's 378-day bar flattens the rest; its last autogen-agentchat release was 30 September 2025. google-adk 2.12.0 was uploaded at 16:42 UTC on 2026-10-13, so it shows 0 days. Release recency says nothing about quality.SourceSourceSourceSourceSourceSourceSourceSourceSourceSourceSource

Durability is the criterion teams under-test

Thoughtworks places "Ignoring durability in agent workflows" in Caution in Radar Vol. 34 and advises teams to start with native durable execution support in their framework, reaching for standalone platforms as workflows become more critical [49].

“Ignoring durability in agent workflows is an anti-pattern we’ve seen across many teams, resulting in systems that work in development but fail in production.”

Thoughtworks, Technology Radar Vol. 34 (Caution), 15 April 2026Source

The documentation we reviewed shows a spectrum, not a switch. We call it the NKK Durability Ladder. It grades a setup by what survives when you kill the process mid-run.

NKK Durability Ladder
NKK framework
  1. Level 1: L1: Stateless loop

    The agent loop holds everything in memory. Exit the process and the run, its history and its partial work are gone.

    • No session store configured
    • A restart means starting over
  2. Level 2: L2: Local or in-memory session

    History is kept, but on one node or in RAM. A scale-down, redeploy or node move loses it. The defaults we checked sit here.

    • In-memory saver or local-disk transcripts
    • Works in development, fails after a container restart
  3. Level 3: L3: Shared persisted session

    Conversation or checkpoint state lives in a shared database, so any worker can pick up a thread.

    • Postgres or Cosmos-backed checkpointer, SessionStore adapter
    • Another instance resumes the same thread
  4. Level 4: L4: Resumable with approvals

    The run can pause for a human, survive the wait and resume from a known step, with replay semantics you have tested.

    • Checkpoint at each superstep, or persisted flow with human feedback
    • A paused run survives a deploy
  5. Level 5: L5: Externally orchestrated (alternative route to L4)

    A durable execution engine owns retries, timers and replay; the framework supplies the reasoning loop.

    • Temporal, DBOS, Prefect or Restate wrap the agent
    • Model calls retry without repeating side effects
Five levels of failure survival for agent frameworks, from stateless loops to externally orchestrated durable execution. The ladder grades resilience, not correctness: a durable agent can durably repeat a wrong action. L4 and L5 are alternative routes, not strict successors.

Here is how the documented options map to the ladder; the mapping is NKK's reading. L4 and L5 are alternative routes rather than strict successors. A framework-native checkpointer with a human pause can be stronger than a poorly wrapped external engine, and L5 is "higher" mainly for retries and side-effect control.

  • LangGraph: L2 with the in-memory saver; L3 with a Postgres-backed checkpointer; L4 with its human-in-the-loop pause [32][6].
  • Microsoft Agent Framework: L2 with in-memory or file storage; L3 with the Cosmos DB provider, which the docs recommend for production but which is a separate package installed with --pre [50]. We did not test an approval pause.
  • OpenAI Agents SDK: L2 with its SQLite default [34]; L5 only through an external engine. Temporal's integration runs the loop in a Workflow and model calls as retried Activities, with sandbox support pre-release and streaming experimental [51].
  • Claude Agent SDK: L2 by default; a SessionStore adapter mirrors transcripts to shared storage, which reaches L3 for transcripts only [19].
  • Google ADK and CrewAI: L2 by default (in-memory services; @persist to SQLite) [33][35]. We did not map their persistent options.
  • Pydantic AI: delegates durability to external engines (L5) and lists nine engines, the first five co-maintained with the vendor teams [26].

To apply the ladder, set the level each workflow needs before you pick a framework: a drafting assistant a user can rerun needs L2; a support agent whose conversations must survive a redeploy and be picked up by any worker needs L3; an approval chain that waits days for a manager needs L4; a workflow that calls payment or ticketing systems, where retries must not repeat side effects, needs L5. Then run a kill test: stop the process mid-run, redeploy a changed graph, and see what is lost.

Protocols and telemetry: the portable layer, still moving

The shared specifications are the reason a framework switch is survivable. They are also young. MCP's current revision, 2026-07-28, made requests stateless, removed protocol-level sessions and the Mcp-Session-Id header, moved experimental tasks into an extension, and deprecated Roots, Sampling and Logging [16]. Deprecated features normally stay at least twelve months before removal (ninety days under an expedited-removal exception) [1]. A2A 1.0.0 defines JSON-RPC, gRPC and HTTP+JSON bindings and an Agent Card that describes an agent's identity, skills and authentication needs [2]; v1.0.1 followed with bug fixes [12]. A May 2025 survey frames MCP as tool access and A2A as peer task delegation [52]; its protocol details predate both current versions.

Telemetry is less settled. The OpenTelemetry agent-span conventions, which define operation names such as create_agent, invoke_agent and invoke_workflow, carry Development status, not Stable [53]. Microsoft Agent Framework follows them and, when OTEL_SEMCONV_STABILITY_OPT_IN is unset, uses the latest experimental attribute names [54]. In its Python implementation, MCP trace propagation into params._meta applies only to MCP sessions the agent process opens itself, not to provider-hosted MCP tools [54]; it builds on the traceparent and tracestate headers defined by W3C Trace Context [3]. The OpenAI Agents SDK's tracing page lists processors for Langfuse, MLflow, Datadog and others but does not describe native OpenTelemetry export [55].

Portable does not mean trustworthy. The spec itself says tools "represent arbitrary code execution and must be treated with appropriate caution" and admits MCP cannot enforce its security principles at the protocol level [56]. A study accepted to DSN 2026 analysed 67,057 servers across six public registries and flagged 833 as vulnerable [57], and a preprint benchmark built on 45 live servers recorded a highest attack success rate of 72.8% among 20 models [58]. Thoughtworks cautions against making MCP the default integration layer, arguing a well-designed CLI can often give an agent what it needs with less protocol overhead. The entry says it is not a rejection of MCP, which adds value for structured tool contracts, OAuth boundaries and governed multi-tenant access [59].

The MCP ecosystem is large and weakly vetted
Key figures
  • 67,057

    MCP servers analysed across six public registries

  • 833

    flagged as vulnerable by the authors' MCPInspect tool, plus 18 with suspicious descriptions

  • 72.8%

    highest tool-poisoning attack success rate in the MCPTox benchmark (preprint, v2, 20 models, 45 servers)

Security evidence for the shared tool layer. These are security measurements of MCP servers and models, not performance benchmarks of any agent framework.

OWASP's Top 10 for Agentic Applications names Tool Misuse, Identity and Privilege Abuse and Agentic Supply Chain Vulnerabilities among its ten entries [60]. The practical rule: pin the MCP revision, A2A version and semantic-convention version you build against, and treat a spec revision as a migration.

Lock-in has layers: the NKK Exit-Cost Map

"Provider-neutral" is a claim about layers, not products. A framework can be open source and still tie your traces to one backend, your state to one database schema and your tools to one revision of a protocol. We split lock-in into six layers and ask, for each, what a standard interface would let you keep and what you would have to rewrite.

NKK Exit-Cost Map
NKK framework
  1. Authoring model

    Graph nodes, crews, handoffs or a plain typed loop. Your prompts, tools and tests are written against it. Rarely portable; budget a rewrite.

    Rewrite cost, unavoidable
  2. Runtime and hosting

    Managed deployment, subprocess hosting or your own containers. Check which features need a paid plan or a specific cloud.

    Plan and cloud
  3. Telemetry

    Where traces go by default and whether you can redirect them. OpenTelemetry and W3C Trace Context are the portable path.

    OTel, W3C
  4. State store

    Checkpoint and session formats are framework-specific. Own the database; treat serialised state as a versioned contract.

    Highest avoidable exit cost
  5. Tool interface

    MCP servers and A2A agents travel between frameworks. Pin the revision and vet every server.

    MCP, A2A
  6. Model

    Provider-specific features such as Responses-only fields are the usual trap. Test on a second provider early.

    Provider features
Six layers of agent-framework lock-in, from the code you write down to the model you call. Each layer names the portable standard where one exists and the typical trap where none does.

The evidence for each trap is specific. On non-Responses backends the OpenAI Agents SDK silently drops Responses-only fields unless strict validation is on, rejects features such as hosted tool search, and describes its Any-LLM and LiteLLM adapters as best-effort beta layers [61]. Its default tracing uploads to OpenAI's servers, so a second provider without an OpenAI key means another processor or disabling it [61]. LangGraph's library is usable without LangChain, but its managed cloud requires a Plus plan and its self-hosted control plane an Enterprise plan [62]. Microsoft warns that third-party systems and non-Azure Direct models fall under their own terms and that data-boundary responsibility is yours [5]. AWS says AgentCore will "Build with any open-source framework and any model", a vendor claim, and several AgentCore items are labelled preview [63]. Authoring is the biggest rewrite, but it is unavoidable. State is the biggest avoidable cost: we found no shared checkpoint specification, formats differ by framework, and the framework default is easy to leave in place.

Exit-cost self-assessment
NKK framework
0 of 6 answered
Model

Could you run your top three workflows on a second model provider this quarter?

Tools

How are your agent's tools exposed?

State

Where do checkpoints and sessions live?

Telemetry

Can you change the trace backend without code changes?

Runtime

Which features need a specific cloud or paid plan?

Authoring

How much code is written against framework-specific abstractions?

Answer all 6 dimensions to see your score and where to start.

Six questions, one per layer of the Exit-Cost Map. Choose the answer that matches today's reality; the lowest-scoring layer is your most expensive exit.

Where it breaks: the standards are unstable, so "portable" means portable to a versioned spec, and the map does not price commercial terms.

A selection flow you can run in an hour

The best-supported advice in our sources is restraint. Anthropic separates workflows, orchestrated "through predefined code paths", from agents that direct their own process, suggests starting with direct API calls, and notes that frameworks can obscure prompts and responses [64]. Microsoft's guide says "If you can write a function to handle the task, do that instead of using an AI agent." [5] Thoughtworks moved LangGraph out of Adopt, arguing a global shared-state graph is "not always the best approach" and that it is no longer "the default choice for building every agentic system" [65]. These point the same way: use the least machinery that meets your durability needs.

The NKK Framework Selection Flow turns that into seven gates. It ends in a family and a spike, not a product.

NKK Framework Selection Flow
NKK framework
  1. Step 1: 1. Do you need an agent?

    If a function or a single model call does the job, stop. Use plain code.

  2. Step 2: 2. Workflow or open loop?

    Predefined steps favour workflow engines; open-ended tasks justify an agent loop.

  3. Step 3: 3. Must runs outlive a process?

    Set the Durability Ladder level. L4 or L5 narrows the field to runtimes with checkpoints or an external engine.

  4. Step 4: 4. What is fixed: language and cloud?

    .NET, Python, TypeScript, Go or Java, and any mandatory cloud, remove candidates quickly.

  5. Step 5: 5. Which providers must stay swappable?

    If more than one, prefer neutral runtimes or lean libraries over a provider SDK.

  6. Step 6: 6. Which telemetry backend is mandatory?

    Require OpenTelemetry export or a processor for your backend before you start.

  7. Step 7: 7. Run a two-week spike

    Two candidates from different families, your own tasks, your own evals: restart mid-run, swap the model provider, swap the trace backend.

Seven gates from "do we need an agent?" to a time-boxed spike. Gates 1 to 3 reduce the problem; gates 4 to 6 filter candidates; gate 7 replaces opinion with evidence.

In our view, gates 1 to 3 narrow the shortlist more than gates 4 to 6, and gate 3 changes it most, because it is where framework defaults stop being enough. The flow ignores commercial terms and team skills, and orders questions rather than scoring products.

If your situation isStart your spike withWhy (NKK view)
Simple, bounded taskDirect API calls or your SDK's smallest loopLeast abstraction [64]
Long runs, approvals, replayAn orchestration runtime or an external durable engineThe defaults we checked stop at L2
One cloud already mandatedThat cloud's framework, plus the exit-cost scorecardAccept the anchor knowingly; score it first
Several providers must stay swappableA neutral runtime or lean libraryFewer provider-only features
TypeScript or .NET shopTypeScript: Mastra, ADK TypeScript or Vercel AI SDK; .NET: Microsoft Agent FrameworkLanguage narrows the field at gate 4 [10][20][27][31]

What the evidence does not show

  • No neutral benchmark. We found no reproducible cross-framework benchmark for latency, cost or accuracy, and we publish none. The 2025 preprint [7] calls performance optimisation a common shortcoming of all ten frameworks it studied but compares none. Its abstract also asserts that more than 80% of developers struggle to pick a framework; we found no method behind that figure, so we do not use it.
  • Developer-pain evidence is thin. A second preprint finds that retrieval and orchestration problems are less visible and more complex than installation and prompting, and tend to persist as maintenance burdens on GitHub [66]. It reflects problems people choose to post on Stack Overflow and GitHub, not a census of production failures. The first preprint [7] studied 11,910 discussions (its Section 3) that developers chose to post, blames AutoGen's maintenance burden on its 0.2-to-0.4 migration and LangChain's on breaking API changes, and picked ten frameworks by GitHub topic-tag frequency with data to July 2025, so it excludes the OpenAI Agents SDK, Google ADK and Microsoft Agent Framework [7][8].
  • Maturity signals conflict. Claude Agent SDK is tagged Alpha on the registry while Anthropic's docs present it for building production agents [43][18]. Version numbers and classifiers are a snapshot, not a quality rating.
  • Gaps in the documentation. We could not read LangGraph's durability modes (the section was empty), or CrewAI's observability and deployment story. Whether any framework supports MCP 2026-07-28 is unverified.
  • Vendor-authored sources. Anthropic, OpenAI, Google, Microsoft and LangChain describe their own products; we used them for what each says it does, not for comparisons.
  • A moving target. Radar Vol. 34 was the latest published volume when we checked; re-check for a newer one before relying on its placements.

What to do next

  1. Write a one-page requirements sheet: language, cloud, providers, telemetry backend, data residency and the Durability Ladder level for each workflow.
  2. Run the Selection Flow's first three gates before shortlisting any product.
  3. Pick two candidates from different families and build one thin vertical slice with durable state, tracing and one vetted MCP server.
  4. Run the kill tests: restart the process mid-run, redeploy a changed workflow, swap the model provider, swap the trace backend. Record what breaks and how long the fix takes.
  5. Score the Exit-Cost Map and write down the most expensive layer. Own the state database and export traces through OpenTelemetry where you can.
  6. Pin the framework, MCP revision, A2A version and semantic-convention version, and subscribe to release notes. Plan migrations as projects.
  7. Re-assess every six months. Consolidation in this field has been fast enough that last year's default can be this year's maintenance-mode project.

Conclusion

No framework wins every criterion, and the sources do not support a ranking. What they support is a discipline: use the least machinery that meets your durability needs, keep tools on MCP and traces on OpenTelemetry, and treat state as an asset you own rather than a feature you rent. Choose the one whose failure behaviour and exit cost you have tested yourself.

References

Every figure and regulatory statement in this piece traces to a numbered source below. Links open the original publisher in a new tab.

  1. Reference 1: Model Context Protocol: Versioning(opens in a new tab)
    Model Context Protocol projectPublished n.d.Accessed 13 Oct 2026Tier 1: Primary source
  2. Reference 2: Agent2Agent (A2A) Protocol Specification(opens in a new tab)
    A2A ProjectPublished n.d.Accessed 13 Oct 2026Tier 1: Primary source
  3. Reference 3: Trace Context (W3C Recommendation)(opens in a new tab)
    W3CPublished 23 Nov 2021Accessed 13 Oct 2026Tier 1: Primary source
  4. Reference 4: AutoGen README (maintenance-mode notice)(opens in a new tab)
    MicrosoftPublished n.d.Accessed 13 Oct 2026Tier 2: Research / official docs
  5. Reference 5: Microsoft Agent Framework Overview(opens in a new tab)
    Microsoft LearnPublished 29 Jul 2026Accessed 13 Oct 2026Tier 2: Research / official docs
  6. Reference 6: LangChain and LangGraph Agent Frameworks Reach v1.0 Milestones(opens in a new tab)
    LangChainPublished 22 Oct 2025Accessed 13 Oct 2026Tier 2: Research / official docs
  7. Reference 7: An Empirical Study of Agent Developer Practices in AI Agent Frameworks(opens in a new tab)
    arXiv preprintPublished 1 Dec 2025Accessed 13 Oct 2026Tier 2: Research / official docs
  8. Reference 8: Semantic Kernel and Microsoft Agent Framework(opens in a new tab)
    Microsoft Agent Framework DevBlogPublished 7 Oct 2025Accessed 13 Oct 2026Tier 2: Research / official docs
  9. Reference 9: semantic-kernel (PyPI project page)(opens in a new tab)
    Python Package IndexPublished 6 Oct 2026Accessed 13 Oct 2026Tier 2: Research / official docs
  10. Reference 10: Microsoft Agent Framework Version 1.0(opens in a new tab)
    Microsoft Agent Framework DevBlogPublished 3 Apr 2026Accessed 13 Oct 2026Tier 2: Research / official docs
  11. Reference 12: A2A Protocol releases (v1.0.0 and v1.0.1)(opens in a new tab)
    A2A Project (GitHub)Published 12 Mar 2026Accessed 13 Oct 2026Tier 1: Primary source
  12. Reference 14: AI Agent Standards Initiative(opens in a new tab)
    NISTPublished n.d.Accessed 13 Oct 2026Tier 1: Primary source
  13. Reference 15: Technology Radar Vol. 34 (PDF)(opens in a new tab)
    ThoughtworksPublished Apr 2026Accessed 13 Oct 2026Tier 2: Research / official docs
  14. Reference 16: Model Context Protocol (2026-07-28): Key Changes(opens in a new tab)
    Model Context Protocol projectPublished 28 Jul 2026Accessed 13 Oct 2026Tier 1: Primary source
  15. Reference 17: OpenAI Agents SDK (Python) documentation home(opens in a new tab)
    OpenAIPublished n.d.Accessed 13 Oct 2026Tier 2: Research / official docs
  16. Reference 18: Agent SDK overview(opens in a new tab)
    AnthropicPublished n.d.Accessed 13 Oct 2026Tier 2: Research / official docs
  17. Reference 19: Hosting the Agent SDK(opens in a new tab)
    AnthropicPublished n.d.Accessed 13 Oct 2026Tier 2: Research / official docs
  18. Reference 20: Agent Development Kit (ADK) overview(opens in a new tab)
    Google Cloud DocumentationPublished 13 Oct 2026Accessed 13 Oct 2026Tier 2: Research / official docs
  19. Reference 21: Strands Agents (documentation home)(opens in a new tab)
    Strands Agents projectPublished n.d.Accessed 13 Oct 2026Tier 2: Research / official docs
  20. Reference 22: Agent Development Kit (ADK) (Technology Radar Vol. 34, Trial)(opens in a new tab)
    ThoughtworksPublished 15 Apr 2026Accessed 13 Oct 2026Tier 2: Research / official docs
  21. Reference 23: LangGraph overview(opens in a new tab)
    LangChain DocsPublished n.d.Accessed 13 Oct 2026Tier 2: Research / official docs
  22. Reference 24: LlamaIndex Workflows (LlamaAgents documentation)(opens in a new tab)
    LlamaIndexPublished n.d.Accessed 13 Oct 2026Tier 2: Research / official docs
  23. Reference 25: CrewAI: Introduction(opens in a new tab)
    CrewAI documentationPublished n.d.Accessed 13 Oct 2026Tier 2: Research / official docs
  24. Reference 26: Pydantic AI overview(opens in a new tab)
    PydanticPublished n.d.Accessed 13 Oct 2026Tier 2: Research / official docs
  25. Reference 27: Mastra (Technology Radar Vol. 34, Assess)(opens in a new tab)
    ThoughtworksPublished 15 Apr 2026Accessed 13 Oct 2026Tier 2: Research / official docs
  26. Reference 28: Pydantic AI (Technology Radar, Trial; not on the current edition)(opens in a new tab)
    ThoughtworksPublished 5 Nov 2025Accessed 13 Oct 2026Tier 2: Research / official docs
  27. Reference 29: Haystack: Agent component(opens in a new tab)
    deepsetPublished n.d.Accessed 13 Oct 2026Tier 2: Research / official docs
  28. Reference 30: smolagents documentation(opens in a new tab)
    Hugging FacePublished n.d.Accessed 13 Oct 2026Tier 2: Research / official docs
  29. Reference 31: AI SDK by Vercel: Introduction(opens in a new tab)
    VercelPublished n.d.Accessed 13 Oct 2026Tier 2: Research / official docs
  30. Reference 32: LangGraph persistence (checkpointers)(opens in a new tab)
    LangChain DocsPublished n.d.Accessed 13 Oct 2026Tier 2: Research / official docs
  31. Reference 33: ADK: Sessions, State and Memory(opens in a new tab)
    GooglePublished n.d.Accessed 13 Oct 2026Tier 2: Research / official docs
  32. Reference 34: OpenAI Agents SDK: Sessions(opens in a new tab)
    OpenAIPublished n.d.Accessed 13 Oct 2026Tier 2: Research / official docs
  33. Reference 35: CrewAI: Flows(opens in a new tab)
    CrewAI documentationPublished n.d.Accessed 13 Oct 2026Tier 2: Research / official docs
  34. Reference 36: ADK: MCP tools(opens in a new tab)
    GooglePublished n.d.Accessed 13 Oct 2026Tier 2: Research / official docs
  35. Reference 37: CrewAI: MCP overview(opens in a new tab)
    CrewAI documentationPublished n.d.Accessed 13 Oct 2026Tier 2: Research / official docs
  36. Reference 38: LangChain: Model Context Protocol (MCP)(opens in a new tab)
    LangChain DocsPublished n.d.Accessed 13 Oct 2026Tier 2: Research / official docs
  37. Reference 39: langgraph (PyPI)(opens in a new tab)
    Python Package IndexPublished 12 Oct 2026Accessed 13 Oct 2026Tier 2: Research / official docs
  38. Reference 40: strands-agents (PyPI)(opens in a new tab)
    Python Package IndexPublished 12 Oct 2026Accessed 13 Oct 2026Tier 2: Research / official docs
  39. Reference 41: crewai (PyPI)(opens in a new tab)
    Python Package IndexPublished 9 Oct 2026Accessed 13 Oct 2026Tier 2: Research / official docs
  40. Reference 42: agent-framework (PyPI project page)(opens in a new tab)
    Python Package IndexPublished 8 Oct 2026Accessed 13 Oct 2026Tier 2: Research / official docs
  41. Reference 43: claude-agent-sdk (PyPI)(opens in a new tab)
    Python Package IndexPublished 8 Oct 2026Accessed 13 Oct 2026Tier 2: Research / official docs
  42. Reference 44: openai-agents (PyPI)(opens in a new tab)
    Python Package IndexPublished 2 Oct 2026Accessed 13 Oct 2026Tier 2: Research / official docs
  43. Reference 45: google-adk (PyPI)(opens in a new tab)
    Python Package IndexPublished 13 Oct 2026Accessed 13 Oct 2026Tier 2: Research / official docs
  44. Reference 46: llama-index (PyPI)(opens in a new tab)
    Python Package IndexPublished 21 Sept 2026Accessed 13 Oct 2026Tier 2: Research / official docs
  45. Reference 47: smolagents (PyPI)(opens in a new tab)
    Python Package IndexPublished 29 May 2026Accessed 13 Oct 2026Tier 2: Research / official docs
  46. Reference 48: autogen-agentchat (PyPI)(opens in a new tab)
    Python Package IndexPublished 30 Sept 2025Accessed 13 Oct 2026Tier 2: Research / official docs
  47. Reference 49: Ignoring durability in agent workflows (Technology Radar Vol. 34, Caution)(opens in a new tab)
    ThoughtworksPublished 15 Apr 2026Accessed 13 Oct 2026Tier 2: Research / official docs
  48. Reference 50: Microsoft Agent Framework Workflows - Checkpoints(opens in a new tab)
    Microsoft LearnPublished 16 Sept 2026Accessed 13 Oct 2026Tier 2: Research / official docs
  49. Reference 51: OpenAI Agents SDK integration (Temporal Python)(opens in a new tab)
    Temporal Technologies documentationPublished n.d.Accessed 13 Oct 2026Tier 2: Research / official docs
  50. Reference 54: Microsoft Agent Framework: Observability(opens in a new tab)
    Microsoft LearnPublished 19 Sept 2026Accessed 13 Oct 2026Tier 2: Research / official docs
  51. Reference 55: OpenAI Agents SDK: Tracing(opens in a new tab)
    OpenAIPublished n.d.Accessed 13 Oct 2026Tier 2: Research / official docs
  52. Reference 56: Model Context Protocol Specification (revision 2026-07-28): Overview(opens in a new tab)
    Model Context Protocol projectPublished 28 Jul 2026Accessed 13 Oct 2026Tier 1: Primary source
  53. Reference 57: A First Look at the Security Issues in the Model Context Protocol Ecosystem(opens in a new tab)
    arXiv (DSN 2026 accepted paper)Published 18 Oct 2025Accessed 13 Oct 2026Tier 1: Primary source
  54. Reference 58: MCPTox: A Benchmark for Tool Poisoning Attack on Real-World MCP Servers(opens in a new tab)
    arXiv preprintPublished 19 Aug 2025Accessed 13 Oct 2026Tier 2: Research / official docs
  55. Reference 59: MCP by default (Technology Radar Vol. 34, Caution)(opens in a new tab)
    ThoughtworksPublished 15 Apr 2026Accessed 13 Oct 2026Tier 2: Research / official docs
  56. Reference 60: OWASP Top 10 for Agentic Applications - The Benchmark for Agentic Security in the Age of Autonomous AI(opens in a new tab)
    OWASP Gen AI Security ProjectPublished 9 Dec 2025Accessed 13 Oct 2026Tier 1: Primary source
  57. Reference 61: OpenAI Agents SDK: Models (non-OpenAI providers)(opens in a new tab)
    OpenAIPublished n.d.Accessed 13 Oct 2026Tier 2: Research / official docs
  58. Reference 62: LangSmith Deployments (hosting options for Agent Server)(opens in a new tab)
    LangChain DocsPublished n.d.Accessed 13 Oct 2026Tier 2: Research / official docs
  59. Reference 63: Amazon Bedrock AgentCore FAQs(opens in a new tab)
    Amazon Web ServicesPublished n.d.Accessed 13 Oct 2026Tier 2: Research / official docs
  60. Reference 64: Building effective agents(opens in a new tab)
    Anthropic EngineeringPublished 19 Dec 2024Accessed 13 Oct 2026Tier 2: Research / official docs
  61. Reference 65: LangGraph (Technology Radar Vol. 34, Trial)(opens in a new tab)
    ThoughtworksPublished 15 Apr 2026Accessed 13 Oct 2026Tier 2: Research / official docs
WhitepaperEnterprise Agentic AI Reference Architecture: Nine Layers and Minimum Viable Agency
Whitepaper PDFAgentic AI

Enterprise Agentic AI Reference Architecture: Nine Layers and Minimum Viable Agency

A vendor-neutral reference architecture for enterprise agents: NKK's nine-layer stack, a pattern-selection matrix, a blast-radius gate, and the evidence on reliability, state, control and cost.

34 min read
Blog
BlogAgentic AI

Evaluating and Observing AI Agents in Production

A benchmark pass, a judge score and a green dashboard are different instruments with documented gaps. Here is what the evidence shows and a layered NKK model for evaluating agents in production.

14 min read