Vercel 開源 Open Agents:背景執行 Coding Agent 的參考架構
多數人對 coding agent 的想像還停留在「IDE 裡面跑一段對話」。Vercel Labs 的 Open Agents 指向一個不同的方向:agent 不綁在你的 IDE 裡,它跑在雲端、有自己的生命週期、能在你關掉瀏覽器之後繼續工作,做完了自己開 PR。
這個專案不是一個產品。它是一個 forkable template——你 fork 下來,改成自己的東西。MIT 授權,TypeScript 佔了 99.3%,目前大約 2.9k stars。
為什麼值得看
市面上的 coding agent 大多有一個共同問題:agent 的生命週期和你的瀏覽器 session 綁死。你關掉頁面,agent 就斷了。Open Agents 用 Vercel Workflow SDK 解決這件事——agent 的執行是 durable 的,中間可以休眠、可以恢復、可以在任意時間點從 snapshot 續跑。
這不是小事。一旦 agent 的執行不再依賴前端連線,你才能真正做到「丟一個任務給 agent,去做別的事,回來看結果」。
架構:Agent 在外面,Sandbox 在裡面
Open Agents 最關鍵的設計決策是 agent 跑在 sandbox VM 外部。Agent 透過 tool calling 和 sandbox 溝通,但兩者的生命週期完全解耦。
這個解耦帶來幾個好處:
- Sandbox 可以被銷毀和重建。Agent 不需要關心 VM 的狀態,因為它可以從 snapshot 恢復。Sandbox 掛了,換一個就好。
- Agent 可以休眠。Workflow SDK 提供 durable execution,agent 跑到一半可以 hibernate,等到需要時再 resume。中間不佔任何運算資源。
- GitHub 整合是原生的。Agent 跑完一輪修改,可以自動 commit 並開 PR,不需要人類手動操作。
Durable Execution 的意義
Vercel Workflow SDK 在這個架構裡扮演的角色,本質上是把一個 long-running process 變成一系列可以中斷和恢復的 step。每個 step 執行完都會被持久化到 PostgreSQL,所以即使 serverless function 被回收,下次被喚醒時可以從上次斷點繼續。
這和傳統的 queue + worker 模式不同。你不需要自己管理 job state machine、不需要處理 retry logic 的邊界條件。Workflow SDK 把這些都抽象掉了。
對 indie developer 來說,這代表你可以在 Vercel 的 serverless 環境上跑一個「看起來像 long-running server」的 agent,但不需要維護任何 server。
技術組成
整個 stack 相當直白:
- Next.js 做 web UI 和 API routes
- Vercel Workflow SDK 做 durable execution
- PostgreSQL 做 agent state 和 conversation 持久化
- Sandbox VM 提供隔離的程式碼執行環境
- GitHub App 做 repo 存取和 PR 自動化
- Redis(可選)做快取
- ElevenLabs(可選)做語音互動
沒有什麼出人意料的選擇。這是 Vercel 自家的 stack,每一層都對應 Vercel 平台上的某個服務。這也是為什麼我說它是 forkable template 而不是 product——它展示的是「在 Vercel 上建 coding agent 的正確姿勢」。
適合誰
如果你想做以下任何一件事,Open Agents 是一個好的起點:
- 建一個給自己團隊用的 internal coding assistant
- 做一個 SaaS 產品,讓使用者可以在雲端跑 coding agent
- 研究 durable agent execution 的實作模式
- 學習 Vercel Workflow SDK 的實際用法
不適合的情境:你只是想要一個本地跑的 AI code completion 工具。這不是那個東西。
我的判斷
Open Agents 做對了一件事:把 agent 和 sandbox 的生命週期解耦。這是目前多數 coding agent 產品沒有認真處理的問題,而它直接影響了使用者能不能把 agent 當成「非同步的隊友」而不是「即時的工具」。
但要注意的是,這個專案高度綁定 Vercel 生態系。你可以 fork 它,但如果你想跑在 AWS 或 GCP 上,Workflow SDK 那一層就得自己換掉。這不是批評——template 本來就是要展示 vendor 的最佳實踐——但你在評估時應該把這個因素算進去。
作為一個 reference implementation,它做得相當紮實。值得花一個下午讀完它的原始碼。