Vercel Open Agents 深度解析:打造你自己的雲端 Coding Agent

Vercel Open Agents 深度解析:打造你自己的雲端 Coding Agent

中文 EN

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 互動。

為什麼這很重要?

  1. 執行不受 HTTP 請求限制 — agent 以持久化工作流運行,而非綁定在單一請求生命週期內
  2. Sandbox 可休眠與恢復 — VM 閒置時休眠、需要時喚醒,與 agent 狀態完全獨立
  3. 模型靈活性 — 切換 LLM 提供者不需要動到 sandbox
  4. 關注點分離 — sandbox 是純粹的執行環境,而非控制平面

Vercel Workflow SDK:讓 Agent 具備持久性

Open Agents 的核心是 Vercel Workflow SDK,一個開源的 TypeScript 框架,能將普通的非同步函數轉變為持久化、可恢復的工作流。

運作原理

SDK 引入兩個核心指令:

  • "use workflow" — 標記一個函數為持久化工作流
  • "use step" — 標記一個函數為原子性、可重試的工作單元

底層機制是將每個步驟的輸入和輸出記錄在事件日誌中。如果發生崩潰或重新部署,工作流會從最後完成的步驟開始確定性地重播 — 已完成的步驟直接返回快取結果,不會重新執行。

為什麼這對 Agent 至關重要

傳統的 serverless 函數有嚴格的超時限制。一個 coding agent 需要:

  1. Clone 一個 repo
  2. 分析整個程式碼庫
  3. 規劃跨 15 個檔案的變更
  4. 撰寫並測試程式碼
  5. 建立 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 能力
WebHTTP 請求和預覽端口互動

這種基於工具的方法意味著 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 AgentsDevinClaude CodeCursor
運行環境雲端(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 就是把這一切串聯起來的參考實作。

如何開始

  1. Fork repo
  2. 設定 PostgreSQL 並產生加密密鑰
  3. 配置 Vercel OAuth 和 GitHub App 憑證
  4. 部署 到 Vercel(或用 bun run web 在本地運行)

最低啟動只需要 POSTGRES_URL 和 JWE_SECRET 兩個環境變數。加上 GitHub App 憑證即可獲得完整功能。

結語

Open Agents 代表了一個重要轉變:coding agent 正從本地工具進化為雲原生基礎設施。Agent 邏輯與執行環境的分離,加上持久化工作流,意味著我們正在接近一個新世界 — 你用自然語言描述一個功能、轉身離開,回來時就能看到一個 Pull Request。

它是開源的、設計來被 fork 的,這讓它成為想要 Devin 體驗但不想被廠商鎖定的團隊的理想基礎。無論你是在建構內部開發工具、程式教育平台,還是只想實驗自主代理 — Open Agents 都提供了一個生產級的起點。


相關連結: