13 agent-building SDKs and platforms evaluated against three deployment targets: Cloudflare edge (Workers / Durable Objects), Google Cloud (Agent Engine / Cloud Run), and self-hosted Docker on a QNAP NAS (x86_64, 8 GB). Every load-bearing claim went through 3-vote adversarial verification against primary sources.
No single SDK spans all three targets. The framework choice is target-driven — pick the deployment story first, then the SDK.
The only framework with native durable state on workerd: durable identity, per-agent SQLite (10 GB/DO), this.schedule(), WebSocket hibernation, and first-class MCP both directions (McpAgent, addMcpServer()). Verified 3-0 on primary docs.
It's a one-way door: no self-host or Docker path exists — workerd's open-source Durable Object storage is in-memory only. MIT code, proprietary runtime.
workers-ai-provider); pair with DO / Cloudflare Workflows for durability. Every Node-first SDK inherits nodejs_compat polyfill risk.GCP decouples the two: managed Agent Engine (rebranded "Agent Runtime", May 2026) accepts ADK, LangChain, LangGraph, AG2, LlamaIndex, or custom Python agents and ships managed Sessions + Memory Bank (GA Dec 2025). Cloud Run hosts any containerized framework + streamable-HTTP MCP servers, but all state must be externalized.
ADK is the only SDK with first-class support on both paths (adk deploy cloud_run / Agent Engine templates).
Pydantic AI + DBOS gives durable execution fully in-process against a SQLite file — zero extra containers, MIT, ~300 MB image. Mastra bundles to a single self-contained Node server (mastra build) with suspend/resume workflows on LibSQL — also one container.
Google ADK is the only SDK with a documented fully-offline Docker/Podman path (LiteLLM/Ollama) — pick it if air-gap matters or you also deploy to GCP.
Ratings reflect verified, documented support as of 2026-07-06 — not vendor marketing. Hover rows; scroll horizontally on mobile.
| SDK / platform | Lang | License | Durable state | MCP | CF edge (workerd) | Docker self-host | GCP |
|---|---|---|---|---|---|---|---|
| Cloudflare Agents SDKCloudflare | TS | MIT code · proprietary runtime | Per-agent SQLite, schedules, + CF Workflows | client + server | ● native | ○ none | ○ n/a |
| Vercel AI SDK + Workflow DevKitVercel | TS | Apache-2.0 | "use workflow" steps · Postgres World (self-host) | client (stable v6+) | ● core native | ● first-class | Cloud Run |
| MastraKepler Software · YC W25 | TS | Apache-2.0 (+ paid ee/) | suspend/resume snapshots · 12 storage backends | client + server | ◐ deployer, bundle friction | ● first-class | Cloud Run |
| OpenAI Agents SDKOpenAI | TS · Py | MIT | Sessions (SQLite/Redis); no durable exec | client | ◐ "limited support" | ● works (Node 22+) | Cloud Run |
| LangGraphLangChain Inc. | Py · TS | MIT core · ELv2 server | Superstep checkpointers (Postgres/SQLite) | client · server via Platform | ◐ Postgres via Hyperdrive | ◐ OSS free · server licensed | ● Agent Engine ✓ |
| Google ADKGoogle | Py | Apache-2.0 | Sessions (swap InMemory → SQLite/Redis) · Memory Bank on GCP | client | ○ no | ● first-class, offline OK | ● both paths ✓✓ |
| AWS Strands AgentsAWS | Py · TS | Apache-2.0 | Session persistence, not durable exec (exp. checkpoint module) | client (A2A for serving) | ○ unsupported | ● first-class, off-AWS OK | Cloud Run (custom) |
| Bedrock AgentCoreAWS · managed platform | any (HTTP contract) | Apache SDK · proprietary platform | Managed Memory service ($/event) · 8h microVM sessions | deep: hosts + client + Gateway | ○ no | ◐ dev loop only | ○ AWS-only |
| Microsoft Agent FrameworkMicrosoft · AutoGen+SK successor | .NET · Py | MIT | Superstep checkpoints, manual resume; auto-recovery = Azure DTS | client + server (GA) | ○ no JS port | ● works | Cloud Run (custom) |
| Pydantic AIPydantic (company) | Py | MIT | Temporal · DBOS (in-proc SQLite/PG) · Prefect · Restate | client + server + sampling | ◐ unproven (Pyodide) | ● first-class | Cloud Run · AE custom |
| Claude Agent SDKAnthropic | Py · TS | MIT wrapper · proprietary runtime | JSONL transcripts + SessionStore mirror (S3/Redis/PG) | client + in-process servers | ○ subprocess model | ● first-class (1 GiB/agent) | Cloud Run + Vertex billing |
| FlowiseFlowiseAI · low-code | TS (Node) | Apache-2.0 (+ commercial ee) | SQLite/PG · Agentflow V2 HITL checkpoints survive restart | client only | ○ no | ● first-class | Cloud Run |
| LangflowDataStax / IBM · low-code | Py | MIT | SQLite/PG chat sessions; no workflow checkpoint/resume | client + auto MCP server | ○ no | ● first-class (4 GB+ RAM) | Cloud Run |
Each profile's load-bearing claims were independently attacked by 3 verifier agents. 3-0 verified = unanimous confirmation against primary sources; corrected = the initial claim needed fixing (see corrections).
Agents as Durable Objects: durable identity, per-agent SQLite DB, this.schedule() (cron/delay persisted), WebSocket hibernation, React hooks. MCP is first-class in both directions — consume via addMcpServer(), serve via McpAgent with OAuth. 3-0 verified
ai@7 (GA 2026-06-25): provider-agnostic core with ToolLoopAgent + stopWhen loop control, stable createMCPClient, @ai-sdk/otel. Durability lives in the separate open-source Workflow DevKit: "use workflow" compiles functions into durable resumable steps. 3-0 verified
@fantasticfour/world-cloudflare runs on DO+SQLite correctedprocess.env-first ergonomics assume Vercel-like runtimes1.0 GA 2026-01-20; 25.9k★, $35M raised, used by Replit Agent 3 / PayPal. Agents + typed graph workflows (.then/.branch/.parallel, Zod) with suspend()/resume() snapshots persisting across restarts; MCP client and server. 3-0 verified
mastra build → self-contained Hono Node server (port 4111); LibSQL file storage = full durable stack in one container 3-0 verifiedmastra build can OOM at 4 GB), ship the artifact; runtime is a few hundred MB RSSHandoffs/guardrails-centric agent loop. Official server environments: Node 22+, Deno 2.35+, Bun 1.2.5+. Cloudflare Workers is explicitly "Limited support": requires nodejs_compat, traces must be manually flushed per-request, and traces may be inaccurate due to Workers' partial AsyncLocalStorage. 3-0 verified
Checkpointed StateGraph supersteps; resume-after-crash, time-travel, HITL per thread_id. 1.0 GA Oct 2025, 36.6k★. The licensing split is the story: core + Postgres/SQLite checkpointers are MIT with no key and no phone-home; the Platform server (langgraph-api) is Elastic-2.0 and production self-host needs a LangSmith key (free tier metered, usage reported to beacon.langchain.com) or Enterprise license. 2-1 verified
The only candidate with verified first-class coverage of Agent Engine, Cloud Run (adk deploy cloud_run), and fully-offline containers: "run it locally in Docker or Podman… no connection to Google Cloud", with local models via LiteLLM/Ollama. 3-0 verified ×3
InMemorySessionService for SQLite/Redis in production; managed Sessions + Memory Bank when on Agent EngineModel-driven agent loop with hooks, interrupts, multi-agent Graph/Swarm, A2A. GA, weekly releases (Py 1.45.0 / TS 1.7.0), powers Amazon Q Developer. Off-AWS Docker is officially supported: dedicated deploy guide, 15+ providers incl. Ollama/LiteLLM/llama.cpp, file-based sessions. 3-0 verified
Managed primitives — Runtime (8h microVM sessions), Memory, Gateway, Identity, Browser, Code Interpreter — consumed from any framework (Strands, LangGraph, CrewAI, ADK…). MCP support is unusually deep: hosts stateful MCP servers, and Gateway unifies Lambda/OpenAPI/MCP into one MCP endpoint with semantic tool search. 3-0 verified
AutoGen + Semantic Kernel successor, 1.0 GA Apr 2026. Pregel-style typed workflows with superstep checkpointing and HITL; MCP GA both directions (agent.as_mcp_server()). No JS/TS port exists → workerd is definitionally out. 3-0 verified
Typed agents with validated structured outputs; v2 (June 2026) "capabilities" redesign. The durable-execution story is the field's most portable: Temporal, DBOS, Prefect, Restate — all shipped as official extras. DBOS checkpoints in-process to SQLite/Postgres: durable agents with zero external services. 3-0 verified
Claude Code as a library: query() spawns a supervised claude CLI subprocess owning the full harness — built-in tools, hooks, subagents, skills, CLAUDE.md memory. Hosting docs ship Dockerfiles/K8s manifests; sizing 1 GiB RAM + 1 CPU + 5 GiB disk per concurrent agent. 3-0 verified
SessionStore mirror to S3/Redis/Postgres (best-effort; local disk authoritative) — transcript durability, not step-level durable executionThe low-code pair (the "flue" candidates). Both: official amd64+arm64 images, SQLite zero-config default, Postgres for production. Flowise (54k★, Node, lighter idle) adds Agentflow V2 with HITL checkpoints that survive restarts; Langflow (151k★, Python, IBM-owned via DataStax) auto-exposes every flow as an MCP server. 3-0 verified
Verified 3-0 against Cloudflare's docs and engineering blog — this is the mechanism that decides every "◐" in the edge column.
Node.js API support on Workers is opt-in (nodejs_compat flag + compatibility date ≥ 2024-09-23). Any Node API not natively implemented in workerd gets a build-time unenv polyfill — and calling an unimplemented mocked method either silently no-ops or throws:
✘ [unenv] https.request is not implemented yet!
Cloudflare has been moving fs/net/http-client to native implementations since Sept 2025, shrinking the polyfilled set — but unsupported calls still throw at runtime, in production, on the code path you didn't test.
ctx.waitUntil(forceFlush())), inaccurate traces from partial AsyncLocalStorage.pg, node-redis) don't work — LangGraph's Workers path needs Hyperdrive in front of Postgres.Concrete verified stacks per target.
# Agents SDK: durable agent + MCP server
npm create cloudflare@latest -- --template \
cloudflare/agents-starter
# state: per-agent SQLite (built-in)
# long jobs: pair with Cloudflare Workflows
# serve MCP: McpAgent + OAuth provider
Alternative: Vercel AI SDK core + workers-ai-provider, durability via Durable Objects or the community @fantasticfour/world-cloudflare World (paid plan for DOs).
# managed (Python): ADK → Agent Runtime
adk deploy agent_engine --project=$P ./agent
# container (any lang): ADK → Cloud Run
adk deploy cloud_run --project=$P ./agent
# state on Cloud Run: externalize —
# Memorystore / Firestore / Memory Bank API
Managed Sessions + Memory Bank (GA Dec 2025) are platform services billed at $0.085/vCPU-h + $0.009/GiB-h — consumable from any supported framework. MCP servers: streamable-HTTP only on Cloud Run, IAM-gated.
# Python: durable with zero extra services
pip install "pydantic-ai[dbos]"
# DBOS checkpoints → SQLite file on volume
# TS: one-container Mastra server
npx mastra build # on dev machine (RAM!)
docker run -p 4111:4111 -v /share/agents:/data app
# LibSQL file storage → suspend/resume survives restart
8 GB / N5105 budget: agent loops idle at tens-to-hundreds of MB — the NAS orchestrates, inference stays on remote APIs (local Ollama on this CPU = tiny models only). Air-gap requirement → Google ADK offline path.
Flowise and Langflow both execute arbitrary code by design (custom JS/Python nodes) and both have 2025–26 critical-RCE history (Langflow CVE-2025-3248 was actively exploited per CISA KEV; more criticals followed into 2026 for both).
9 of 52 claims died or changed under 3-vote adversarial review. These are the errors you'd have shipped if you trusted the first pass — several flip a real decision.
@fantasticfour/world-cloudflare (DO + SQLite + Queues + KV) — is listed in the official worlds catalog and runs natively on workerd, no Containers needed. Still no official Cloudflare World.pydantic-ai-slim) now install via pywrangler. Unproven and unsupported ≠ impossible; durable-exec extras and stdio MCP genuinely can't run there.Two dynamic multi-agent workflow passes, 141 agents total (~5.6M tokens), run 2026-07-06.
Question decomposed into 5 search angles (landscape, workerd compat, GCP path, NAS practitioner, durability/lock-in skeptic); 5 parallel searchers → 23 sources fetched → 113 falsifiable claims extracted.
Top 25 claims each attacked by 3 independent verifier agents instructed to refute against primary sources: 21 confirmed, 4 killed. Coverage gap identified: 9 SDKs had zero surviving claims.
One profiler per missing SDK built full matrix cells from primary docs (repos, LICENSE files, release pages) and nominated its 3 most load-bearing claims.
27 more adversarial verifiers (3 per SDK, each voting on all 3 claims): 22 confirmed, 5 refuted-and-corrected. Corrections were folded back into the profiles above.
Caveats: findings rest on vendor primary documentation — strong for capability claims, but marketing figures are vendor-claimed. Two areas are highly time-sensitive: Google's Agent Engine → "Agent Runtime / Gemini Enterprise Agent Platform" rename (May 2026) is actively redirecting doc URLs, and Cloudflare keeps migrating unenv polyfills to native workerd implementations, shrinking the edge failure surface release by release.