惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

有赞技术团队
有赞技术团队
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
P
Palo Alto Networks Blog
C
Cisco Blogs
The Hacker News
The Hacker News
T
Threatpost
S
Schneier on Security
K
Kaspersky official blog
Spread Privacy
Spread Privacy
博客园_首页
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
NISL@THU
NISL@THU
量子位
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Google DeepMind News
Google DeepMind News
Security Latest
Security Latest
博客园 - 司徒正美
云风的 BLOG
云风的 BLOG
博客园 - 叶小钗
H
Hackread – Cybersecurity News, Data Breaches, AI and More
N
News and Events Feed by Topic
爱范儿
爱范儿
P
Proofpoint News Feed
C
CERT Recently Published Vulnerability Notes
Project Zero
Project Zero
Application and Cybersecurity Blog
Application and Cybersecurity Blog
Cisco Talos Blog
Cisco Talos Blog
GbyAI
GbyAI
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
Apple Machine Learning Research
Apple Machine Learning Research
T
Tenable Blog
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
V
Vulnerabilities – Threatpost
Forbes - Security
Forbes - Security
博客园 - 三生石上(FineUI控件)
C
Cyber Attacks, Cyber Crime and Cyber Security
N
News and Events Feed by Topic
V
V2EX
Webroot Blog
Webroot Blog
The Register - Security
The Register - Security
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
阮一峰的网络日志
阮一峰的网络日志
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Blog — PlanetScale
Blog — PlanetScale
M
MIT News - Artificial intelligence
Scott Helme
Scott Helme
Simon Willison's Weblog
Simon Willison's Weblog
L
LangChain Blog
W
WeLiveSecurity
Cloudbric
Cloudbric

博客园_首页

Plist 二进制格式 Milvus 和 PGVector,哪个更好? OpenClaw 已过时?在 VS Code 中运行 Hermes Agent! 第30篇文章:一个大三计科生的自白 Manim如何在数学公式中完美显示中文? Docker 部署 RocketMQ 5 并发编程核心概念辨析 C#事务处理最佳实践:别再让“主表存了、明细丢了”的破事发生 CLI 是什么?为什么大厂突然集体卷命令行? 【从0到1构建一个ClaudeAgent】协作-自主Agent UIImageView 设置图片不生效的原因排查 最小二乘问题详解20:无先验约束下的增量式SFM自由网平差 痞子衡嵌入式:大话双核i.MXRT1180之XIP应用里借助MU实现可靠Flash IAP的方法 AI Chat 封装, SemanticKerne.AiProvider.Unified 已发布 Windows下右键编辑js文件无法打开记事本——在注册表中使用环境变量 在后台服务中使用 Scoped 服务,为什么总是报错? H200 安装驱动并使用sglang启动模型 wireshark 抓包Trap上报告警内容 我用 AI 辅助开发了一系列小工具(2):图片压缩工具 [A Primer On MC and CC] 2.1 Memory Consistency 1 - 指令重排序和 SC 模型 Oracle数据库SCN推进技术详解与实践指南 玩转控件:封装个带图片的Label控件 Claude Code 4.7 真正该升级的不是模型,而是你的工作流 前端小白一句话,AI 帮我做了个颜值拉满的桌面媒体播放器。当代码不再是门槛,一句话编程就是现实。 5. WorkBuddy: 小龙虾的灵魂三件套,让你的小龙虾不只是工具 SQLite 分片方案实战:三种分片策略的深度对比 告别简陋 UI!一款基于 Fluent Design 和基于 WinUI 的开源免费、现代化的 Avalonia UI 控件库 关于二进制排列组合枚举的总结 AI开发-python-LangGraph框架(3-27-LangGraph从零实现大模型智能决策工作流) ElasticSearch主分片和副本分片概念详解 【002】HTTPS 粗解:证书、TLS 握手与对后端配置的影响 Hermes Agent 一周暴涨五万 Star,但我劝你别急着追 明明连接的是Redis的DB0,为什么能查到DB3的数据? 【从0到1构建一个ClaudeAgent】协作-Agent团队 熟悉电子元器件之后,电子小白下一步该怎么走? MAF快速入门(23)通过C#类定义Skills .NET 高级开发 | 手写一个对象映射框架 FastAPI数据库ORM怎么选?我肝了三个Demo后,终于不再纠结了 mysqldump 参数拾遗:在遗忘与铭记之间 C# .NET 周刊|2026年3月5期 Claude code入门 - 陈彦斌 一文学习入门 ThingsBoard 开源物联网平台 GitHub 热门项目 | 2026年04月16日 如何为GIT设置全局勾子,为每次提交追加信息 Number.isFinite和isFinite与isNaN()和Number.isNaN的区别 PortSwigger SQL注入LAB2 推荐一个测试人必备的Skills,从功能到性能全搞定(附详细实操和安装下载方式) 筑基期:掌握Odoo基础核心知识点02(Odoo XML 开发方式详解) GLM模型这么火,咱们用vllm也咧一个呗! 深入理解 AbortController:从底层原理到跨语言设计哲学 字符串学习笔记 多租户系统框架的基础模块设计和分析设计 Apache SeaTunnel Zeta 为什么能做到“又快又稳”? AI开发-python-LangGraph框架(3-26-LangGraph基本概念及第一个简单样例) Vue 3 组件通信,别只会用 Props 和 Emits 了,这几个狠活儿你得看看 ElasticSearch7.X版本配置密码 用Manim实现动态交点计算--从一个动点问题说起 团结引擎+Addressable+Instant Game打包抖音小游戏 function call 实战:让 LLM 自动判断 pod 异常、调用日志工具并完成故障分析 bubseek —— 让 Agent 的足迹,变成团队的洞察 通过 C# 读取并导出 PDF 书签 如何用 GitHub Actions 实现 Steam 自动化发布 【从0到1构建一个ClaudeAgent】并发-后台任务 .NET 高级开发 | 定制 ASP.NET Core 框架 电子小白:什么是运算放大器(运放) zero2Agent:面向大厂面试的 Agent 工程教程,从概念到生产的完整学习路线 堆上的ORW HC32F460 USB CDC通信异常:非对齐访问异常排查 20260413-Hyperbridge 攻击事件:发生在默克尔山上的验证绕过 那些喊着AI 要淘汰你的人,正在靠你的焦虑赚大钱! 深度学习进阶(八)Swin Transformer 最小二乘问题详解19:带先验约束的增量式SFM优化与实现 SnapTranslate 3.0 正式发布:全局划词翻译 + 完整英语学习闭环,一站式搞定查词、记词、复习 工作的意义、工作的困难认知再思考 .NET + AI 进阶实战:基于类的技能开发 - 打造可治理的 Agent 能力模块 【从0到1构建一个ClaudeAgent】规划与协调-技能 上周热点回顾(4.6-4.12) 电子小白的工具三件套:面包板、杜邦线、万能板 单表五亿数据的查询优化 | Mysql、StarRocks 2. WorkBuddy:从“我是谁”到“帮我干活” C# 如何减少代码运行时间:7 个实战技巧 基于HelixToolkit.SharpDX 渲染3D模型 - 笺上知微 从零开始的双臂具身VLA起源及现阶段发展综述 - SkyXZ 记对 xonsh shell 的使用, 脚本编写, 迁移及调优 - pluvium27 受够了Vibe Coding的失控?换个起点,让AI事半功倍 从开始配置漏洞环境到漏洞复现流程 - 難しい 关于10年工作经验的程序员对OpenClaw的实战经验分享以及看法 - 虚无境 Any metadata 的内存布局 C# .NET 周刊|2026年3月2期 - InCerry 我帮你测过了,测试圈排名第二的 Skill 依然很牛逼 Skill Discovery | 无监督技能发现的经典工作总结 - MoonOut 上下文工程是什么?过时了么?一文讲明白! - 一枫说码 开了 TUN 模式还是直连?90% 的人都踩过这个坑 AScript扩展多种脚本语言 - rockey627 AI 学习笔记:Agent 的记忆机制 你能被装进一个文件里吗?——7 万人把同事"蒸馏"成了 AI - 我没有三颗心脏 Claude Code 通关手册(七):给 AI 装上技能包——Skills 完全指南 - 暮色之狐 在浏览器中快速编辑代码:VSCode Web 集成实践 - Newbe36524 蒸馏自己 skill?基于 Deepseek 的蒸馏器,丐版蒸馏方式,简单便捷 - To_Carpe_Diem Spring AI Aliababa和AgentScope,哪个更好? - 苏三说技术
一个目录一个 Agent,Vercel Eve 的这套架构设计太舒服了!
程序猿DD · 2026-06-20 · via 博客园_首页

2026 年 6 月 17 日,Vercel 发布了开源 Agent 框架 Eve。官方给它的定位很直接:像 Next.js 之于 Web 应用一样,Eve 想给 Agent 提供一套约定明确、可直接进入生产环境的框架。但它真正想解决的,并不是「怎么再写一个 Agent Loop」,而是 Agent 跑起来之后那一大堆没人愿意重复造的基础设施。

先说我的判断:

Eve 值得关注,但不是因为它又提供了一种调用大模型和 Tool Calling 的写法。

它真正有意思的地方,是把 Durable Workflow、Sandbox、人工审批、子 Agent、渠道接入、Tracing 和 Evals 这些过去需要开发者自己拼装的能力,收进了一个文件系统优先的框架里。

换句话说,Eve 想解决的不是:

怎么让模型多思考几轮?

而是:

怎么把一个已经能工作的 Agent,变成可以部署、可以暂停恢复、可以控制权限、可以观察和评测的生产系统?

这两个问题,看起来很像,工程量却完全不在一个级别。

Agent Demo 很多,真正能上线的却不多

现在做一个 Agent Demo 已经不难了。

写一个系统提示词,准备几个工具,调用模型,让它在「思考—调用工具—读取结果—继续思考」之间循环,一个能查数据、搜网页或者操作文件的 Agent 很快就能跑起来。

但只要准备把它放进真实业务,问题马上就来了:

  • 一个任务跑了半小时,中途进程重启怎么办?
  • Agent 等用户批准时,连接要一直挂着吗?
  • 模型生成的脚本,敢不敢直接在应用服务器上执行?
  • 查询日志可以自动做,回滚生产版本是不是也能自动做?
  • 同一个 Agent 要接 Web、Slack 和 API,是不是每个入口都要重写一套?
  • Agent 做错以后,怎么知道它当时看到了什么、调用了什么工具?
  • 改了一句 instructions,怎么确认旧能力没有悄悄退化?

这些问题没有一个能靠「再优化一下 Prompt」解决。

过去大家通常要自己把模型 SDK、工作流引擎、任务队列、状态存储、沙箱、OAuth、审批页面、日志系统和评测框架拼起来。Demo 的代码可能只有几百行,包住它的生产基础设施却很容易膨胀成另一个项目。

这正是 Eve 选择切入的位置。

Vercel 在发布文章中把 Eve 称为一个用于构建、运行和扩展 Agent 的开源框架,并列出了 durable execution、sandboxed compute、human-in-the-loop approvals、subagents 和 evals 等内置能力。

这份能力清单透露了一个很明确的信号:Vercel 并不满足于提供一次模型调用,它想把 Agent 的整个运行环境一起定义下来。

Eve 最显眼的设计:一个目录就是一个 Agent

Eve 的第一个特点是 filesystem-first。

一个典型项目大致长这样:

my-agent/
└── agent/
    ├── agent.ts          # 模型与运行时配置
    ├── instructions.md   # 始终生效的系统指令
    ├── tools/            # Agent 可以调用的类型化工具
    ├── skills/           # 按需加载的操作手册
    ├── subagents/        # 可委派任务的子 Agent
    ├── channels/         # HTTP、Slack、Discord 等入口
    └── schedules/        # 定时任务

最小的 Eve Agent,甚至可以从一份 instructions.md 开始。

需要选择模型时,增加 agent.ts;需要调用业务接口时,在 tools/ 中增加 TypeScript 文件;需要一套可复用的操作流程时,写进 skills/;需要接入 Slack,就增加一个 channel 文件。

这个设计看起来不花哨,却很符合工程直觉。

一个目录管理一个 Agent

Agent 的角色、工具、技能和入口都落在普通文件里,意味着它们可以:

  • 进入 Git 做版本管理;
  • 通过 Pull Request 审查;
  • 看到 instructions 修改前后的 diff;
  • 对不同版本建立 Preview 环境;
  • 出问题时回滚到上一个提交。

Eve 官方说「The filesystem is the authoring interface」。翻成更直白的话就是:不要再把 Agent 藏在某个控制台的一堆配置项里,把它当成一个正常的软件项目来管理。

这也是它和很多低代码 Agent 平台最不一样的地方。

它不是用来替代 AI SDK 的

看到这里,可能有人会问:Vercel 已经有 AI SDK,为什么还要再做一个 Eve?

我的理解是,两者解决的问题层次不同。

Vercel AI SDK 更像底层开发工具:帮助应用调用不同模型、处理流式输出、生成结构化数据以及完成 Tool Calling。

Eve 则站在更外面一层。它假设 Agent 不只会调用一次模型,而是一个可能运行很久、调用真实系统、等待人类输入、跨多个渠道工作的完整应用。

可以粗略地理解成:

层次 主要解决的问题
模型与 AI SDK 怎么调用模型、流式输出和工具
Agent Loop 怎么观察、行动、获得反馈并继续
Eve 这个 Agent 如何持久运行、安全执行、接入业务并进入生产

Eve 底层本身也在使用 Vercel 的 AI Gateway、Workflow、Sandbox 和 Connect 等能力。它不是推翻现有 AI 开发栈,而是把这些原语组合成一个约定更完整的 Agent 框架。

如果借用最近比较流行的说法:

Eve 的重点不只是 Agent Loop,更接近一套生产级 Agent Harness。

模型负责推理,但模型之外还需要状态、权限、工具、执行环境、反馈、审计和验证。Eve 想把这层 Harness 产品化。

Durable:Agent 不应该害怕重启

普通聊天接口通常是一问一答,请求结束,任务也就结束了。

Agent 却经常不是这样。

它可能需要等待一个慢查询,可能要让用户补充材料,也可能在执行危险操作前等待审批。一次任务持续几个小时甚至几天,并不奇怪。

如果把这种任务绑在一个普通 HTTP 请求上,超时、断线和进程重启迟早会找上门。

Eve 的做法是把每段会话作为一个 durable workflow 运行。工作流步骤会被 checkpoint;任务等待消息时可以暂停,收到新消息后从原来的位置恢复。按照官方介绍,即使中间发生崩溃或重新部署,会话也可以继续推进。

这项能力没有生成式 UI 那么吸睛,却可能是 Eve 最重要的生产特性之一。

因为真实 Agent 的核心问题,从来不是能不能循环,而是这个循环能不能在失败、等待和发布过程中保持正确状态。

当然,durable 也不是免费的魔法。工具有没有副作用、恢复后会不会重复执行、操作是否幂等,仍然需要开发者设计。框架能保存执行状态,却不能替业务代码决定「这笔退款到底能不能再调用一次」。

Sandbox:给 Agent 一台电脑,但别让它住进应用服务器

很多复杂任务无法提前准备好所有工具。

比如让 Agent 分析一份陌生日志,它可能临时写一段 Python;让它处理 CSV,它可能生成一个聚合脚本;让它检查项目,它可能执行 grep、测试命令或构建工具。

真实计算环境能明显扩大 Agent 的能力边界,也会同时扩大风险边界。

模型生成的命令和代码应该被视为不可信输入。如果直接放进应用运行时执行,一次错误的路径判断、依赖安装或者文件删除,都可能把 Agent 问题变成生产事故。

Eve 为每个 Agent 提供隔离沙箱。本地开发可以使用 Docker、microsandbox 或 just-bash 等适配器;部署到 Vercel 后,执行环境可以切换到 Vercel Sandbox,而不需要改写 Agent 的业务逻辑。

我很喜欢这个设计背后的态度:

不是禁止 Agent 写代码,而是默认它写出的代码不值得信任。

这是生产 Agent 应该具备的基本安全观。

Approvals:成熟的 Agent 要知道什么时候停手

Agent 能调用工具,不代表每个工具都应该自动执行。

查询订单和取消订单不是一回事,查看部署记录和回滚生产版本也不是一回事。

Eve 内置了 human-in-the-loop approval。Agent 遇到需要人工确认的动作时,工作流可以暂停;用户批准或拒绝后,再从当前状态继续。

更重要的是,审批不只存在于某个专用后台。Eve 的 channel 可以把审批映射到实际交互界面,例如在 Slack 中显示按钮。

这会迫使开发者认真回答一个问题:

Agent 的自动化边界究竟画在哪里?

一个实用的起点是:

  • 读取与分析操作可以自动执行;
  • 会修改外部系统的操作需要审批;
  • 删除数据、回滚生产和大额付费等高风险操作需要更严格确认。

真正成熟的 Agent,不是什么都敢做,而是知道什么时候必须停下来等人。

Durable、Sandbox 与 Approval 组成安全路径

Subagents:不是为了凑一支 AI 团队

Eve 也支持子 Agent。

子 Agent 仍然是一个目录,可以有自己的 instructions、tools、skills、模型和沙箱。主 Agent 把它当作工具调用,子 Agent 在干净的上下文中完成任务,再把结果交还给主 Agent。

子 Agent 的价值并不是把一个头像变成五个头像,而是两个更实际的问题:

第一,复杂任务可以拆成边界更清楚的子任务;第二,不同任务可以使用不同上下文和最小权限工具。

例如在一次线上事故中:

  • 日志分析 Agent 只读取日志与指标;
  • 代码调查 Agent 只查看 GitHub 变更;
  • 影响评估 Agent 只查询订单和用户数据;
  • 主 Agent 负责综合证据并决定下一步。

这种隔离不仅能减少上下文污染,也能缩小每个 Agent 的权限范围。

不过,能拆不等于应该拆。子 Agent 会增加模型调用、延迟和结果汇总成本。如果一个工具调用就能完成的任务,没必要为了「多 Agent」三个字绕上一圈。

子 Agent 按职责与权限交接内容包

Channels、Tracing 和 Evals:部署之后才是真正的开始

Eve 默认提供 HTTP API,也可以通过 channel adapter 接入 Slack、Discord、Teams、Telegram、GitHub、Linear 等入口。它希望同一份 Agent 逻辑能够服务多个渠道,而不是每接一个聊天工具就重写一遍业务流程。

连接外部系统时,Vercel Connect 可以处理 OAuth 授权、同意页面和 token 刷新,让模型不直接看到连接地址和凭据。

Agent 运行后,每次模型调用、工具调用以及沙箱命令都可以进入 trace。Eve 使用 OpenTelemetry,因此可以接入现有可观测平台;部署在 Vercel 上时,还可以在 Agent Runs 中查看会话执行过程。

最后是 evals。

instructions、skills 和 tools 都是代码库中的文件,一次看似无害的修改也可能改变 Agent 行为。Eve 提供评测能力,可以在本地运行,也可以接入 CI,把行为回归挡在部署之前。

这三部分共同回答了一个经常被 Demo 忽略的问题:

Agent 上线之后,用户从哪里找到它,出错以后怎么复盘,升级之前又怎么验证?

能回答这三个问题,才算真正开始把 Agent 当软件工程来做。

Eve 真的是 Agent 时代的 Next.js 吗?

Vercel 在产品页给出的类比很大胆:像 Next.js 之于 Web App,但这次面向 Agent。

这个类比有合理之处。

Next.js 当年并不是发明了 React,也不是发明了服务端渲染。它的价值在于把路由、构建、渲染、数据获取和部署等常见问题放进一套有明确约定的框架中。

Eve 走的是相似路线:它没有发明大模型、Tool Calling、工作流、沙箱或 OAuth,而是试图把 Agent 项目反复出现的结构固定下来。

但现在就说它已经成为「Agent 时代的 Next.js」,显然太早。

截至本文写作时,Eve 仍处于 beta。官方 README 明确提示:在正式可用之前,框架、API、文档和行为都可能发生变化。它的生态规模、跨平台能力、调试体验、成本模型以及真实业务中的稳定性,都还需要时间验证。

所以更准确的判断是:

Eve 已经提出了一套很有 Vercel 风格的 Agent 工程答案,但这套答案能否成为事实标准,还要看开发者是否愿意把真实 Agent 放上去跑。

哪些团队适合现在尝试?

如果你正在做下面几类项目,Eve 值得进入技术验证名单:

  • 任务会持续较长时间,需要暂停和恢复;
  • Agent 需要运行脚本或处理文件;
  • 需要接入 GitHub、Slack、Linear 等团队系统;
  • 存在必须人工确认的高风险动作;
  • 希望用 Git、Preview 和 CI 管理 Agent 变更;
  • 项目本身已经使用 Vercel 技术栈。

但如果你的需求只是给现有接口增加一次简单的模型问答,直接使用 AI SDK 或模型 SDK 可能更轻。为了一个两步流程引入完整 Agent 框架,未必划算。

另外,强依赖私有化部署、已有成熟工作流平台,或者暂时无法接受 beta API 变化的团队,也不适合急着把核心业务押上去。

新框架最容易让人兴奋的地方是「它什么都有」,最容易被忽略的问题是「这些能力是否正好是你需要的」。

接下来,我们用 Eve 组建一支 AI 内容运营团队

只介绍功能列表,很难看出 Eve 解决的问题到底有没有价值。

所以接下来这个系列,我们会围绕一个真实需求展开:我有一个面向 Java 开发者的 SpringForAll 社区,但一直没有足够时间维护。我们将使用 Eve,尝试从零搭建一支 AI 内容运营团队,以给 SpringForAll 社区提供合适的内容输出。

这里最值得利用的正是 Eve 的目录设计:

一个 Agent 一个目录,一个目录对应一个岗位,多个目录组成一支团队。

这个系列会按阶段推进。第一阶段的目标,是先围绕“帮助维护 SpringForAll 社区内容”做出一个可运行的 Agent 雏形,并在实现过程中熟悉 Eve 的核心能力。

用 Eve 规划 AI 内容运营团队路线

这个阶段会完成:

  1. 先创建一个最小可运行的 Eve Agent,让它知道自己的角色和任务边界;
  2. 在 Vercel AI Gateway 之外,保留切换自有 OpenAI-Compatible Provider 的能力;
  3. 用 skills 沉淀选题、写作和审稿流程;
  4. 用 researcher、writer、reviewer 三个 subagents 拆分内容团队职责;
  5. 用 sandbox /workspace 承载研究笔记、草稿、审校结果和临时文件,避免污染 Agent 定义代码;
  6. 最终生成可人工检查的 Markdown 内容包,而不是自动发布到公众号或其他平台。

第一阶段不会连接公众号、GitHub、数据库或其他业务系统,也不会自动发布内容。后续阶段做什么,会随着对 Eve 的学习和实际使用继续调整,目前先保留 Tools、Schedules、Evals 和部署到 Vercel 这几个方向。

下一篇,我们先招聘第一位员工:

用一个目录、一份 instructions 和一次本地对话,创建 SpringForAll 的 AI 内容运营助手。

随后再逐步为它增加 Provider 配置、skills、subagents 和 sandbox,直到它具备一支内容团队的基本轮廓。


参考资料