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 表進行作用域劃分。
保持運行 可選設定,任務完成後仍保持沙箱運行,以便使用者發送後續訊息或執行開發伺服器。

快速開始

  1. 點擊 README 中的 Deploy with Vercel 按鈕 – Vercel 將自動建立 Neon Postgres 資料庫並設定專案。
  2. 在 Vercel 仪表板中,新增至少一個 OAuth 提供者(GitHub 或 Vercel),並填入所需的密鑰(JWE_SECRETENCRYPTION_KEY、沙箱權杖等)。
  3. 開啟部署後的 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 金鑰/權杖

任務執行步驟(逐步)

  1. 建立任務 → 儲存在資料庫中。
  2. 產生分支名(非同步)→ 透過 AI SDK 5 + AI Gateway。
  3. 啟動沙箱 → 使用目標倉庫。
  4. 在沙箱中啟動所選代理 → 讀取提示並修改檔案。
  5. 提交並推送 → 將變更推送到 AI 產生的分支。
  6. 清理 – 沙箱立即關閉(Keep-Alive 關閉)或保持運行直到逾時(Keep-Alive 開啟)。

設定亮點

  • 環境變數(部署必需):
    • POSTGRES_URL – Neon 連接字串(Vercel 部署時自動填入)。
    • SANDBOX_VERCEL_TOKENSANDBOX_VERCEL_TEAM_IDSANDBOX_VERCEL_PROJECT_ID – Vercel 沙箱憑證。
    • JWE_SECRETENCRYPTION_KEY – 用於加密會話和使用者秘密。
    • NEXT_PUBLIC_AUTH_PROVIDERS – 啟用的 OAuth 提供者(githubvercel 或兩者)。
    • 啟用提供者的 OAuth 客戶端 ID/密鑰。
  • 可選 API 金鑰 – 可全域或按使用者設定(Anthropic、OpenAI、Cursor、Gemini、AI Gateway)。
  • 限制MAX_SANDBOX_DURATION(預設 5 小時)和 MAX_MESSAGES_PER_DAY(預設 5)控制資源使用。

誰可能使用此項目?

  • 希望在多個倉庫中快速進行 AI 驅動的程式碼重構、錯誤修復或功能新增的 開發者
  • 希望為每位成員提供獨立隔離 AI 編碼助手而不共享憑證的 團隊
  • 需要快速、一鍵部署 AI 編碼代理的 產品示範 / 黑客松

貢獻與擴展

此倉儲遵循典型的 Next.js 單體倉儲結構。要新增代理,請執行以下步驟:

  1. 安裝 CLI 二進位檔。
  2. 在伺服器端任務執行器中新增呼叫 CLI 的包裝器。
  3. 為新代理暴露 UI 選擇器。 所有資料庫變更均透過 Drizzle 迁移管理(pnpm db:generatepnpm db:push)。

安全注意事項(來自 README)

  • 永遠不要提交 .env 檔案。
  • 定期輪換 API 金鑰。
  • 沙箱隔離可防止程式碼存取主機資源,但避免記錄敏感資訊。
  • 每位使用者的 GitHub 權杖以加密形式靜態儲存。

總結:編碼代理範本是一個完整的全端、Vercel 托管的啟動專案,結合了現代 Web 工具與多個基於 LLM 的編碼代理,為使用者提供一個安全、多使用者的平台,可在任何倉儲上執行 AI 生成的程式碼變更。它可透過一鍵部署或本機執行進行開發。

相關

  • 專案
  • 專案
  • 專案
  • 專案
  • 專案