AI
open-agents
open-agents

Vercel Open Agents:在云端运行无限循环的编程 Agent

来源: GitHub https://github.com/vercel-labs/open-agents (opens in a new tab) 官方文档: https://open-agents.dev (opens in a new tab) 收集日期: 2026-04-14 状态: 待深化


项目简介

Open Agents 是 Vercel 开源的参考实现项目,用于在 Vercel 平台上构建和运行"后台编程 Agent"。核心理念是:描述任务,让 AI Agent 在云端自主执行直到完成

"Spawn coding agents that run infinitely in the cloud."

项目地址:https://github.com/vercel-labs/open-agents (opens in a new tab) License:MIT


一、能干什么?(用户视角)

典型使用场景

用户通过聊天界面描述任务,Agent 在云端自主完成,全程不需要人介入。官网 Demo 展示了一个典型的认证系统实现过程:

用户:"给项目添加 auth 登录流程"

Agent 自动:
1. grep 分析现有代码中的认证模式
2. 读取 auth/route.ts、auth/callback/route.ts 等文件
3. 编写新的路由代码
4. 修改 middleware 配置
5. 运行 tsc 类型检查
6. 自动 commit + push → 创建 PR

核心能力清单

能力说明
聊天驱动编程用自然语言描述需求,Agent 全程自动执行
持久化运行不受 HTTP 请求超时限制,可跑几小时
代码执行沙盒完整的文件系统 + 网络 + 运行时权限
克隆 GitHub 仓库把你的项目拉进沙盒直接改
自动 commit/PR完成后自动提交代码,创建 Pull Request
Session 分享只读链接分享 Agent 工作过程
语音输入接入 ElevenLabs,说话即可下任务
多模型支持Claude / GPT / Gemini 可切换

支持安全审批机制

Agent 执行 Shell 命令时有分级策略:

  • 自动执行(只读命令):lsfindgrepgit status
  • 需要审批(危险命令):rmmvchmodnpm install、含管道/重定向的命令等
  • 子 Agent 同样受约束,不会绕过安全规则

二、怎么使用?(用户操作流程)

部署到自己的 Vercel

快速方式:Vercel 提供一键部署按钮,自动集成 PostgreSQL(Neon)+ KV(Upstash)。

手动步骤

  1. Fork 仓库到自己的 GitHub
  2. 创建 PostgreSQL 数据库(Neon 免费层够用)
  3. 生成加密密钥:openssl rand -base64 32
  4. 在 Vercel 导入项目,填入环境变量
  5. 获取生产域名
  6. 创建 Vercel OAuth App(用于登录)
  7. 可选:创建 GitHub App(用于 PR 自动创建)
  8. 重新部署

环境变量速查

最小配置(仅能启动)

POSTGRES_URL=        # PostgreSQL 连接字符串
JWE_SECRET=          # openssl rand -base64 32

开启登录

ENCRYPTION_KEY=
NEXT_PUBLIC_VERCEL_APP_CLIENT_ID=
VERCEL_APP_CLIENT_SECRET=

开启 GitHub 集成(自动 PR)

NEXT_PUBLIC_GITHUB_CLIENT_ID=
GITHUB_CLIENT_SECRET=
GITHUB_APP_ID=
GITHUB_APP_PRIVATE_KEY=
NEXT_PUBLIC_GITHUB_APP_SLUG=
GITHUB_WEBHOOK_SECRET=

可选增强

REDIS_URL / KV_URL=                    # Skills 元数据缓存
VERCEL_SANDBOX_BASE_SNAPSHOT_ID=       # 自定义 Sandbox 基础镜像
ELEVENLABS_API_KEY=                    # 语音转文字

Sandbox 成本参考

  • 运行费用:约 $0.02/分钟
  • 自动休眠:无活动时休眠,重新访问立即恢复(秒级)
  • 每个 Session 独立一个 Sandbox + 独立 Git 分支

三、怎么开发?(开发者视角)

本地开发

git clone https://github.com/vercel-labs/open-agents
cd open-agents
bun install
 
# 配置环境变量
cp .env.example .env.local
 
# 启动开发服务器
bun dev
# → http://localhost:3000

仓库结构

open-agents/
├── apps/
│   └── web/                  # Next.js 应用(App Router)
│       ├── app/              # 页面和路由
│       ├── lib/db/           # 数据库迁移(next build 时自动执行)
│       └── components/       # UI 组件
└── packages/
    ├── agent/                # Agent 核心实现
    │   ├── open-harness-agent.ts   # Agent 主入口
    │   ├── system-prompt.ts        # System Prompt 构建器
    │   ├── models.ts               # 模型配置
    │   ├── tools/                  # 工具实现(bash、file 等)
    │   ├── subagents/              # 子 Agent(explorer/executor)
    │   ├── skills/                 # Skills 系统
    │   └── context-management/     # 上下文管理
    ├── sandbox/              # Sandbox 抽象层
    └── shared/               # 公共工具

Agent 工具集(11 个内置工具)

// packages/agent/open-harness-agent.ts 中注册的工具
- todo_write        // 任务列表(规划和追踪进度)
- read              // 读取文件
- write             // 创建/覆盖文件
- edit              // 精准字符串替换(优先用这个)
- grep              // 正则搜索文件内容
- glob              // 按模式查找文件
- bash              // 执行 Shell 命令
- task              // 派发给子 Agent
- ask_user_question // 向用户提问(需要时才用)
- skill             // 调用 Skill
- web               // 网络请求

System Prompt 的设计

这是整个项目最有价值的部分之一。system-prompt.ts 动态构建 System Prompt,包含:

1. 核心行为准则(所有模型共用)

  • 任务必须做完,不能半途而废
  • 优先使用项目自身的 scripts(bun run typecheck),不要用裸命令(npx tsc
  • 独立操作并行执行,依赖操作串行执行
  • 每次代码修改后必须验证(typecheck → lint → test → build)
  • 不提交代码,除非用户明确要求

2. 针对不同模型的行为覆盖

模型专属 Overlay 重点
Claude频繁使用 todo_write 追踪进度,逐项打勾
GPT强调必须持续工作直到完成,不能提前结束
Gemini保持简洁,3 行以内文字输出
GPT-5.4额外追加"极简主义"覆盖,对抗其啰嗦倾向

3. 云沙盒检查点规则

  • 每次有意义的改动后立即 commit + push
  • 长操作(build/install)前先 checkpoint
  • 沙盒是临时的,未 push 的工作会丢失

子 Agent 系统

主 Agent
├── Explorer(探索者)—— 并行分析代码库、理解结构
└── Executor(执行者)—— 并行编写和修改代码

两个子 Agent 并行工作,主 Agent 通过 task 工具委派任务。

Skills 系统

Agent 支持外部 Skills,类似 Claude Code 的 /skill-name 机制:

# 查找并安装 Skill
npx skills find <keyword>
npx skills add vercel/ai -y -a amp   # amp = 通用 Agent 格式

Skills 分两类:

  • userInvocable: true — 用户可直接用 /skill-name 调用
  • model-only — Agent 自动判断何时调用

四、核心架构解读

为什么 Agent 要跑在 Sandbox 外面?

传统方式:Agent 直接跑在 VM 里,受到 HTTP 请求超时(通常 30s-300s)的限制。

Open Agents 的方式:

用户请求 → Vercel Workflow SDK(持久化工作流)

           Agent 循环(外部,不受超时限制)
                ↓ 通过工具调用
           Sandbox VM(隔离执行环境)

好处:

  • 无限运行:Workflow SDK 持久化状态,Agent 可以跑几小时
  • Sandbox 独立:VM 可以休眠省钱,Agent 随时可以唤醒它
  • 模型可替换:换模型不影响 Sandbox,换 Sandbox 不影响 Agent 逻辑

Workflow SDK 如何实现持久化?

Agent 每一步 → 写入 Checkpoint

      如果服务重启/崩溃

      从上次 Checkpoint 恢复

      继续执行,用户无感知

五、与同类产品对比

Open AgentsDevinGitHub Copilot Workspace
开源✅ MIT
自部署
运行时长无限制有限制有限制
模型选择多模型固定固定
成本控制自己控制按座位收费按使用量
定制能力高(源码可改)

六、适合写成文章的角度

  1. System Prompt 工程:Open Agents 的 system-prompt.ts 是一份顶级的 Agent 系统提示词,逐行解读其设计思路
  2. 持久化 Agent 实现原理:Workflow SDK 如何让 Agent 跑"无限时长"
  3. Agent 安全模型:如何设计分级审批让 Agent 不乱跑命令
  4. 多模型适配技巧:同一个 Agent 如何针对 Claude/GPT/Gemini 差异化调优
  5. 部署实战:Fork 后10分钟跑起来自己的 Coding Agent
  6. 横向对比:开源自托管 vs 商业 Coding Agent 的权衡

相关链接