AI Agents

Project Think:Cloudflare 為下一代 AI Agent 打造的新基礎

Cloudflare 把 coding agent 被驗證的讀檔、寫碼、執行、記憶四大能力,搬進以 Durable Objects 為底的 serverless 經濟模型:休眠零成本、fibers 崩潰可恢復、codemode 省 99.9% token、五層執行階梯。本文拆解 Project Think 的機制、量化錨點與 preview 限制。

Project Think:Cloudflare 為下一代 AI Agent 打造的新基礎 — 文章封面
本頁內容9 個段落
  1. 規模化的數學壞了:agent 是一對一的
  2. Actor 模型:休眠零成本的長駐基礎
  3. 持久執行:fibers 讓崩潰變成可恢復的插曲
  4. 子代理、樹狀 Session 與跨休眠的記憶
  5. codemode:讓 agent 寫程式,而不是玩工具呼叫
  6. 能力模型與五層執行階梯
  7. Think base class 與自我擴充的 extensions
  8. 現況與限制:preview 而非承諾
  9. 參考來源

2026 年 4 月,Cloudflare 公開 Project Think,定位為 Agents SDK 的下一代演進。它的命題不是把模型做強,而是把 coding agent 已經被驗證的四大能力——讀檔、寫碼、執行、記憶——搬進 serverless 的經濟模型:agent 可以長駐、可以休眠、崩潰可以恢復,而且閒置時不收費。對正在評估 agent 基礎設施的團隊,以下拆解它的機制、量化錨點與目前的限制。

規模化的數學壞了:agent 是一對一的

Pi、OpenClaw、Claude Code 與 Codex 這波工具證明了一件事:讓 LLM 讀檔、寫碼、執行並記住所學,得到的不是開發者工具,而是通用助理——人們用它管理行事曆、分析資料、甚至報稅。但 Cloudflare 團隊自己天天使用這些工具,也天天撞到同一組瓶頸:它們只能跑在筆電或昂貴的 VPS 上、閒置時照樣計費、依賴與密鑰全要手動管理。

更結構性的問題在於:傳統應用是一個實例服務許多使用者,agent 卻是一對一的。一億名知識工作者、即使只有低度併發,也需要數千萬個同時進行的 session。以目前每個容器的成本計算,這條路在數學上就走不通。

Actor 模型:休眠零成本的長駐基礎

Project Think 的答案是 Durable Objects 的 actor 模型:每個 agent 都是一個可定址實體,擁有自己的 SQLite 資料庫;休眠時運算成本為零,事件到來時——HTTP 請求、WebSocket 訊息、排程鬧鐘、入站 email——由平台喚醒、載入狀態、處理完再睡回去。

量化對比很直接:10,000 個各自只有 1% 時間活躍的 agent,在容器世界需要 10,000 個 always-on 實例;在 Durable Objects 上,任一時刻只有約 100 個活著。新 agent 的邊際成本趨近零,架構從「每個重度使用者一個昂貴 agent」變成「每個客戶、每個任務都可以有一個 agent」。

VM / 容器 Durable Objects
閒置成本 永遠開著,全額計費 休眠時為零
狀態 需外接資料庫 內建 SQLite
喚醒與恢復 自行建構(程序管理、健康檢查) 事件喚醒,平台重啟狀態保留
規模化單位 預先配置容量 每 agent 一個,邊際成本趨近零

持久執行:fibers 讓崩潰變成可恢復的插曲

單次 LLM 呼叫可能要 30 秒,多輪 agent 迴圈更久,而這段期間部署、平台重啟、資源限制隨時可能發生。runFiber() 把函式呼叫變成持久操作:執行前先註冊進 SQLite,過程中可用 stash() 在任意時點設檢查點,重啟後由 onFiberRecovered 接手恢復;keepAlive()keepAliveWhile() 則防止活躍中的工作被驅逐。至於以小時計的長任務,正確做法是啟動工作、持久化 job ID、休眠,等回呼再喚醒。

子代理、樹狀 Session 與跨休眠的記憶

子代理是經 Facets 與 parent 共置的子 Durable Objects:各有獨立的 SQLite 與執行環境、沒有隱式的資料共享,RPC 是 typed 的、誤用會在編譯期被抓出來,orchestrator 可以用 Promise.all 平行驅動多個子代理。

對話本身由實驗性的 Session API 管理:訊息存成樹狀(每則帶 parent_id),因此可以 forking 探索替代路徑、做非破壞性的 compaction、用 FTS5 對歷史做全文搜尋;它同時是 Think base class 的儲存層。

長期記憶則用 context blocks 實作:模型會看到一個帶使用率與預算的記憶區塊,能用 set_context 主動更新內容,跨休眠持久保存,並可搭配 withCachedPrompt() 降低重複成本。

MEMORY [42%, 462/1100 tokens]
偏好:回覆使用繁體中文,程式碼附最小可執行範例
專案:部署目標 Cloudflare Workers,測試以 Bun 執行

codemode:讓 agent 寫程式,而不是玩工具呼叫

傳統工具呼叫的形狀很浪費:模型呼叫一個工具、把結果拉回上下文視窗、再呼叫下一個,工具一多就是線性膨脹。codemode 的洞察是模型更擅長「寫一支程式去操作系統」:讓 LLM 產生單一程式、在沙盒中一次跑完整個任務。Cloudflare API 的 MCP server 只暴露 search()execute() 兩個工具,約 1,000 個 token 就能描述整個 API,相較每個端點一個工具的傳統做法約需 117 萬個 token——減少 99.9%。

能力模型與五層執行階梯

模型要寫碼,就得先回答「碼在哪裡跑」。Dynamic Workers 是答案:毫秒級啟動的 V8 isolate、數 MB 記憶體,官方數據約比容器快 100 倍、記憶體效率最高可達 100 倍。安全設計採 capability model:從幾乎沒有環境權限起步(globalOutbound: null、無網路),再透過 bindings 逐資源明確授權——問題從「怎麼擋住它」變成「你到底要它能做什麼」。

往上疊就是執行階梯:Tier 0 是 SQLite 加 R2 的 workspace(@cloudflare/shell,單獨使用就有生產力);Tier 1 是無網路的 Dynamic Worker(codemode);Tier 2 加入 npm(@cloudflare/worker-bundler 用 esbuild 打包);Tier 3 是 headless browser;Tier 4 是完整 Sandbox,可以跑 git clone、npm test、cargo build。能力逐層累加,風險也逐層管控。

Think base class 與自我擴充的 extensions

不想從原語開始拼裝的人,可以直接繼承 Think:最小子類只需覆寫 getModel()npx wrangler deploy 之後就是一個可串流的聊天 agent——官方部落格的範例模型採用 Moonshot 的 Kimi K2.5。它與既有的 AIChatAgent 共用同一套底層協定,但定位不同:既有的路徑是用約 15 行的 AIChatAdapter protocol adapter,模型呼叫自理;Think 是 opinionated framework,內建樹狀 session、非破壞性操作與子代理 RPC。Think 可以當頂層 agent 使用,也能被 parent 透過 chat() 當子代理驅動。

更值得注意的是執行期自寫的 extensions:agent 用沙盒 TypeScript 寫出新工具、宣告需要的 network 與 workspace 權限,由 ExtensionManager 打包後載入 Dynamic Worker 註冊成可用工具——工具存在 DO storage、跨休眠保存。自我改進靠的是程式碼,不是 fine-tuning。

現況與限制:preview 而非承諾

官方文件目前把 Project Think 標為實驗性 preview:概念今天就能用,API surface 目前穩定但會持續演進,整體仍不宜當成凍結的 production contract。套件是 npm 上的 @cloudflare/think,底層的 Agents SDK 則已驅動數千個 production agents。引用細節時也要留意版本差異:部落格的範例模型是 Kimi K2.5,Think 文件頁的範例則換成 Kimi K2.6,各自以出處為準。對 builder 而言,真正該帶走的是那組經濟學與安全設計——至於 API 本身,等它從 preview 畢業再押注也不遲。

參考來源

本文由 AI 協助自上述來源整理,經人工審核後發布。

分享X電郵