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