Open Think Start Free →

This document maps Cloudflare's Project Think primitives to Open Think's current implementation, and lays out what's next.

§Mapping

Think conceptCloudflare primitiveOpen Think deliveryStatus
Per-agent identity + stateDurable ObjectsAgentSessionDO extends DurableObject<Env>, keyed by session nameshipped
Transactional agent storageDO SQLitectx.storage.sql with messages + fibers tables; declared via new_sqlite_classes migrationshipped
Session API (tree, fork, compact, search)/sessions/{name}/* HTTP surfaceshipped
Durable execution / fibersWorkflow-style checkpointingPOST /sessions/{name}/fibers upserts by idempotency key; first writer wins, replays return cached resultshipped (caller-driven); self-executing variant roadmap
Facets (sub-agents)DO sub-namespacesfork copies a session path; isolated namespace sub-ids roadmappartial
Model inference (Cloudflare)Workers AIworkers-ai plugin with AI Gateway routingshipped
Model inference (external)anthropic, openai-compatible provider pluginsshipped
Tool serversMCPmcp-client plugin (outbound, streamable-HTTP + SSE fallback) + cloudflare-api-mcp (inbound)shipped
Tier-0 filesystemR2 / workspaceWORKSPACE R2 binding documented in wrangler.tomlscaffolded
Tier-1 code execDynamic Workerssandbox plugin (tier-4 today); compile-deploy-on-the-fly roadmappartial
Tier-2 MCP tool callsMCPmcp-client pluginshipped
Tier-3 browserBrowser Renderingbrowser pluginshipped
Tier-4 full OSCloudflare Sandboxsandbox plugin (service-binding)shipped
Self-authored extensionsruntime tool authoringplugin SDK + npm run plugin:new scaffoldshipped (human-authored); LLM-authored + Dynamic-Worker deploy is roadmap
Typed clientsrc/sdk/client.ts (OpenThinkClient, SessionHandle)shipped
Meta-agent / control planeHelm (POST /conductor/message) + admin plugin + /app UIshipped
Full-text searchDO SQLite + FTS5messages_fts virtual table, trigger-syncedshipped

§Relationship to the Cloudflare Agents SDK

Cloudflare ships an official agents npm package with Agent / AIChatAgent base classes, routeAgentRequest, @callable() RPC over WebSockets, built-in scheduling and SQL.

Open Think is deliberately orthogonal to that SDK:

  • The Agents SDK is opinionated (extend Agent, use this.state, use @callable() RPC).

  • Open Think is a plugin bus: bring your own provider (Workers AI, Anthropic, OpenAI-compatible), bring your own tools (MCP, Browser, Sandbox, Artifacts), keep a clean HTTP surface.

Both can coexist. A natural roadmap step is an agents-sdk-compat plugin so projects already using agents can adopt Open Think's plugin catalog without rewriting their agent class.

§Why these choices

  • Durable Objects + SQL over Queues/Workflows for session state. Sessions are conversational and branching, not pipeline-y. DO SQLite gives identity + isolation + structured queries in one primitive.

  • Plugins over a monolithic base class. Teams can mix Workers AI with Anthropic + any OpenAI-compatible endpoint, add MCP servers, or plug in custom tools — without forking the runtime.

  • Restricted fetch, not sandboxing-by-default. We lean on Cloudflare's native isolation and add a host allow-list. Sandboxes are opt-in via the sandbox plugin.

  • Idempotent fibers over complex workflow machinery. Any caller can submit a durable job with an idempotency key; retries are deduped at the storage layer. This covers the 80% case for LLM tool-call durability without needing a separate Workflow engine.

§Roadmap

§Phase 7.x — Durable execution polish

  1. Move LIKE substring search → FTS5 virtual table for real full-text search.

  2. Add POST /sessions/{name}/fibers/{id}/execute — the DO calls a registered fiber handler (Worker service binding or internal plugin) and stores the result.

  3. Cross-session alarms + scheduled fiber runs.

§Phase 8 — Self-authored extensions

  1. POST /sessions/{name}/extensions with a typed TypeScript source blob scoped to the session.

  2. Compile at request time via @cloudflare/worker-bundler, deploy to a per-session Dynamic Worker.

  3. Emit audit events for each extension deploy + invocation; require capability claims.

§Phase 9 — Ecosystem

  • Drop-in Claude Code / OpenClaw / Hermes connector plugins so users can point existing agent flows at Cloudflare.

  • agents-sdk-compat plugin that bridges Open Think's plugin catalog to Cloudflare's Agent base class.

  • Community plugin registry with verified publisher badges and schema.json typed input/output contracts.

  • WebSocket streaming chat (GET /sessions/{name}/chat → hibernation-friendly DO WebSocket).

§Security boundaries preserved

  • No plugin gets direct fetch; they use the runtime's restricted fetch (ALLOWED_HOSTS).

  • Enabling Browser / Sandbox / Artifacts each requires an explicit binding in wrangler.toml — the plugin refuses to initialize otherwise.

  • Fiber/extension flows (roadmap) will require the session DO to accept a signed request from the main Worker, preventing cross-session tampering.

  • All session state lives inside a per-session DO with SQLite isolation — no shared mutable storage, no cross-agent leakage.