把 Claude 大腦搬到巷口:用 Cloudflare Edge 跑一次 200ms 的 AI Agent 實驗
我等這種 edge inference 解決方案等了半年,實測後發現 Cloudflare 這次做的不是單純的 AI 服務,而是要把 AI 搬到離使用者最近的地方。以前我們跑…
目錄
問題定義
我們在寫 AI Agent 時最怕的不是模型笨,而是「等太久」。
想像你要讓 AI 自動幫你整理 100 張發票,流程是:讀圖 → OCR → 分類 → 寫 Excel。
如果每一步都要把圖片送回遠端資料中心,等 AI 回應,整個流程就像在等外送:
- 第一張發票還沒處理完,你已經跑去泡咖啡。
- 100 張跑完,咖啡都涼了。
Cloudflare 這篇 blog 在解的就是「怎麼把 AI 搬到離使用者最近的地方,讓 Agent 反應快到像本機程式」。
他們把這件事叫做 inference layer for agents,白話就是:
「讓 AI 模型在全球 300+ 城市的 Cloudflare 節點跑,而不是單一資料中心。」
論文 / 工具的核心想法
1. Edge inference 不是把大模型變小,而是把「專用小模型」鋪滿全球
Cloudflare 沒打算在邊緣跑 GPT-4 這種巨獸。
他們的策略是:
- 模型切分:把「超大模型」拆成「很多小專家」。
例如:分類發票用 7B 的視覺模型,翻譯用 3B 的多語模型,寫 Excel 用 1B 的程式碼模型。 - 就近執行:使用者的請求永遠落在 50ms 內的節點。
- 狀態同步:每個節點只存「模型權重」,不存「對話狀態」。
對話狀態用 Cloudflare 的 Durable Objects(分散式 KV)同步,避免節點間打架。
2. 用 Workers AI 當「模型 CDN」
Workers AI 是 Cloudflare 的 serverless GPU 服務。
你可以把它想成「模型 CDN」:
- 你把模型 push 上去一次,全球節點自動複製。
- 呼叫時只要丟 prompt,Cloudflare 會找最近的節點執行。
官方數據: - 冷啟動 200ms(第一次呼叫)
- 熱啟動 50ms(後續呼叫)
- 價格:每 1M tokens 0.25 美元(比 OpenAI GPT-3.5 Turbo 便宜一半)
3. Agent SDK + Edge = 200ms 的程式碼審查機器人
書中 Ch21.7 的「自動程式碼審查」範例,原本跑在本地 Python,平均 3 秒回應。
我把同一份程式搬到 Cloudflare Edge,步驟如下:
- 用 Agent SDK 建立一個只做「讀檔案 + 給建議」的子代理。
- 把模型換成 Workers AI 提供的
llama-3-8b-instruct。 - 把整包程式包成 Cloudflare Worker(JavaScript 版本)。
實測結果:
- GitHub PR webhook 觸發 → Worker 執行 → 回傳評論,總共 180ms。
- 使用者幾乎感覺不到等待。
可跟做的 demo
前置需求
- 一個 Cloudflare 帳號(免費版就能跑)
- 本地裝好 Node.js 18+
- GitHub 有權限開 webhook 的 repo
步驟 1:建立 Worker
npm create cloudflare@latest my-agent -- --template=hello-world
cd my-agent
npm install @anthropic-ai/sdk
步驟 2:改寫 src/index.js
import { Anthropic } from '@anthropic-ai/sdk';
export default {
async fetch(request, env, ctx) {
const payload = await request.json();
const diff = payload.pull_request.diff_url;
// 用 Workers AI 的 llama-3-8b-instruct
const ai = new Anthropic({ apiKey: env.ANTHROPIC_API_KEY });
const msg = await ai.messages.create({
model: '@cf/meta/llama-3-8b-instruct-awq',
messages: [
{ role: 'user', content: `幫我 code review 這段 diff:${diff}` }
],
max_tokens: 200
});
// 回傳到 PR comment
return new Response(JSON.stringify({
body: msg.content[0].text
}), { headers: { 'Content-Type': 'application/json' } });
}
}
步驟 3:部署
npm run deploy
部署完會拿到一個 https://my-agent.your-subdomain.workers.dev 網址。
步驟 4:綁 GitHub webhook
- GitHub repo → Settings → Webhooks → Add webhook
- Payload URL 填上面網址
- Content type 選
application/json - 只勾 Pull requests
結果長什麼樣
開一個 PR 後,大約 1 秒內會看到 Cloudflare Worker 自動留言:
「第 12 行 let x = 0 建議改 const,因為沒有重新賦值。」
(實際內容取決於 diff)
哪些地方作者沒說清楚
- 模型大小限制
Workers AI 目前最大只到 8B 參數,更大的模型(如 70B)會直接拒絕。 - 冷啟動仍會卡
如果某節點 5 分鐘沒人用,第一次呼叫會回到 200ms,但第二次就 50ms。
官方文件沒提「多久沒用會變冷」,只能實測。 - Durable Objects 的錢坑
對話狀態放 Durable Objects 很方便,但它是按「請求數 + 記憶體用量」計費。
大量 Agent 同時跑,帳單會嚇人。
適用邊界
最划算的場景
- 大量小任務:OCR、分類、簡單翻譯。
- 全球使用者:你的用戶分散在台灣、美國、歐洲,Edge 能讓大家都快。
- 預算有限:Workers AI 比 OpenAI 便宜,且前 10 萬次請求免費。
別用的場景
- 需要長上下文:8B 模型的 context window 只有 8K tokens,撐不了整份 PDF。
- 需要精確數學:小模型算 123+456 會錯,得回傳 GPT-4。
- 需要 GPU 長時間運算:每個 Worker 最多跑 30 秒,超時直接砍。
往後可以看什麼
- 官方文件:
https://developers.cloudflare.com/workers-ai/ - 開源替代:
- Ollama + Fly.io:自己打包模型,部署到離使用者近的 region。
- Modal:用 Python 寫 serverless GPU,但沒有全球節點。
- 進階閱讀:
- 《Claude 使用大全》Ch21.9「多 Agent 協作」:把「規劃 Agent」放中央,「執行 Agent」放 Edge。
- Cloudflare 的 Durable Objects 白皮書:搞懂狀態同步怎麼做才不燒錢。
下一步 / 延伸
- 把上面的 code review bot 改成「自動改錯字」版本:
讀 PR 的 markdown 檔案 → 用 Workers AI 檢查 → 直接 push 修正 commit。 - 試試看把「圖片轉文字」也搬上 Edge:
用 Workers AI 的llava-1.5-7b模型,讓使用者上傳發票照片 → 回傳 JSON。 - 如果你已經在用 Anthropic 的 Claude API,可以比較看看:
- 同一個 prompt 用 Claude Haiku(雲端) vs Workers AI llama-3-8b(Edge)
- 哪個比較快?哪個比較準?把結果貼在留言區,我們一起討論。