跳到主要內容

Vercel 開源 Open Agents:背景執行 Coding Agent 的參考架構

vercel-labs/open-agents on GitHub

多數人對 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 溝通,但兩者的生命週期完全解耦。

Loading diagram...

這個解耦帶來幾個好處:

  1. Sandbox 可以被銷毀和重建。Agent 不需要關心 VM 的狀態,因為它可以從 snapshot 恢復。Sandbox 掛了,換一個就好。
  2. Agent 可以休眠。Workflow SDK 提供 durable execution,agent 跑到一半可以 hibernate,等到需要時再 resume。中間不佔任何運算資源。
  3. 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,它做得相當紮實。值得花一個下午讀完它的原始碼。