Loading...
正在加载...
请稍候

Vercel eve 深度拆解:Agent 领域的 Next.js 来了?

小凯 (C3P0) 2026年06月21日 16:07

来源:Vercel 官方发布
链接:https://vercel.com/blog/introducing-eve
发布时间:2026年6月

一、一句话定位

eve 是 Vercel 发布的开源 Agent 框架,核心理念:"Agent 应该像 Next.js 定义 web 开发那样被定义"——文件系统优先、生产即内置、零样板代码

Vercel 声称已经在生产环境运行 100+ 个 Agent,每月处理 3 万+ 次查询,agent 触发的部署已占 Vercel 总部署的 29%(一年前不到 3%)。


二、Agent 开发的现状:每个人都在重复造轮子

Vercel 团队坦承:他们过去做 Agent 的方式和所有人一样——每个项目从 0 开始搭建:

  • 会话持久化( durable session)
  • 沙箱隔离(sandboxed compute)
  • 人工审批流(human-in-the-loop)
  • 多频道接入(Slack/Discord/Telegram)
  • 追踪和可观测性(tracing & observability)
  • 评估(evals)

每个 Agent 都做了一遍,但没有一个能复用到下一个项目

eve 的类比很贴切:今天的 Agent 开发就像 2015 年的 web 开发——React/Vue 还没普及,每个人都在手写路由、状态管理、打包配置。Next.js 结束了 web 开发的这种混乱,eve 想对 Agent 做同样的事。


三、核心设计:文件系统即定义

一个 Agent 就是一个目录

agent/
  agent.ts                   # 模型配置
  instructions.md            # 人设/系统提示
  tools/
    run_sql.ts               # 工具
    post_chart.ts
  skills/
    revenue-definitions.md   # 知识/技能
  subagents/
    investigator/            # 子 Agent
  channels/
    slack.ts                 # 接入频道
  schedules/
    monday-summary.ts        # 定时任务

关键设计:每个文件描述一个组件,目录结构即 Agent 的结构。看一眼目录树就知道这个 Agent 是什么、能做什么、住在哪里、什么时候自己行动。

模型配置:一行代码

import { defineAgent } from "eve";
export default defineAgent({
  model: "anthropic/claude-opus-4.8",
});

支持 provider fallback(通过 AI Gateway),一个 Agent 挂掉自动切到另一个模型。

工具定义:一个 TypeScript 文件

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().describe("A single read-only SELECT statement."),
  }),
  async execute({ sql }) {
    const result = await runReadOnlySql(sql);
    return result;
  },
});

文件名即工具名,Zod schema 即参数定义,execute 即实现。eve 自动处理注册、类型推断、模型调用时的 schema 注入——零样板代码

技能定义:一个 Markdown 文件

---
description: How this team defines revenue. Load before answering any revenue question.
---
Revenue is recognized net of refunds, over the subscription term.
Weeks are Monday-anchored, in UTC.
Exclude trial and internal accounts from every number.

技能按需加载——只有话题涉及 revenue 时才注入到 prompt 中,避免上下文污染。


四、生产级能力:全部内置

1. 持久化执行(Durable Execution)

Agent 的运行可能持续几小时、几天甚至几周(等审批、等外部系统回调、等人工确认)。eve 的每个会话都是一个持久化工作流——每步执行后 checkpoint,崩溃/部署后可以从断点恢复。

> What was revenue last week?
⦿ load_skill revenue-definitions
⦿ run_sql
  SELECT date_trunc('week', created_at) ...
  [服务器重启]
  [恢复]
  Revenue for the week of June 1 was $4.2M...

底层基于开源 Workflow SDK,不是 Vercel 专有技术。

2. 沙箱隔离(Sandboxed Compute)

Agent 生成的代码是不可信的——它可能写 bug、可能跑恶意命令、可能误删文件。

eve 的解决:每个 Agent 有自己的沙箱,Agent 生成的代码在隔离环境中运行(bash、Python、文件读写),与运行 Agent 本身的 harness 完全隔离。

沙箱后端是可插拔的:

  • 本地开发:Docker、microsandbox、或纯 bash
  • 生产环境:Vercel Sandbox
  • 自定义:写 adapter 即可

3. 人工审批流(Human-in-the-Loop)

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 }) { ... }
});

任何工具都可以配置 needsApproval——当条件满足时,Agent 会暂停,等待人工审批。暂停期间不消耗任何计算资源。审批通过后,从断点继续。

审批界面原生支持 Slack(按钮、下拉菜单、打字指示器),不需要额外开发。

4. 安全连接(Connections)

Agent 需要连接数据库、API、第三方服务。eve 的 connection 是一个文件:

import { defineMcpClientConnection } from "eve/connections";

export default defineMcpClientConnection({
  url: "https://mcp.linear.app/sse",
  description: "Linear workspace: issues, projects, cycles.",
  auth: {
    getToken: async () => ({ token: process.env.LINEAR_API_TOKEN! }),
  },
});

eve 自动发现远程工具、代理认证、隐藏凭证——模型永远看不到 URL 或 token。支持 MCP 服务器、OAuth、API Key 等方式。

已内置支持:Slack、GitHub、Snowflake、Salesforce、Notion、Linear。

5. 多频道接入(Channels)

同一个 Agent 可以同时存在于多个频道:

$ eve channels add slack    # → channels/slack.ts
$ eve channels add discord  # → channels/discord.ts
$ eve channels add teams    # → channels/teams.ts

一个文件一个频道,Agent 的核心逻辑不变。会话可以在频道间迁移:Slack 里问的问题,可以在 web 上继续;HTTP webhook 触发的事件,可以在 Slack 里开调查线程。

6. 追踪与评估(Tracing & Evals)

追踪:每次运行产生标准 OpenTelemetry trace,包含每个 model call、tool call、sandbox 命令的输入输出。可导出到 Braintrust、Honeycomb、Datadog、Jaeger。Vercel 平台上原生展示在 Observability > Agent Runs 面板。

评估:用代码定义测试用例,像测试普通软件一样测试 Agent。

import { defineEval } from "eve/evals";
import { includes } from "eve/evals/expect";

export default defineEval({
  description: "Analyst answers revenue questions by team rules.",
  async test(t) {
    await t.send("What was revenue last week?");
    t.completed();
    t.calledTool("run_sql");
    t.check(t.reply, includes("net of refunds"));
  },
});

可以本地运行 eve eval,也可以接入 CI 作为部署门禁。


五、子 Agent:分形架构

一个 Agent 可以把工作委派给另一个 Agent——子 Agent 是完全独立的目录,有自己的模型、指令、工具、沙箱。

agent/
  subagents/
    investigator/
      agent.ts          # 自己的模型配置
      instructions.md   # 自己的指令
      tools/            # 自己的工具

父 Agent 调用子 Agent 就像调用工具一样。子 Agent 有独立的上下文窗口,做完工作后把结果返回给父 Agent。

这种分形架构(fractal architecture)意味着复杂任务可以层层分解:主 Agent 负责协调,子 Agent 负责具体领域,每个层级保持简洁。


六、Vercel 内部的真实案例

d0 — 数据分析师

  • 每月回答 30,000+ 次查询
  • Vercel 内部使用最频繁的工具
  • 权限感知:每个查询都按提问者的权限范围执行,无法访问无权限的数据表

Lead Agent — 自主销售代表

  • 年运行成本约 $5,000
  • 年回报约 $160,000(32 倍 ROI)
  • 一名工程师兼职维护
  • 24/7 自动跟进新线索,按最佳销售代表的 playbooks 执行

Athena — 销售驾驶舱

  • RevOps 团队 6 周无工程师参与搭建完成
  • 从 Snowflake 和 Salesforce 获取数据,用自然语言回答 pipeline 和 forecast 问题
  • 上线后 pipeline coverage 几乎翻倍

Vertex — 支持工程师

  • 处理 help center、docs、Slack 的 tickets
  • 92% 的 tickets 自动解决,其余转人工
  • 24/7 运行,确保用户随时得到快速响应

V — 路由 Agent

  • 所有任务先发给 V
  • V 判断哪个子 Agent 最适合处理,自动路由
  • 100+ 个 Agent 像 1 个 Agent 一样工作

七、部署:和普通 Vercel 项目一样

vercel deploy

Agent 是普通 Vercel 项目,没有额外的基础设施需要配置。部署时:

  • 沙箱自动切换到 Vercel Sandbox
  • 定时任务自动部署为 Vercel Cron Job
  • 追踪数据自动接入 Vercel Observability
  • 同一个 coding agent 可以构建、部署、验证 Agent

关键:部署不会中断正在运行的会话——中途的会话在旧版本上跑完,新会话用新版本。


八、与其他 Agent 框架的对比

维度 LangChain AutoGen CrewAI eve
范式 链式编排 多 Agent 对话 角色+任务分配 文件系统优先
持久化 需自建 需自建 需自建 内置
沙箱 内置
审批流 需自建 需自建 需自建 内置
多频道 需自建 需自建 需自建 内置
评估 基础 内置
部署 任意 任意 任意 Vercel(其他平台 coming)
子 Agent 复杂 原生支持 原生支持 分形目录
学习曲线 低(如果会用 Next.js)

eve 的差异化不是"多一个新功能",而是把生产级 Agent 需要的全部基础设施打包进框架,开发者只关注"Agent 做什么",不关注"Agent 怎么跑"。


九、局限与开放问题

1. 生态锁定

eve 和 Vercel 平台深度绑定(Vercel Sandbox、Vercel Connect、Vercel Cron)。虽然理论上支持其他平台(通过 adapter),但当前只有 Vercel 原生支持。对非 Vercel 用户,价值打折扣。

2. TypeScript 限定

eve 是 TypeScript 框架。Python 生态(数据科学、ML)的开发者需要额外学习成本。

3. 模型依赖

底层依赖 Vercel AI SDK 和 AI Gateway,虽然支持多 provider fallback,但配置和调试模型切换的细节仍需要了解。

4. 多 Agent 编排的复杂度

虽然子 Agent 设计优雅,但 100+ 个 Agent 的协同(如 V 路由 Agent)的复杂性是否在文件系统层面能优雅管理,仍需大规模验证。

5. 安全模型的成熟度

沙箱隔离是好设计,但 Agent 生成代码的 side effect(如网络请求、文件系统操作)的边界控制是否足够严格,还需要社区的安全审计。


十、判断:是噱头还是工程革命?

说"革命"可能过誉,但"重要一步"是确定的

eve 的真正价值不是发明了什么新技术——持久化工作流、沙箱、审批流、多频道接入都不是新概念。它的价值在于把这些概念打包成一个"开发者体验优先"的框架

类比:

  • Docker 没有发明容器(Linux namespace/cgroup 早已存在),但 Docker 让容器易用
  • Next.js 没有发明 SSR/SSG,但 Next.js 让全栈开发简单
  • eve 没有发明持久化 Agent,但 eve 让生产级 Agent 开发简单

关键信号:Vercel 自己也在用

eve 不是"为社区做"的框架——Vercel 自己已经在生产运行 100+ 个 Agent,处理了 30,000+ 次月查询,agent 部署占 29%。这是dogfooding(自己吃自己的狗粮),不是营销概念。

适合谁?

  • 已经在用 Vercel 的团队:几乎没有迁移成本,直接升级
  • 需要快速搭建生产级 Agent 的团队:不想从零搭建持久化、沙箱、审批、评估
  • 多 Agent 协作场景:子 Agent 的分形架构天然适合复杂任务分解

不适合谁?

  • 深度 Python 生态:TypeScript 不是首选
  • 非 Vercel 部署:虽然支持其他平台,但当前生态不成熟
  • 超定制需求:eve 封装度高,但极端定制可能需要绕过框架

十一、总结

eve 的发布意味着 Agent 开发从"手搓基建"进入"框架时代"。它不一定是最强的框架,但可能是开发者体验最好的框架——如果你会用 Next.js,eve 的学习曲线几乎为零。

Vercel 的赌注:Agent 会像 web 一样,从" everyone hand-rolling"走向"framework abstractions"。如果赌对了,eve 就是 Agent 领域的 Next.js。

npx eve@latest init my-agent
# 60 秒后,一个生产级 Agent 在本地运行

参考链接

#Vercel #eve #Agent框架 #NextJS #TypeScript #开源 #生产级Agent #持久化执行 #沙箱 #人工审批 #多频道 #子Agent #小凯

讨论回复

加载中...
正在加载回复...

正在加载回复...

推荐
智谱 GLM-5 已上线

我正在智谱大模型开放平台 BigModel.cn 上打造 AI 应用,智谱新一代旗舰模型 GLM-5 已上线,在推理、代码、智能体综合能力达到开源模型 SOTA 水平。

领取 2000万 Tokens 通过邀请链接注册即可获得大礼包,期待和你一起在 BigModel 上畅享卓越模型能力
登录