Back to Blog
AgentsDeveloper ToolsCloudflareWeb InfrastructureAI

Cloudflare Shipped the Agent Runtime Most Devs Missed

Cloudflare's Agents Week shipped durable execution, sub-agents with isolated SQLite, and crash recovery. The agent runtime the web needed is already here.

·June 22, 2026·8 min read

The model wars are exhausting. Everyone's benchmarking reasoning, arguing over context windows, debating whether GPT-5.5 or Fable 5 is worth the cost jump. Meanwhile, Cloudflare shipped the agent runtime most developers haven't looked at.

Agents Week 2026 wrapped earlier this month. No keynote. No product launch event. A week of engineering blog posts dropping piece after piece of the execution layer for the agentic web.

The flagship release is Project Think. It's the most important infrastructure primitive I've seen all year, and it's been almost completely drowned out by model announcements.

That's a problem. Because the model is not what's blocking most developers from shipping agents that actually work in production.

What Cloudflare Actually Built

Project Think is a preview of the next generation Agents SDK. Not "functions with AI" — an actual execution environment with what production agents actually need.

Three new primitives shipped:

Durable execution with fibers. If an agent crashes mid-task — network failure, timeout, memory pressure — it resumes from the last checkpoint. Crash recovery and automatic checkpointing are built in. No custom retry logic. No lost state. The agent picks up at exactly the point it stopped.

Sub-agents with isolated SQLite. Each child agent gets its own database and a typed RPC interface. Spawn thousands. They don't share state. When one finishes, you clean it up. Scale horizontally without coordination overhead.

Persistent sessions. Agents hibernate when idle and wake on demand. Run millions of them — one per user, one per session, one per job — and the inactive ones cost nothing. When a user returns, their agent picks up exactly where it stopped.

They also shipped Durable Object Facets: a way to give each dynamically-generated app, each tenant, each session its own isolated SQLite without pre-provisioning anything. The storage problem for per-user agents is solved.

The full Agents SDK ships with built-in support for real-time communication, AI model calls, scheduling, and MCP tool integration. Not as third-party add-ons. As first-class primitives in the runtime.

This isn't a preview of future infrastructure. It's what Cloudflare has been assembling in pieces since Durable Objects launched. Agents Week is the moment it became coherent enough to build real production agents on.

The Reality of Running Agents Today

Most "agent" deployments right now are stateless function chains dressed up with a framework. A request comes in, tools run, output goes back. If something fails, you restart. The agent has no memory between calls except what you manually serialize to an external database.

That's not an agent. That's a procedural API with retries.

I've shipped agent-adjacent pipelines on n8n, on Vercel Functions, on Lambda. Every single one has a state management story, and that story is always the same: serialize everything to a database, write resume logic, handle partial failures manually, hope the third-party webhook fires within the timeout window.

The state management is the accidental complexity. It's not the hard part of the problem — agents are the hard part — but it's where most of the engineering hours go. Before you write a single line of prompt engineering, you're designing a distributed systems problem.

The two questions that matter when shipping agents in production are: what happens when this fails halfway through, and what does it cost when the agent is sitting idle? Most infrastructure forces you to answer both badly. You either accept full restarts on failure or you spend three sprints building a custom persistence layer that still breaks under load.

Why Durable Execution Changes the Calculation

In production, real agentic work takes time. An agent might read a repository, call an external API, wait on a webhook, process the response, and continue — across hours. Stateless functions can't hold that thread. You end up bolting together queues, cron jobs, and state machines just to keep the agent's place in the workflow.

Durable execution with crash recovery means a 3-hour task with 4 external calls and 2 retries is just a long-running function. The fiber checkpoints automatically. If the underlying VM gets recycled, the agent resumes. Your code doesn't change. The infrastructure handles it.

The hibernation economics are equally important. If you need one agent per user and you have 50,000 users, you can't run 50,000 always-on containers. Hibernation is what makes the unit economics work. Agents sleep until there's work. They wake in milliseconds. At any given time, the vast majority are sleeping, and sleeping agents cost nothing.

Cloudflare Workers already had the cold start advantage — sub-millisecond, globally distributed. Project Think builds the agent lifecycle on top of that foundation. That's a real stack, not a wrapper over a Lambda function with a fancy name.

This is what running agents at scale actually looks like. Not a chat interface with streaming output. A durable computation that wakes when it has work and goes back to sleep when it doesn't.

The Uncomfortable Part

Here's what I actually think is happening: developers are so focused on which model scores best on benchmarks that they've completely skipped the harder question.

The harder question is what it costs to run that model in a way that survives real workloads.

You need crash recovery because LLM calls are slow and networks are flaky and your agents will fail mid-task. You need sub-agents because a single monolithic agent context that grows indefinitely is a scaling trap — isolated execution with typed RPC is how you compose workflows that hold up under actual load. You need hibernation because the economics of always-on agents collapse the moment you try to run one per user at scale.

The model is not the constraint. The runtime is the constraint. Cloudflare just shipped a runtime that addresses all three.

Every team that currently has an engineer whose job is "managing the state machine" for agent pipelines is carrying technical debt that this stack makes obsolete. That's worth paying attention to.

What I'd tell any developer building agents right now: stop optimizing your system prompt and start asking where your agent's state lives when it crashes at 2am. Because it will crash. The infrastructure answer is what separates a demo from a product.

If you've been thinking about MCP as the protocol layer for tool-calling agents, here's the good news: the Cloudflare Agents SDK has MCP support built in at the runtime level. The protocol and the execution layer are now bundled. You don't build that plumbing yourself.

What Building on This Stack Looks Like

The Agents SDK is open source. Project Think is in preview and you can start building on it today. Here's a simplified look at a durable agent on this stack:

import { Agent } from 'agents';

export class ResearchAgent extends Agent {
  async run(topic: string) {
    // State persists across hibernation and crash recovery
    await this.setState({ topic, phase: 'searching' });

    const sources = await this.fetchSources(topic);
    await this.setState({ phase: 'synthesizing', sources });

    // Sub-agent gets its own isolated SQLite and typed RPC
    const writer = await this.spawn('WriterAgent', { sources });
    return writer.run();
  }
}

Crash during fetchSources? The fiber resumes from the last checkpoint. WriterAgent has its own SQLite — it doesn't touch ResearchAgent's state. When both are idle, they hibernate. When the endpoint is called again, they wake.

This is what agents look like when they're actual software, not a sequence of API calls hoping nothing breaks between steps.

Compare it with the current alternative: a Vercel Function calls an LLM, saves state to Postgres, enqueues the next step, a second function reads that state and continues. Five services for what should be one function. The Agent SDK version is the one function.

The Shift Nobody Is Narrating

Cloudflare's Agents Week got coverage. Mostly lists of the individual releases. What didn't get covered is the actual story: the execution layer for the agentic web is now a solved problem.

You don't need to design your own crash recovery. You don't need to figure out how to run 50,000 user-specific agents without the container bill. You don't need to hand-roll the state machine that keeps an agent's place across a long-running workflow.

Cloudflare solved those problems at the infrastructure level. Not with a framework you layer on top of broken primitives. With primitives that were built for this use case from the ground up.

The agents that work well in production — including the patterns I wrote about in agents inside the firewall — share one characteristic: they treat the execution environment as seriously as the model. The model is one variable. The runtime is the foundation.

Project Think is a serious runtime. Stop prototyping on stateless functions and start building.