Vercel 发布开源 AI 智能体框架 Eve:每个智能体就是一个文件目录
阅读原文· marktechpost.comVercel 把自己跑了 100 多个 agent 的框架开源了,用目录即契约的方式把耐久执行、沙箱、审批等全打包,对想在生产环境跑 agent 的团队是今年最务实的发布之一。
Vercel 发布开源 AI 智能体框架 Eve(npm 包,Apache-2.0 许可)。Eve 采用文件系统优先设计:每个智能体对应一个磁盘目录,目录结构直接映射模型、指令、工具、技能、连接、子智能体等能力,无需额外注册代码。内置六大生产级能力:持久执行(每步检查点,崩溃后可恢复)、沙箱计算、人机审批、安全连接(支持 MCP 和 OpenAPI)、多通道(Slack、Discord、Teams 等)以及追踪与评估(OpenTelemetry)。Vercel 内部运行了上百个智能体,包括数据分析工具 d0(月处理超3万查询)、自动销售代理 Lead Agent(年费约5000美元、回报32倍)和支持智能体 Vertex(自主解决92%工单)。
Vercel 发布了 eve,一个用于构建、运行和扩展智能体的开源框架。该项目以 npm 包 eve 的形式发布,基于 Apache-2.0 许可证。
构建一个智能体应该意味着定义它的功能。它不应该意味着组装智能体在生产环境中运行所需的所有管道组件。
eve 是 Vercel 自身用于构建和运行其智能体的框架。根据 Vercel 的发布文章,该框架目前在生产环境中运行着超过一百个智能体。
什么是 eve?
eve 是一个以文件系统为先的持久化后端智能体框架。你将一个智能体创建为磁盘上的一个目录。这个目录就是契约。
每个文件描述智能体的一个组件。一眼看去,目录树就能表明智能体是什么以及能做什么。它也能显示智能体位于何处,以及它在何时自主行动。
可运行的最小智能体由两个文件组成。一个设置模型,另一个设置指令。
// agent/agent.ts
import { defineAgent } from "eve";
export default defineAgent({
model: "anthropic/claude-opus-4.8",
});模型只需一行代码,并通过 AI Gateway 支持供应商回退。instructions.md 文件成为系统提示词,eve 会在每次模型调用前将其前置。
一个智能体就是一个目录
Vercel 的核心思想是智能体具有一种结构。每个团队都在重复构建相同的结构来满足相同的需求。eve 将这种结构变成了一个框架。
目录布局将每个能力映射到一个文件夹。以下是契约:
| 路径 | 角色 | 格式 |
|---|---|---|
| agent.ts | 它运行的模型,以及运行时配置 | TypeScript |
| instructions.md | 它的身份,每次模型调用前都会前置 | Markdown |
| tools/ | 它能做什么;文件名成为工具名称 | TypeScript |
| skills/ | 它知道什么;仅在相关话题出现时加载 | Markdown |
| connections/ | 连接到 MCP 服务器和 OpenAPI 接口的安全链接 | TypeScript |
| sandbox/ | 可选的智能体沙箱覆盖;用于植入工作区文件 | 目录 |
| subagents/ | 它委托给的专业子智能体 | 目录 |
| channels/ | 它存在的位置,例如 Slack 或 HTTP | TypeScript |
| schedules/ | 它何时根据 cron 计划自主行动 | TypeScript |
| lib/ | 智能体内部共享的自定义代码 | TypeScript |
只需添加一个文件,就能增加工具、技能、频道或调度。eve 会在构建时自动拾取并连接它们。无需任何样板代码来注册它们。
一个工具就是一个 TypeScript 文件,带有一个 Zod 输入模式。其文件名和在目录树中的位置即构成其定义。
// agent/tools/run_sql.ts
import { defineTool } from "eve/tools";
import { z } from "zod";
export default defineTool({
description: "Run a read-only SQL query.",
inputSchema: z.object({ sql: z.string() }),
needsApproval: ({ toolInput }) => estimateScanGb(toolInput.sql) > 50,
async execute({ sql }) { /* ... */ },
});随框架附带的内容
Vercel 将 eve 描述为“内置齐全”。该框架提供了六项生产级能力:
- 持久化执行:每一次对话都是一个持久化工作流,每一步都有检查点。会话可以暂停,能在崩溃或部署后存活,并从停止处恢复。这基于开源 Workflow SDK 构建。
- 沙箱计算:智能体生成的代码被视为不可信。每个智能体都有自己的沙箱,用于执行 shell 命令、脚本以及文件读写。后端是一个适配器,部署时运行在 Vercel Sandbox 上,本地则运行在 Docker、microsandbox 或纯 bash 环境中。
- 人工审核批准:任何操作都可以设置为需要批准。智能体在此处暂停并等待,必要时可无限期等待,不消耗计算资源。一旦获得批准,eve 将从停止处继续执行。
- 安全连接:连接是一个指向 MCP 服务器或兼容 OpenAPI 的 API 的文件。eve 负责处理身份验证,模型永远不会看到 URL 或凭据。上线时,智能体可以连接到 Slack、GitHub、Snowflake、Salesforce、Notion 和 Linear。
- 渠道:同一个智能体服务于所有终端。HTTP API 默认开启,同时包含 Slack、Discord、Teams、Telegram、Twilio、GitHub 和 Linear。一个渠道可以将对话转交给另一个渠道。
- 追踪与评估:每次运行都会使用标准的 OpenTelemetry span 生成追踪数据。这些数据可导出到 Braintrust、Honeycomb、Datadog 或 Jaeger。评估是计分测试套件,你可以在本地运行或接入 CI。
使用场景及真实案例
Vercel 发布了六个在 eve 上内部运行的智能体:
- d0,数据分析师:它是 Vercel 内部使用最多的工具,每月处理超过 30,000 个问题。每次查询都限定在提问者自身的权限范围内。
- Lead Agent,自主销售开发代表:它会处理每一个新线索并自行跟进。Vercel 表示其每年成本约为 5,000 美元,回报是成本的 32 倍,由一名工程师兼职维护。
- Athena,销售驾驶舱:RevOps 在没有工程师参与的情况下,六周内构建了它。它用自然语言回答来自 Snowflake 和 Salesforce 的管道问题。
- Vertex,这位技术支持工程师:它能处理整个帮助中心、文档和 Slack 中的工单。Vercel 报告称,它能够自行解决 92% 的工单,其余工单则进行升级处理。
- draft0,这个内容智能体:它运行一个审查流程,在人工编辑看到稿件之前就能捕捉到明显的问题。
- V,这个路由智能体:任务首先被发送到 Slack 中的 V。V 将每个任务路由给能够回答该问题的智能体。
交互式模拟
eve 与手动搭建的智能体堆栈之比较
大多数团队在构建每个新智能体时都会自行组装这些组件。下表将这项工作量与 eve 提供的能力进行了对比。
| 能力 | 典型的 DIY 堆栈 | eve |
|---|---|---|
| 创作 | 自定义循环,手动工具注册 | 目录中的文件,在构建时自动发现 |
| 持久性 | 定制化的状态与重试处理 | 每个会话都有基于检查点的持久化工作流 |
| 代码执行 | 自行管理的容器或虚拟机 | 通过可替换的适配器为每个智能体提供沙箱 |
| 审批 | 自定义的暂停和恢复逻辑 | 在任何操作上可设置 needsApproval 字段 |
| 渠道接入 | 每个渠道一个集成 | 每个渠道一个适配器文件 |
| 可观测性 | 从日志中拼接而成 | 内置 OpenTelemetry 追踪与评估 |
| 部署 | 配置基础设施 | vercel deploy,从本地部署无需更改 |
该对比反映了 eve 已记录的能力。其他框架的具体情况因版本和配置而异。
快速上手
您可以通过一条命令创建并启动一个新智能体。它会安装依赖、生成项目结构并启动开发服务器。
npx eve@latest init my-agenteve dev 在本地以交互式终端 UI 方式运行智能体。eve eval 运行您的测试套件。eve build 在 .eve/ 目录下编译可检查的构建产物。
由于 eve 智能体就是一个普通的 Vercel 项目,因此 vercel deploy 可以原封不动地将它部署到生产环境。沙箱会在不修改代码的情况下切换到 Vercel Sandbox。
关键要点
- eve 是 Vercel 的开源、Apache-2.0 许可的智能体框架,目前处于公开预览阶段。
- 一个智能体就是一个目录中的文件集合;每个文件夹对应一种能力。
- 持久化执行、沙箱、审批、连接、渠道和评估功能均内置。
- Vercel 在 eve 上运行着 100 多个智能体,其中包括一个每月处理 30,000 个问题的数据分析智能体。
- 使用 npx eve@latest init 搭建项目,然后通过 vercel deploy 无需更改即可部署。