coding-agent-template

GitHub
1.7k 273 较难 1 次阅读 今天NOASSERTION语言模型Agent
AI 解读 由 AI 自动生成,仅供参考

coding-agent-template 是一个基于 Vercel Sandbox 和 AI Gateway 构建的多智能体 AI 编程平台模板。它旨在解决开发者在自动化执行代码任务时面临的环境配置复杂、多模型切换困难以及安全隔离不足等痛点。通过集成 Claude Code、OpenAI Codex、GitHub Copilot、Cursor 等多种主流 AI 编程工具,用户只需输入仓库链接和任务描述,即可在安全的隔离沙箱中自动完成代码生成、依赖安装及分支提交全流程。

这款工具特别适合希望快速搭建私有化 AI 编程助手团队的开发者、技术负责人及开源项目维护者。其独特亮点在于原生支持 Vercel Sandbox,确保所有代码执行均在隔离环境中进行,保障安全性;同时内置 AI Gateway,可灵活路由不同大模型并监控调用情况。此外,它还具备自动生成语义化 Git 分支名、实时任务进度追踪以及多用户数据隔离等企业级功能。借助一键部署能力,配合 Next.js 与 Tailwind CSS 打造的现代化界面,团队能轻松拥有专属的智能化编码工作流,显著提升研发效率。

使用场景

某电商初创团队的后端工程师需要在周五下班前紧急修复多个微服务中的安全漏洞,并统一更新依赖库。

没有 coding-agent-template 时

  • 环境配置繁琐:工程师需在本地手动安装多种 AI CLI 工具(如 Claude Code、Copilot CLI),并为每个工具单独配置 API Key 和环境变量,耗时且易出错。
  • 安全风险高:直接在本地机器运行未知来源的 AI 生成代码,若代码包含恶意逻辑或破坏性指令,极易污染本地开发环境甚至泄露敏感数据。
  • 协作与追踪困难:团队成员各自为战,缺乏统一的任务看板,无法实时查看谁在处理哪个仓库的什么任务,进度全靠口头同步。
  • 分支管理混乱:AI 生成的代码往往直接提交到主分支或命名随意的临时分支,后续合并代码时需要花费大量时间清理和重构 Git 历史。

使用 coding-agent-template 后

  • 一键多模型调度:团队通过统一的 Web 界面即可按需切换 Claude Code 或 Gemini 等不同代理,无需本地配置,系统自动通过 Vercel AI Gateway 路由请求。
  • 沙箱隔离执行:所有代码修复任务均在 Vercel Sandbox 提供的隔离环境中自动运行,即使代码有误也仅影响临时沙箱,彻底保障本地主机安全。
  • 全流程可视化:管理者可在仪表盘实时监控每个任务的日志输出和状态,成员间任务分配清晰,支持多用户独立存储任务历史与凭证。
  • 智能 Git 工作流:系统自动根据任务内容生成语义清晰的 Git 分支名(如 fix/auth-security-vuln),完成编码后自动提交,极大简化了代码审查与合并流程。

coding-agent-template 将分散、高风险的本地 AI 编码操作转化为集中、安全且可协作的云端自动化工作流,显著提升了研发团队的交付效率与安全性。

运行环境要求

操作系统
  • Linux
  • macOS
  • Windows
GPU

未说明

内存

未说明

依赖
notes该工具是一个基于 Next.js 的 Web 应用模板,而非本地运行的 Python AI 模型。主要依赖 Node.js 环境(使用 pnpm 包管理器)和 PostgreSQL 数据库。核心功能依赖 Vercel Sandbox 进行代码隔离执行,需配置 Vercel API Token、Team ID 和 Project ID。支持多种 AI 编程助手(如 Claude Code, Codex CLI 等)作为后端代理,需自行配置对应服务的 API Key。认证方面需配置 GitHub 或 Vercel 的 OAuth 凭证。
python未说明
Next.js 15
React 19
Tailwind CSS
Drizzle ORM
AI SDK 5
PostgreSQL (Neon)
pnpm
Vercel Sandbox
coding-agent-template hero image

快速开始

编码代理模板

这是一个用于构建 AI 驱动编码代理的模板,支持 Claude Code、OpenAI 的 Codex CLI、GitHub Copilot CLI、Cursor CLI、Google Gemini CLI 以及 opencode,并结合 Vercel Sandbox 自动在您的代码库上执行编码任务。

编码代理模板截图

部署您自己的版本

您可以一键将编码代理模板部署到 Vercel:

使用 Vercel 部署

部署过程中会发生什么:

  • 自动数据库设置:会自动创建一个 Neon Postgres 数据库并连接到您的项目。
  • 环境变量配置:系统会提示您提供所需的环境变量(Vercel 凭证和加密密钥)。
  • OAuth 设置:部署完成后,您需要在项目设置中配置至少一个 OAuth 提供者(GitHub 或 Vercel),以便进行用户身份验证。

功能特性

  • 多代理支持:可选择 Claude Code、OpenAI Codex CLI、GitHub Copilot CLI、Cursor CLI、Google Gemini CLI 或 opencode 来执行编码任务。
  • 用户身份验证:通过 GitHub 或 Vercel OAuth 安全登录。
  • 多用户支持:每个用户拥有独立的任务、API 密钥和 GitHub 连接。
  • Vercel Sandbox:在隔离且安全的沙盒中运行代码(文档)。
  • AI 网关集成:专为与 Vercel AI 网关 无缝集成而设计,实现模型路由和可观性。
  • AI 生成分支名称:利用 AI SDK 5 和 AI 网关自动生成描述性的 Git 分支名称。
  • 任务管理:实时更新任务进度。
  • 持久化存储:任务存储在 Neon Postgres 数据库中。
  • Git 集成:自动创建分支并提交更改。
  • 现代化 UI:采用 Next.js 和 Tailwind CSS 构建的简洁、响应式界面。
  • MCP 服务器支持:可将 MCP 服务器连接到 Claude Code,以扩展功能(仅限 Claude)。

快速入门

有关详细的设置说明,请参阅下方的 本地开发设置 部分。

简而言之:

  1. 点击上方的“使用 Vercel 部署”按钮(自动设置数据库!)
  2. 在项目设置中配置 OAuth(GitHub 或 Vercel)。
  3. 用户登录并开始创建任务。

或者在本地运行:

git clone https://github.com/vercel-labs/coding-agent-template.git
cd coding-agent-template
pnpm install
# 设置 .env.local 文件,填入所需变量
pnpm db:push
pnpm dev

使用方法

  1. 登录:使用 GitHub 或 Vercel 进行身份验证。
  2. 创建任务:输入代码库 URL 并描述您希望 AI 执行的操作。
  3. 监控进度:查看代理执行过程中的实时日志。
  4. 审查结果:查看所做的更改及创建的分支。
  5. 管理任务:在侧边栏中查看所有任务及其状态更新。

任务配置

最大时长

最大时长设置控制着 Vercel 沙盒从创建时刻起保持活跃的时间长度。您可以选择从 5 分钟到 5 小时不等的超时时间。

  • 沙盒在任务开始时创建。
  • 超时计时从沙盒创建时开始。
  • 所有工作(代理执行、依赖项安装等)都在此时间内完成。
  • 当达到超时时长时,沙盒会自动过期。

保持活跃设置

“保持活跃”设置决定了任务完成后沙盒的后续行为。

保持活跃关闭(默认)

当“保持活跃”关闭时,沙盒会在任务完成后立即关闭:

时间线:

  1. 任务开始,沙盒创建(例如,设置 1 小时超时)。
  2. 代理执行您的任务。
  3. 任务成功完成(例如,10 分钟后)。
  4. 更改被提交并推送到分支。
  5. 沙盒立即关闭(销毁所有进程和环境)。
  6. 任务标记为已完成。

建议在以下情况下关闭“保持活跃”:

  • 您只需进行一次性代码更改,无需迭代。
  • 您的任务简单且一次就能完成。
  • 您希望最大限度地减少资源使用和成本。
  • 您不需要在任务完成后对代码进行测试或手动交互。

保持活跃开启

当“保持活跃”开启时,沙盒会在任务完成后继续存活剩余时间:

时间线:

  1. 任务开始,沙盒创建(例如,设置 1 小时超时)。
  2. 代理执行您的任务。
  3. 任务成功完成(例如,10 分钟后)。
  4. 更改被提交并推送到分支。
  5. 沙盒保持活跃,所有进程仍在运行。
  6. 您可以在接下来的 50 分钟内发送后续消息(直到 1 小时超时结束)。
  7. 如果项目中有开发服务器(例如 npm run dev),它会自动在后台启动。
  8. 达到完整超时时长后,沙盒过期。

建议在以下情况下开启“保持活跃”:

  • 您需要通过后续消息对代码进行迭代。
  • 您希望在实时沙盒环境中测试更改。
  • 您预计可能需要进一步优化或修复问题。
  • 您希望在任务完成后手动运行命令或检查环境。
  • 您正在开发 Web 应用程序,并希望看到其运行效果。

对比

设置 任务完成时间为 10 分钟 沙盒剩余时间 是否可以发送后续消息? 开发服务器是否启动?
保持活跃开启 沙盒保持活跃 50 分钟(直至超时) 是(如有可用)
保持活跃关闭 沙盒立即关闭 0 分钟

注意: 最大时长超时始终优先。如果您设置了 1 小时超时,无论“保持活跃”设置如何,沙盒都将在 1 小时后过期。因此,“保持活跃”仅决定沙盒是在任务完成后提前关闭,还是在超时前继续保持活跃。

工作原理

  1. 任务创建:当你提交一个任务时,它会被存储在数据库中。
  2. AI 分支名称生成:AI SDK 5 + AI Gateway 会根据你的任务自动生成一个描述性的分支名称(使用 Next.js 15 的 after() 实现非阻塞操作)。
  3. 沙盒设置:系统会基于你的仓库创建一个 Vercel 沙盒。
  4. 代理执行:你选择的编码代理(Claude Code、Codex CLI、GitHub Copilot CLI、Cursor CLI、Gemini CLI 或 opencode)会分析你的提示并进行更改。
  5. Git 操作:更改会被提交并推送到由 AI 生成的分支上。
  6. 清理:沙盒会被关闭以释放资源。

AI 分支名称生成

系统会使用 AI SDK 5 和 Vercel AI Gateway 自动为 Git 分支生成描述性名称。该功能具有以下特点:

  • 非阻塞:利用 Next.js 15 的 after() 函数生成分支名称,不会延迟任务创建。
  • 描述性强:能够生成如 feature/user-authentication-A1b2C3fix/memory-leak-parser-X9y8Z7 等有意义的分支名称。
  • 无冲突:通过添加 6 位字母数字哈希值来避免命名冲突。
  • 回退机制:如果 AI 生成失败,会优雅地回退到基于时间戳的名称。
  • 上下文感知:结合任务描述、仓库名称和代理上下文,生成更优质的分支名称。

分支名称示例

  • feature/add-user-auth-K3mP9n(用于“添加 JWT 用户认证”)
  • fix/resolve-memory-leak-B7xQ2w(用于“修复图像处理中的内存泄漏”)
  • chore/update-deps-M4nR8s(用于“更新所有项目依赖”)
  • docs/api-endpoints-F9tL5v(用于“记录 REST API 端点”)

技术栈

  • 前端:Next.js 15、React 19、Tailwind CSS
  • UI 组件:shadcn/ui
  • 数据库:PostgreSQL 结合 Drizzle ORM
  • AI SDK:AI SDK 5,集成 Vercel AI Gateway
  • AI 代理:Claude Code、OpenAI Codex CLI、GitHub Copilot CLI、Cursor CLI、Google Gemini CLI、opencode
  • 沙盒Vercel 沙盒
  • 认证:Next Auth(支持 GitHub/Vercel 的 OAuth 认证)
  • Git:自动化分支与提交,采用 AI 生成的分支名称。

MCP 服务器支持

连接 MCP 服务器可以扩展 Claude Code 的工具和集成能力。目前仅支持 Claude Code 代理。

如何添加 MCP 服务器

  1. 进入“Connectors”选项卡,点击“Add MCP Server”。
  2. 输入服务器详细信息(名称、基础 URL,可选 OAuth 凭证)。
  3. 如果使用 OAuth,请确保在环境变量中设置了 ENCRYPTION_KEY

注意:当使用带有 OAuth 认证的 MCP 服务器时,ENCRYPTION_KEY 是必需的。

本地开发设置

1. 克隆仓库

git clone https://github.com/vercel-labs/coding-agent-template.git
cd coding-agent-template

2. 安装依赖

pnpm install

3. 设置环境变量

创建一个 .env.local 文件,并填写你的配置:

必需环境变量(应用基础设施)

这些变量由你(应用开发者)一次性设置,用于核心基础设施:

  • POSTGRES_URL:你的 PostgreSQL 连接字符串(部署到 Vercel 时,Neon 集成会自动提供;本地开发则需手动设置)。
  • SANDBOX_VERCEL_TOKEN:你的 Vercel API 令牌(用于创建沙盒)。
  • SANDBOX_VERCEL_TEAM_ID:你的 Vercel 团队 ID(用于沙盒创建)。
  • SANDBOX_VERCEL_PROJECT_ID:你的 Vercel 项目 ID(用于沙盒创建)。
  • JWE_SECRET:用于会话加密的 Base64 编码密钥(可通过命令 openssl rand -base64 32 生成)。
  • ENCRYPTION_KEY:用于加密用户 API 密钥和令牌的 32 字节十六进制字符串(可通过命令 openssl rand -hex 32 生成)。

注意:使用“Deploy with Vercel”按钮部署时,数据库会通过 Neon 自动 provision,POSTGRES_URL 也会为你设置好。而在本地开发环境中,则需要你自行提供数据库连接字符串。

用户认证(必填)

必须至少配置一种认证方式(Vercel 或 GitHub):

配置启用的提供商
  • NEXT_PUBLIC_AUTH_PROVIDERS:启用的认证提供商列表,用逗号分隔。
    • "github":仅 GitHub(默认)。
    • "vercel":仅 Vercel。
    • "github,vercel":同时启用两种认证方式。

示例:

# 仅 GitHub 认证(默认)
NEXT_PUBLIC_AUTH_PROVIDERS=github

# 仅 Vercel 认证
NEXT_PUBLIC_AUTH_PROVIDERS=vercel

# 同时启用 GitHub 和 Vercel 认证
NEXT_PUBLIC_AUTH_PROVIDERS=github,vercel
提供商配置

选项 1:使用 Vercel 登录(若 vercelNEXT_PUBLIC_AUTH_PROVIDERS 中):

  • NEXT_PUBLIC_VERCEL_CLIENT_ID:你的 Vercel OAuth 应用客户端 ID(暴露给客户端)。
  • VERCEL_CLIENT_SECRET:你的 Vercel OAuth 应用客户端密钥。

选项 2:使用 GitHub 登录(若 githubNEXT_PUBLIC_AUTH_PROVIDERS 中):

  • NEXT_PUBLIC_GITHUB_CLIENT_ID:你的 GitHub OAuth 应用客户端 ID(暴露给客户端)。
  • GITHUB_CLIENT_SECRET:你的 GitHub OAuth 应用客户端密钥。

注意:只有在 NEXT_PUBLIC_AUTH_PROVIDERS 中列出的提供商才会出现在登录对话框中。对于每个启用的提供商,你都必须提供相应的 OAuth 凭证。

API 密钥(可选,可按用户设置)

这些 API 密钥可以全局设置(作为所有用户的默认值),也可以不设置,从而要求用户各自提供自己的密钥:

  • ANTHROPIC_API_KEY:Claude 代理的 Anthropic API 密钥(用户可在个人资料中覆盖)。
  • AI_GATEWAY_API_KEY:用于分支名称生成和 Codex 的 AI Gateway API 密钥(用户可在个人资料中覆盖)。
  • CURSOR_API_KEY:用于 Cursor 代理的支持(用户可在个人资料中覆盖)。
  • GEMINI_API_KEY:用于 Google Gemini 代理的支持(用户可在个人资料中覆盖)。
  • OPENAI_API_KEY:用于 Codex 和 OpenCode 代理的支持(用户可在个人资料中覆盖)。

注意:用户可以在个人资料中提供自己的 API 密钥,这些密钥将优先于全局环境变量。

GitHub 仓库访问权限

  • GITHUB_TOKEN已不再需要! 用户现在通过自己的 GitHub 账户进行认证。
    • 使用 GitHub 登录的用户会通过其 OAuth 令牌直接获得仓库访问权限。
    • 使用 Vercel 登录的用户则需要在个人资料中绑定 GitHub 账户,才能访问仓库。

认证工作原理:

  • GitHub 登录:用户通过其 GitHub OAuth 令牌立即获得仓库访问权限。
  • Vercel 登录:用户需在个人资料中绑定 GitHub 账户,方可操作仓库。
  • 身份合并:如果用户先使用 Vercel 登录,随后绑定 GitHub 账户,再直接使用 GitHub 登录,系统会识别为同一用户,不会产生重复账户。

可选环境变量

  • NPM_TOKEN:用于私有 npm 包。
  • MAX_SANDBOX_DURATION:沙盒的最大运行时长(分钟),默认为 300 分钟(即 5 小时)。
  • MAX_MESSAGES_PER_DAY:每位用户每天允许的最大任务数及后续跟进次数,默认为 5

4. 设置 OAuth 应用程序

根据你的 NEXT_PUBLIC_AUTH_PROVIDERS 配置,你需要创建 OAuth 应用程序:

GitHub OAuth 应用程序(如果使用 GitHub 身份验证)

  1. 前往 GitHub 开发者设置
  2. 点击“新建 OAuth 应用”
  3. 填写详细信息:
    • 应用名称:你的应用名称(例如:“我的编码助手”)
    • 主页 URLhttp://localhost:3000(或你的生产环境 URL)
    • 授权回调 URLhttp://localhost:3000/api/auth/github/callback
  4. 点击“注册应用”
  5. 复制 客户端 ID → 用于 NEXT_PUBLIC_GITHUB_CLIENT_ID
  6. 点击“生成新的客户端密钥”→ 复制并用于 GITHUB_CLIENT_SECRET

所需作用域:该应用将请求 repo 作用域以访问仓库。

Vercel OAuth 应用程序(如果使用 Vercel 身份验证)

  1. 前往你的 Vercel 控制台
  2. 导航到设置 → 集成 → 创建
  3. 配置集成:
    • 重定向 URLhttp://localhost:3000/api/auth/callback/vercel
  4. 复制 客户端 ID → 用于 NEXT_PUBLIC_VERCEL_CLIENT_ID
  5. 复制 客户端密钥 → 用于 VERCEL_CLIENT_SECRET

生产部署:记得在部署时添加生产环境的回调 URL(例如:https://yourdomain.com/api/auth/github/callback

5. 设置数据库

生成并运行数据库迁移:

pnpm db:generate
pnpm db:push

6. 启动开发服务器

pnpm dev

在浏览器中打开 http://localhost:3000

开发

数据库操作

# 生成迁移
pnpm db:generate

# 推送模式更改
pnpm db:push

# 打开 Drizzle Studio
pnpm db:studio

运行应用

# 开发
pnpm dev

# 构建生产环境
pnpm build

# 启动生产服务器
pnpm start

贡献

  1. 分支仓库
  2. 创建功能分支
  3. 进行修改
  4. 全面测试
  5. 提交拉取请求

安全注意事项

  • 环境变量:切勿将 .env 文件提交到版本控制中。所有敏感数据应存储在环境变量中。
  • API 密钥:定期轮换 API 密钥,并遵循最小权限原则。
  • 数据库访问:确保 PostgreSQL 数据库使用强凭据进行妥善保护。
  • Vercel 沙盒:沙盒是隔离的,但请确保不要在日志或输出中暴露敏感数据。
  • 用户身份验证:每个用户使用自己的 GitHub 令牌访问仓库——不共享凭据。
  • 加密:所有敏感数据(令牌、API 密钥)均采用基于用户的加密技术进行静态加密。

更改记录

版本 2.0.0 - 重大更新:用户身份验证与安全性

此版本引入了 用户身份验证重大安全改进,但包含需要现有部署迁移的 破坏性变更

新特性

  • 用户身份验证系统

    • 使用 Vercel 登录
    • 使用 GitHub 登录
    • 带有加密令牌的会话管理
    • 用户个人资料管理
  • 多用户支持

    • 每个用户拥有自己的任务和连接器
    • 用户可以管理自己的 API 密钥(Anthropic、OpenAI、Cursor、Gemini、AI Gateway)
    • 可连接 GitHub 账户以访问仓库
  • 安全增强

    • 基于用户的 GitHub 身份验证——每位用户使用自己的 GitHub 令牌,而非共享凭据
    • 所有敏感数据(令牌、API 密钥、环境变量)均采用静态加密
    • 基于会话的身份验证,使用 JWT 加密
    • 基于用户的授权——用户只能访问属于自己的资源
  • 数据库增强

    • 新增 users 表,用于存储用户个人资料和 OAuth 账户
    • 新增 accounts 表,用于关联账户(例如,Vercel 用户连接 GitHub)
    • 新增 keys 表,用于存储用户提供的 API 密钥
    • 外键关系确保数据完整性
    • 支持软删除任务

破坏性变更

如果从 v1.x 升级,需采取以下措施:

  1. 数据库模式变更

    • tasks 表现在需要 userId(外键指向 users.id
    • connectors 表现在需要 userId(外键指向 users.id
    • connectors.envjsonb 改为加密的 text
    • 新增 tasks.deletedAt 字段,用于软删除
  2. API 变更

    • 所有 API 端点现在都需要身份验证
    • 创建任务时,请求体中必须包含 userId
    • 任务现在按用户所有权进行筛选
    • 访问 GitHub API 时,使用用户自己的 GitHub 令牌(不再使用共享令牌作为备用)
  3. 环境变量

    • 新增必填变量:

      • JWE_SECRET:Base64 编码的会话加密密钥(生成方法:openssl rand -base64 32
      • ENCRYPTION_KEY:32 字节的十六进制字符串,用于加密敏感数据(生成方法:openssl rand -hex 32
      • NEXT_PUBLIC_AUTH_PROVIDERS:配置启用哪些身份验证提供商(githubvercel,或两者同时)
    • 新增 OAuth 配置(至少需配置一项):

      • GitHub:NEXT_PUBLIC_GITHUB_CLIENT_IDGITHUB_CLIENT_SECRET
      • Vercel:NEXT_PUBLIC_VERCEL_CLIENT_IDVERCEL_CLIENT_SECRET
    • 身份验证变更:

      • GITHUB_TOKEN 不再作为 API 路由中的备用令牌
      • 用户必须连接自己的 GitHub 账户才能访问仓库
      • 每个用户仅使用自己的 GitHub 令牌发起请求
  4. 强制身份验证

    • 所有路由现在都需要用户身份验证
    • 不再允许匿名访问任务或 API 端点
    • 用户必须先使用 GitHub 或 Vercel 登录,才能创建任务

现有部署迁移指南

如果你要从 v1.x 升级到 v2.0.0,请按照以下步骤操作:

步骤 1:备份数据库
# 创建现有数据库的备份
pg_dump $POSTGRES_URL > backup-before-v2-migration.sql
步骤 2:添加必要的环境变量

将以下新变量添加到你的 .env.local 文件或 Vercel 项目设置中:

# 会话加密(必填)
JWE_SECRET=$(openssl rand -base64 32)
ENCRYPTION_KEY=$(openssl rand -hex 32)

# 配置身份验证提供商(必填——至少选择一个)
NEXT_PUBLIC_AUTH_PROVIDERS=github  # 或 "vercel" 或 "github,vercel"

# 如果使用 GitHub 身份验证
NEXT_PUBLIC_GITHUB_CLIENT_ID=your_github_client_id
GITHUB_CLIENT_SECRET=your_github_client_secret

# 如果使用 Vercel 身份验证
NEXT_PUBLIC_VERCEL_CLIENT_ID=your_vercel_client_id
VERCEL_CLIENT_SECRET=your_vercel_client_secret
步骤 3:设置 OAuth 应用程序

为所选的身份验证提供商创建 OAuth 应用程序。详细说明请参阅“本地开发设置”部分。

步骤 4:准备数据库迁移

在运行迁移之前,你需要处理现有数据:

选项 A:全新开始(建议用于开发环境)

如果你不需要保留生产数据:


# 删除现有表并从头开始
pnpm db:push --force

# 这将创建所有具有正确结构的新表

选项 B:保留现有数据(生产环境)

如果您需要保留现有的任务/连接器:

  1. 先创建一个系统用户:
-- 连接到您的数据库并执行:
INSERT INTO users (id, provider, external_id, access_token, username, email, created_at, updated_at, last_login_at)
VALUES (
  'system-user-migration',
  'github',
  'system-migration',
  'encrypted-placeholder-token',  -- 您需要加密一个占位符令牌
  '系统迁移用户',
  NULL,
  NOW(),
  NOW(),
  NOW()
);
  1. 更新现有记录:
-- 为现有任务添加 userId
ALTER TABLE tasks ADD COLUMN user_id TEXT;
UPDATE tasks SET user_id = 'system-user-migration' WHERE user_id IS NULL;
ALTER TABLE tasks ALTER COLUMN user_id SET NOT NULL;
ALTER TABLE tasks ADD CONSTRAINT tasks_user_id_fkey FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE;

-- 为现有连接器添加 userId
ALTER TABLE connectors ADD COLUMN user_id TEXT;
UPDATE connectors SET user_id = 'system-user-migration' WHERE user_id IS NULL;
ALTER TABLE connectors ALTER COLUMN user_id SET NOT NULL;
ALTER TABLE connectors ADD CONSTRAINT connectors_user_id_fkey FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE;

-- 将连接器的 env 从 jsonb 转换为加密文本(需要在应用层进行加密)
-- 注意:您需要使用 ENCRYPTION_KEY 手动加密现有的 env 值
  1. 运行标准迁移:
pnpm db:generate
pnpm db:push
步骤 5:更新代码

拉取最新更改:

git pull origin main
pnpm install
步骤 6:测试认证
  1. 启动开发服务器:pnpm dev
  2. 访问 http://localhost:3000
  3. 使用您配置的 OAuth 提供商登录
  4. 验证您可以创建和查看任务
步骤 7:验证安全修复

确认以下内容:

  • 用户只能查看自己的任务
  • 文件差异/文件相关端点需要 GitHub 连接
  • 没有 GitHub 连接的用户会看到“需要 GitHub 认证”的错误提示
  • API 路由中未使用 GITHUB_TOKEN 备用机制

重要注意事项

  • 所有用户在此升级后都需要登录——不再支持匿名访问。
  • 使用选项 B 迁移时,现有任务将归系统用户所有。
  • 如果用户之前通过 Vercel 登录,则必须连接 GitHub 才能访问仓库。
  • API 密钥现在可以按用户设置——用户可以在个人资料中覆盖全局 API 密钥。
  • API 的重大变更:如果有外部集成调用您的 API,它们需要更新以包含认证信息。

常见问题

相似工具推荐

openclaw

OpenClaw 是一款专为个人打造的本地化 AI 助手,旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚,能够直接接入你日常使用的各类通讯渠道,包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息,OpenClaw 都能即时响应,甚至支持在 macOS、iOS 和 Android 设备上进行语音交互,并提供实时的画布渲染功能供你操控。 这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地,用户无需依赖云端服务即可享受快速、私密的智能辅助,真正实现了“你的数据,你做主”。其独特的技术亮点在于强大的网关架构,将控制平面与核心助手分离,确保跨平台通信的流畅性与扩展性。 OpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者,以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力(支持 macOS、Linux 及 Windows WSL2),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你

349.3k|★★★☆☆|1周前
Agent开发框架图像

stable-diffusion-webui

stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。

162.1k|★★★☆☆|1周前
开发框架图像Agent

everything-claude-code

everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上

159.3k|★★☆☆☆|今天
开发框架Agent语言模型

opencode

OpenCode 是一款开源的 AI 编程助手(Coding Agent),旨在像一位智能搭档一样融入您的开发流程。它不仅仅是一个代码补全插件,而是一个能够理解项目上下文、自主规划任务并执行复杂编码操作的智能体。无论是生成全新功能、重构现有代码,还是排查难以定位的 Bug,OpenCode 都能通过自然语言交互高效完成,显著减少开发者在重复性劳动和上下文切换上的时间消耗。 这款工具专为软件开发者、工程师及技术研究人员设计,特别适合希望利用大模型能力来提升编码效率、加速原型开发或处理遗留代码维护的专业人群。其核心亮点在于完全开源的架构,这意味着用户可以审查代码逻辑、自定义行为策略,甚至私有化部署以保障数据安全,彻底打破了传统闭源 AI 助手的“黑盒”限制。 在技术体验上,OpenCode 提供了灵活的终端界面(Terminal UI)和正在测试中的桌面应用程序,支持 macOS、Windows 及 Linux 全平台。它兼容多种包管理工具,安装便捷,并能无缝集成到现有的开发环境中。无论您是追求极致控制权的资深极客,还是渴望提升产出的独立开发者,OpenCode 都提供了一个透明、可信

144.3k|★☆☆☆☆|昨天
Agent插件

ComfyUI

ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。

108.3k|★★☆☆☆|1周前
开发框架图像Agent

gemini-cli

gemini-cli 是一款由谷歌推出的开源 AI 命令行工具,它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言,它提供了一条从输入提示词到获取模型响应的最短路径,无需切换窗口即可享受智能辅助。 这款工具主要解决了开发过程中频繁上下文切换的痛点,让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用,还是执行复杂的 Git 操作,gemini-cli 都能通过自然语言指令高效处理。 它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口,具备出色的逻辑推理能力;内置 Google 搜索、文件操作及 Shell 命令执行等实用工具;更独特的是,它支持 MCP(模型上下文协议),允许用户灵活扩展自定义集成,连接如图像生成等外部能力。此外,个人谷歌账号即可享受免费的额度支持,且项目基于 Apache 2.0 协议完全开源,是提升终端工作效率的理想助手。

100.8k|★★☆☆☆|1周前
插件Agent图像