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 生成的代码变更。它可通过一键部署或本地运行进行开发。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目