Vercel Open Agents 深度解析:打造你自己的雲端 Coding Agent
Vercel 剛剛開源了 Open Agents — 一個完整的參考平台,讓你能在雲端建構並運行自主程式開發代理。簡單來說,它就像一個可以自架的 Devin:你用自然語言描述需求,背景代理就會自動寫程式、測試、然後發 PR,全程不需要你的電腦保持開啟。
這篇文章將深入拆解它的架構設計、核心技術,以及這對軟體開發未來的意義。
Open Agents 是什麼?
Open Agents 是一個 MIT 授權的 monorepo,提供建構雲端 coding agent 所需的所有元件:
- Web UI — 與 agent 互動的聊天介面
- Agent Runtime — 持久化工作流執行,能承受崩潰和重新部署
- Sandbox — 隔離的 VM 環境,具備檔案系統、Shell、Git、開發伺服器和預覽端口
- GitHub 整合 — agent 完成工作後可自動 commit、push 和建立 PR
Vercel 明確表示這個專案是設計來被 fork 和客製化的,而非當成黑箱使用。
三層式架構
Open Agents 建構在一個清晰的三層分離架構上:
┌─────────────────────────────────────┐
│ Web 層 │
│ Next.js · 認證 · 聊天 UI · 串流 │
├─────────────────────────────────────┤
│ Agent 層 │
│ 持久化工作流 · 工具呼叫 │
│ 模型無關 · 多步驟執行 │
├─────────────────────────────────────┤
│ Sandbox 層 │
│ 隔離 VM · 檔案系統 · Shell · Git │
│ 開發伺服器 · 預覽端口 │
└─────────────────────────────────────┘
關鍵設計決策:Agent 運行在 Sandbox 之外
這是最重要的架構選擇。不同於許多 coding agent 將代理邏輯放在執行環境內部,Open Agents 的 agent 運行在 sandbox 外部,僅透過工具呼叫(檔案讀寫、Shell 命令、搜尋)與 sandbox 互動。
為什麼這很重要?
- 執行不受 HTTP 請求限制 — agent 以持久化工作流運行,而非綁定在單一請求生命週期內
- Sandbox 可休眠與恢復 — VM 閒置時休眠、需要時喚醒,與 agent 狀態完全獨立
- 模型靈活性 — 切換 LLM 提供者不需要動到 sandbox
- 關注點分離 — sandbox 是純粹的執行環境,而非控制平面
Vercel Workflow SDK:讓 Agent 具備持久性
Open Agents 的核心是 Vercel Workflow SDK,一個開源的 TypeScript 框架,能將普通的非同步函數轉變為持久化、可恢復的工作流。
運作原理
SDK 引入兩個核心指令:
"use workflow"— 標記一個函數為持久化工作流"use step"— 標記一個函數為原子性、可重試的工作單元
底層機制是將每個步驟的輸入和輸出記錄在事件日誌中。如果發生崩潰或重新部署,工作流會從最後完成的步驟開始確定性地重播 — 已完成的步驟直接返回快取結果,不會重新執行。
為什麼這對 Agent 至關重要
傳統的 serverless 函數有嚴格的超時限制。一個 coding agent 需要:
- Clone 一個 repo
- 分析整個程式碼庫
- 規劃跨 15 個檔案的變更
- 撰寫並測試程式碼
- 建立 PR
這根本塞不進一個 Lambda 呼叫。Workflow SDK 透過以下方式解決這個問題:
- 跨步驟持久化狀態 — 不限步驟數量
- 休眠不消耗資源 — 工作流可以暫停數小時
- 從中斷處恢復 — 重新連接到活躍工作流的串流
- 內建重試機制 — 失敗的步驟自動帶退避重試
這就是「發射後不管」模式的基礎:提交 prompt、關上筆電,agent 繼續工作。
Sandbox:隔離的執行環境
每個 agent session 會獲得一個隔離的 sandbox — 本質上是一個輕量 VM,具備:
- 完整的檔案系統存取
- Shell 執行能力
- Git 整合(clone、branch、commit、push)
- 開發伺服器支援(ports 3000、5173、4321、8000)
- 基於快照的恢復 — sandbox 閒置後休眠,從快照還原
Sandbox 是程式碼實際執行的地方,但它對「該做什麼」沒有任何意見。決策權在 agent 層;sandbox 只負責執行。
工具系統
Agent 透過結構化的工具系統與 sandbox 互動:
| 工具 | 用途 |
|---|---|
| File | 以行級精度讀寫和操作檔案 |
| Search | 跨程式碼庫的全文搜尋 |
| Shell | 執行任意命令並捕獲輸出 |
| Task | 協調多步驟工作流 |
| Skill | 呼叫可重用的 agent 能力 |
| Web | HTTP 請求和預覽端口互動 |
這種基於工具的方法意味著 agent 是模型無關的。任何支援 function calling 的 LLM 都能驅動這個 agent — 你不會被鎖定在特定的提供者上。
技術堆疊
| 元件 | 技術 |
|---|---|
| Web 框架 | Next.js |
| 樣式 | Tailwind CSS |
| 套件管理 | Bun |
| 資料庫 | PostgreSQL |
| 快取 | Redis / Upstash KV(可選) |
| 工作流引擎 | Vercel Workflow SDK |
| 沙箱 | Vercel Sandboxes |
| 認證 | Vercel OAuth + GitHub App |
| 語音輸入 | ElevenLabs(可選) |
Monorepo 結構:
apps/web/ → Next.js 應用、工作流、認證、聊天介面
packages/agent/ → Agent 邏輯、工具、子代理、技能系統
packages/sandbox/ → Sandbox 抽象層、Vercel 整合
packages/shared/ → 共用工具函式
競品比較
Open Agents 在 2026 年的 coding agent 版圖中佔據獨特位置:
| Open Agents | Devin | Claude Code | Cursor | |
|---|---|---|---|---|
| 運行環境 | 雲端(Vercel) | 雲端 | 本地終端 | 本地 IDE |
| 開源 | 是(MIT) | 否 | 否 | 否 |
| 可自架 | 是 | 否 | N/A | 否 |
| 背景執行 | 是 | 是 | 否 | 否 |
| 可客製化 | 完全可 fork | 否 | Hooks/Skills | 擴充套件 |
| GitHub 整合 | 內建 | 內建 | 透過 CLI | 透過擴充 |
核心差異點:Open Agents 是唯一一個開源的完整雲端 coding agent 方案,具備持久化執行、沙箱隔離環境和 GitHub 整合 — 而且可以部署在你自己的基礎設施上。
更大的格局:Vercel 的 Agentic 戰略
Open Agents 是 Vercel 在 agentic infrastructure 上更大佈局的一部分。根據他們的數據:
- Coding agent 現在發起了 超過 30% 的 Vercel 部署(六個月內成長 1000%)
- Claude Code 佔了 75% 的 agent 驅動部署
- Agent 部署的專案使用 AI 推理 API 的機率是一般專案的 20 倍
Vercel 正在將自己定位為 agent 時代的全端平台:部署基礎設施、agent 編排(Workflow SDK)、執行隔離(Sandbox)、可觀測性,以及模型路由(AI Gateway)。Open Agents 就是把這一切串聯起來的參考實作。
如何開始
- Fork repo
- 設定 PostgreSQL 並產生加密密鑰
- 配置 Vercel OAuth 和 GitHub App 憑證
- 部署 到 Vercel(或用
bun run web在本地運行)
最低啟動只需要 POSTGRES_URL 和 JWE_SECRET 兩個環境變數。加上 GitHub App 憑證即可獲得完整功能。
結語
Open Agents 代表了一個重要轉變:coding agent 正從本地工具進化為雲原生基礎設施。Agent 邏輯與執行環境的分離,加上持久化工作流,意味著我們正在接近一個新世界 — 你用自然語言描述一個功能、轉身離開,回來時就能看到一個 Pull Request。
它是開源的、設計來被 fork 的,這讓它成為想要 Devin 體驗但不想被廠商鎖定的團隊的理想基礎。無論你是在建構內部開發工具、程式教育平台,還是只想實驗自主代理 — Open Agents 都提供了一個生產級的起點。
相關連結:

