Cloudflare Cursor Cloud Agents 自架怎麼做?Workers Containers 部署實作
Cloudflare 在 2026 年 9 月 2 日發布 Cursor Cloud Agents 的部署範本,讓 Cursor 負責 agent loop、推理與規劃,Cloudflare Workers Containers 負責在隔離環境中執行指令、編輯檔案與操作 repository。
這個方案適合已經使用 Cursor Enterprise,且希望把 agent 工作環境放在自己的 Cloudflare 帳號與網路邊界內的團隊。它不是在筆電上多裝一個 CLI;你需要準備 self-hosted machines、service-account API key、Workers Paid、Containers、R2、Node.js 20 以上與正在執行的 Docker daemon。
先理解這個架構在解決什麼
每個 Cursor session 會在一個獨立的 container 中執行。Cursor 仍是 agent 的控制平面,Cloudflare 則提供工作環境與生命週期:
| 元件 | 負責什麼 |
|---|---|
| Cursor Enterprise | Agent loop、模型推理、規劃與工作分派 |
| Cursor self-hosted machine pool | 讓團隊選擇可用的執行池 |
| Worker 與 Durable Object | 接收排程、維持 session 路由與狀態 |
| Cloudflare Containers | 隔離執行程式碼、指令與 repository 操作 |
| R2 | 選用的 repo-bound workspace snapshot 儲存 |
Container 沒有 inbound port 或公開 IP,Worker 會透過 outbound connection 連到 Cursor。工作完成、閒置或超過生命週期時,container 會被停止;不要把這個執行環境當成長駐 VM。
部署前的 prerequisites
先逐項確認,少一項就不適合直接進入 deploy:
- Cursor Enterprise,並已啟用 self-hosted machines。
- 一個 Cursor team service account 的 API key,且具備 agent scope。
- Cloudflare Workers Paid,帳號可使用 Containers 與 R2。
- Node.js 20 以上。
- 本機或部署流程中有正在執行的 Docker daemon。
- 若要操作 private repository,準備 GitHub username 與 token。
其中 Cursor Enterprise self-hosted machines 和 service-account key 是 Cursor 端資格;Workers Paid、Containers 與 R2 是 Cloudflare 端條件。兩邊都通過,session 才有地方執行。
用官方範本建立 Worker
Cloudflare 官方教學使用 anysphere 的 cloudflare-workers repository。先在一個新的工作資料夾執行:
git clone https://github.com/anysphere/cloudflare-workers.gitcd cloudflare-workersnpm installnpx wrangler login建立 snapshot 用的 R2 bucket:
npx wrangler r2 bucket create cursor-pool-worker-snapshots再把 Cursor API key 放進 Worker secret。指令會要求你在互動提示中貼上 key,不要把真正的金鑰寫進 shell history 或 commit:
npx wrangler secret put CURSOR_API_KEY完成後開啟範本的 Wrangler 設定,填入 Cursor team 的 pool 名稱:
vars: CURSOR_POOL: your-cursor-pool同時確認 containers 設定的 max_instances 符合預期併發量。這個值不是單純的效能開關,也會影響同時啟動多少隔離工作環境;第一次上線先用小數字做 pilot。
如果 agent 需要 clone private repository,再設定 GitHub secrets。GitHub username 使用 x-access-token,token 則放在 GIT_TOKEN:
npx wrangler secret put GIT_USERNAMEnpx wrangler secret put GIT_TOKEN最後部署:
npx wrangler deploy官方範本會依 Git remote 與 Cursor pool 做 repo-bound routing。不要手動新增 repo label 或自行改一套路由規則;先照範本的 team pool 與 Git remote 流程驗證,否則排錯時很難分辨是 Cursor 設定還是 Worker 自訂邏輯造成。
Repo-bound 和 any-repo 要先選清楚
這個選擇會影響 workspace 初始化與 snapshot 行為:
| 模式 | Workspace | 適合情境 | Snapshot |
|---|---|---|---|
| Repo-bound | 依 Git remote 建立 repository workspace | 固定維護某些 repository | 可選用 R2 snapshot |
| Any-repo | 空白 workspace,沒有預設 remote | 臨時探索或由 agent 後續指定 repository | 不支援 repo-bound snapshot 流程 |
Repo-bound workspace 預設會放在 container 的 $HOME/workspaces/repo-0。第一次啟動通常會 clone repository,因此 cache miss 或初次啟動較慢是正常現象。若使用 private repository,先確認 GIT_TOKEN 對目標 repository 有權限,再看 Worker log。
Snapshot 是選用功能,不是每個工作都必須開啟。若要讓公開 Worker URL 提供 snapshot 操作,還要設定 SNAPSHOT_AUTH_TOKEN 與 WORKER_PUBLIC_URL;先把 session 執行與 Git 權限跑通,再增加 snapshot 會比較容易控管風險。
觀測 session 與本機測試
部署後先看 Worker log 和 Container 狀態:
npx wrangler tailnpx wrangler containers list這個架構使用每五分鐘執行一次的 cron 機制檢查工作,並透過 SSE 接收更新。要在本機觸發排程,可先啟動:
npx wrangler dev --test-scheduled再呼叫測試 endpoint:
curl "http://localhost:8787/__scheduled?cron=*/5+*+*+*+*"建議把以下三段 log 放在同一個測試紀錄:
- Cursor team pool 是否收到 session。
- Worker 是否建立 Durable Object 與 container。
- container 是否成功 clone repository、執行 agent worker 並回傳 SSE。
若只看最後的 Copilot 或 Cursor UI,很容易把「沒有分派到 pool」誤認成「container 啟動失敗」。
常見排錯順序
| 症狀 | 先檢查 |
|---|---|
| 完全沒有 session | Cursor self-hosted machine pool、CURSOR_POOL 與 service-account agent scope |
| 回傳 401 | CURSOR_API_KEY secret 是否存在、是否貼錯環境 |
| pool 有 session 但 container 沒啟動 | Workers Paid、Containers 設定、max_instances 與 Docker 執行環境 |
| clone private repo 失敗 | GIT_USERNAME 是否為 x-access-token、GIT_TOKEN 權限與 repository remote |
| 第一次啟動很慢 | 初次 clone、image pull 或 snapshot cache miss |
| session 執行一段時間後消失 | container idle timeout、max lifetime 與 Worker log |
先用公開、很小的 repository 做 smoke test,再測 private repository 和較大的工作。每次只改一個變數,並保留 pool、Worker、container 三側的時間戳,會比反覆重跑更快找到斷點。
給團隊的上線建議
把這個部署當成 agent 執行平面,而不是自動合併程式碼的保證。repository 權限、Git token、container 的 outbound access 與 session idle policy 仍要依團隊標準治理。
第一階段可只開一個 Cursor pool 和低 max_instances,限定測試 repository;第二階段再加 private repository 與 snapshot;最後才擴大到正式團隊。若團隊原本已用 Git worktree 管理多個 agent 工作區,也可以先閱讀Git worktree 與 AI coding agent 的工作流整理,把分支與 workspace 邊界先定義好。
常見問題
Q: 這個方案需要把 Cursor 的模型推理搬到 Cloudflare 嗎?
A: 不需要。官方架構是 Cursor 負責 agent loop、推理與規劃,Cloudflare 負責 container 中的指令、檔案與 repository 操作。
Q: 沒有 Cursor Enterprise 可以部署嗎?
A: 官方教學的前置條件包含 Cursor Enterprise self-hosted machines 與 team service-account API key。若缺少這些條件,不能直接把這份範本當成一般 Cursor 個人帳號的部署流程。
Q: 一定要啟用 R2 snapshot 嗎?
A: 不一定。R2 snapshot 是 repo-bound workspace 的選用功能;先完成 session、container 與 Git 權限驗證,再決定是否加入 snapshot。
參考資料:
回報錯字、失效連結,或告訴我你想看的延伸主題。