Agents
AI 代理是一種會自己做決定、自己採取行動的軟體。Agents SDK 讓每個代理都有記憶、即時對話和內建排程器。
Agents 是什麼?
Agents SDK 是用來打造 AI 代理的工具包——這種程式能跟你對話、記住發生過的事、呼叫 AI 模型和工具,甚至能在稍後自己醒來做事。它跑在 Cloudflare Workers 上,靠 Durable Objects(持久物件)來記憶。
普通的 AI 聊天機器人,請求一結束就把一切忘光。代理不一樣:每個代理都保有自己的記憶,還能跨時間執行任務,就像一個永不疲倦、筆記永遠不會掉的私人助理。
把它想成一位專屬助理
想像你請了一位助理,他有自己的辦公桌和檔案櫃(狀態 state)、能即時接你的電話(WebSocket)、還記得下週二要追進度(排程)。每個使用者都能配一位專屬助理——這就是代理。
為什麼要用它?
從零打造代理,得在多台伺服器間處理記憶、即時連線和背景工作,非常麻煩。Agents SDK 把這些全包進一個類別(class),讓你專心設計代理的行為,而不是搞底層水管。
內建記憶
每個代理都有自己的狀態和私人 SQL 資料庫,由 Durable Objects 保管——不必另外架資料庫。
預設即時
WebSocket 讓使用者即時串流對話,訊息雙向瞬間傳遞。
會自己醒來
代理可以排定未來的工作——『一小時後再檢查一次』——不需要外部的排程伺服器。
工具與 MCP
代理能呼叫 AI 模型和外部工具,包含 Model Context Protocol(MCP,模型情境協定)工具,真正把事情做完。
什麼時候該用它?
有記憶的聊天機器人
記得整段對話、而不只是上一句的客服或寫程式助理。
多步驟流程
需要好幾個步驟或多次呼叫工具的任務,由代理一路追蹤進度。
排程工作
稍後自動執行的追蹤、提醒或定期檢查,不必你親自觸發。
每位使用者一個代理
為每位使用者或每份文件配一個獨立、各有記憶與狀態的代理。
怎麼開始用?
用範本建立專案
一個指令就能建好可立即執行的代理專案,聊天、工具和排程都已接好。
npm create cloudflare@latest agents-starter -- --template cloudflare/agents-starter cd agents-starter npm install npm run dev設定代理的繫結
代理就是 Durable Objects。在 wrangler.jsonc 註冊你的類別,並加一段使用 new_sqlite_classes 的遷移設定,讓每個代理都有自己的 SQL 資料庫。
{ "name": "my-agent", "main": "src/index.ts", "compatibility_date": "2025-06-01", "durable_objects": { "bindings": [{ "name": "MyAgent", "class_name": "MyAgent" }] }, "migrations": [ { "tag": "v1", "new_sqlite_classes": ["MyAgent"] } ] }撰寫代理類別
繼承 Agent 類別。onRequest 處理 HTTP,this.setState 儲存記憶,this.schedule 預約未來工作。routeAgentRequest 會把進來的請求導向正確的代理。
import { Agent, routeAgentRequest } from "agents"; export class MyAgent extends Agent { async onRequest(request) { const count = (this.state?.count ?? 0) + 1; this.setState({ count }); // run a task 10 seconds from now this.schedule(10, "remind", { note: "follow up" }); return Response.json({ visits: count }); } async remind(payload) { console.log("Scheduled task ran:", payload.note); } } export default { async fetch(request, env) { return ( (await routeAgentRequest(request, env)) || new Response("Not found", { status: 404 }) ); } };部署上線
一個指令就能把代理發佈到 Cloudflare 全球網路。
wrangler deploy
重點概念
代理(Agent)
你寫的一個類別,負責處理請求、保存記憶、執行任務。每個運行中的副本都是獨立的工作者。
Durable Objects
Cloudflare 的工具,讓每個代理擁有一個一致的記憶儲存點和內建 SQL 資料庫。
狀態(State)
代理的記憶。用 this.state 讀取、this.setState 更新——它在多次請求之間都會保留。
排程(Scheduling)
this.schedule() 預約某個方法稍後執行——可指定幾秒後、某個時間點,或週期性的 cron。
小提示與計費
它就是 Workers 加 Durable Objects
沒有單獨的『Agents』帳單。你付的是一般的 Workers 和 Durable Objects 用量,所以先學會 Workers,再上手 Agents 會更快。
- 用 agents-starter 範本——它已內建串流聊天、工具和人工審核(human-in-the-loop)。
- 把 Workers AI、OpenAI 或 Anthropic 接上來當代理的『大腦』。
- 每位使用者或每份文件配一個代理,記憶才乾淨又獨立。
- 前面加上 AI Gateway,補上紀錄、快取和成本上限。