vercel-labs/coding-agent-template
Multi-agent AI coding platform powered by Vercel Sandbox and AI Gateway
編碼代理範本 – Vercel Labs
是什麼 – 一個即時可部署的 Web 應用,讓每位使用者能在任何 GitHub 倉庫上建立 AI 驅動的編碼任務。該應用會啟動一個 Vercel Sandbox,執行所選的編碼代理(Claude Code、OpenAI Codex CLI、GitHub Copilot CLI、Cursor CLI、Google Gemini CLI 或 opencode),將變更提交至自動產生的分支,並顯示即時日誌。
核心概念
| 概念 | 如何運作 |
|---|---|
| 任務 | 使用者提供倉庫 URL 和自然語言描述他們想要的變更。請求會儲存在 Neon Postgres 資料庫中。 |
| AI 代理 | 支援的 CLI 基礎代理之一分析提示,於 Vercel Sandbox 內執行,並修改程式碼。 |
| 沙箱 | Vercel Sandbox 提供一個隔離的暫時容器,其中檢出了目標倉庫。其生命週期可設定(5 分鐘 – 5 小時)。 |
| 分支命名 | 使用 Vercel AI Gateway + AI SDK 5,系統自動產生描述性分支名(例如 feature/add-user-auth-K3mP9n)。 |
| Git 整合 | 代理完成後,應用會將變更提交並推送到使用者的倉庫中。 |
| 多使用者 | 每位登入使用者擁有自己的任務、API 金鑰和 GitHub 連接;資料依 users 表進行作用域劃分。 |
| 保持運行 | 可選設定,任務完成後仍保持沙箱運行,以便使用者發送後續訊息或執行開發伺服器。 |
快速開始
- 點擊 README 中的 Deploy with Vercel 按鈕 – Vercel 將自動建立 Neon Postgres 資料庫並設定專案。
- 在 Vercel 仪表板中,新增至少一個 OAuth 提供者(GitHub 或 Vercel),並填入所需的密鑰(
JWE_SECRET、ENCRYPTION_KEY、沙箱權杖等)。 - 開啟部署後的 URL,登入並開始建立任務。
或在本機執行:git clone … && pnpm install && pnpm db:push && pnpm dev(在建立包含以下變數的 .env.local 檔案後)。
主要功能
- 多代理支援 – 可從六個 CLI 代理中任選其一。
- 安全 OAuth 登入 – GitHub 和/或 Vercel,每位使用者的 GitHub 權杖。
- AI 生成分支名 – 非阻塞、無衝突命名。
- 即時任務檢視 – 即時日誌、狀態和結果預覽。
- 可設定沙箱生命週期 – 最大持續時間與 Keep-Alive 開關。
- 持久化儲存 – 透過 Drizzle ORM 存取 Neon Postgres。
- 現代 UI – Next.js 15 + React 19 + Tailwind + shadcn/ui。
- MCP 伺服器連接器 – 可透過外部工具擴展 Claude Code(僅限 Claude)。
技術堆疊(如 README 所述)
- 前端:Next.js 15、React 19、Tailwind CSS、shadcn/ui
- 資料庫:Neon Postgres,透過 Drizzle ORM 存取
- 認證:Next-Auth 與 GitHub/Vercel OAuth
- AI 整合:Vercel AI Gateway + AI SDK 5(分支命名、路由)
- 編碼代理:Claude Code、OpenAI Codex CLI、GitHub Copilot CLI、Cursor CLI、Google Gemini CLI、opencode
- 沙箱執行:Vercel Sandbox 服務
- 加密:JWE 用於會話,每位使用者的
ENCRYPTION_KEY用於 API 金鑰/權杖
任務執行步驟(逐步)
- 建立任務 → 儲存在資料庫中。
- 產生分支名(非同步)→ 透過 AI SDK 5 + AI Gateway。
- 啟動沙箱 → 使用目標倉庫。
- 在沙箱中啟動所選代理 → 讀取提示並修改檔案。
- 提交並推送 → 將變更推送到 AI 產生的分支。
- 清理 – 沙箱立即關閉(Keep-Alive 關閉)或保持運行直到逾時(Keep-Alive 開啟)。
設定亮點
- 環境變數(部署必需):
POSTGRES_URL– Neon 連接字串(Vercel 部署時自動填入)。SANDBOX_VERCEL_TOKEN、SANDBOX_VERCEL_TEAM_ID、SANDBOX_VERCEL_PROJECT_ID– Vercel 沙箱憑證。JWE_SECRET和ENCRYPTION_KEY– 用於加密會話和使用者秘密。NEXT_PUBLIC_AUTH_PROVIDERS– 啟用的 OAuth 提供者(github、vercel或兩者)。- 啟用提供者的 OAuth 客戶端 ID/密鑰。
- 可選 API 金鑰 – 可全域或按使用者設定(Anthropic、OpenAI、Cursor、Gemini、AI Gateway)。
- 限制 –
MAX_SANDBOX_DURATION(預設 5 小時)和MAX_MESSAGES_PER_DAY(預設 5)控制資源使用。
誰可能使用此項目?
- 希望在多個倉庫中快速進行 AI 驅動的程式碼重構、錯誤修復或功能新增的 開發者。
- 希望為每位成員提供獨立隔離 AI 編碼助手而不共享憑證的 團隊。
- 需要快速、一鍵部署 AI 編碼代理的 產品示範 / 黑客松。
貢獻與擴展
此倉儲遵循典型的 Next.js 單體倉儲結構。要新增代理,請執行以下步驟:
- 安裝 CLI 二進位檔。
- 在伺服器端任務執行器中新增呼叫 CLI 的包裝器。
- 為新代理暴露 UI 選擇器。
所有資料庫變更均透過 Drizzle 迁移管理(
pnpm db:generate、pnpm db:push)。
安全注意事項(來自 README)
- 永遠不要提交
.env檔案。 - 定期輪換 API 金鑰。
- 沙箱隔離可防止程式碼存取主機資源,但避免記錄敏感資訊。
- 每位使用者的 GitHub 權杖以加密形式靜態儲存。
總結:編碼代理範本是一個完整的全端、Vercel 托管的啟動專案,結合了現代 Web 工具與多個基於 LLM 的編碼代理,為使用者提供一個安全、多使用者的平台,可在任何倉儲上執行 AI 生成的程式碼變更。它可透過一鍵部署或本機執行進行開發。
相關
- 專案
- 專案
- 專案
- 專案
- 專案