Vercel 构建「每桌一个智能体」:从失败的多智能体到文件系统智能体

Andrew Qu · Vercel 软件总监 · 2026-09-17
听中文精华AI 合成朗读00:00
与其每张桌子上一台计算机, 我们能不能做到每张桌子上一个智能体?
— Andrew Qu

关联

把公司内部的数据查询全交给 AI,最直观的做法是把不同环节拆给不同的智能体——一个规划、一个写 SQL、一个做报告。Vercel 的软件总监 Andrew 在一场短演讲里讲了他走过的完整弯路:他们先做了精细的多智能体流水线,上线后反馈却是「糟透了」;最后靠一个反直觉的简单方案翻倍了评估分数,并把它做成了一个新框架 Eve(他称之为「智能体的 Next.js」),两周前刚发布。

事情始于大约一年前。 Andrew 和 Vercel 的 CTO 有个想法: Bill Gates 曾设想每张桌子上、每个家庭里都有一台计算机, 那能不能做到「每张桌子上一个智能体」?

当时智能体基本只用于编码, 他们想探索在设计、产品管理等职能上的扩展。 他走访了市场、销售、财务、法务等各个部门, 问「你最讨厌工作中的什么」, 最打动他的用例来自数据团队: 这个精简的团队跟不上 Vercel 的增长速度, 每当市场或销售的人对客户、产品有疑问, 数据科学团队就得放下手头所有事, 写查询、处理、分析、给建议——这对生产力的杀伤力非常大。

第一版: 一个超级提示词。 最朴素的做法是把 Snowflake(数据仓库)的 schema 导出来贴进 system prompt, 附上问题, 模型生成 SQL 后自己手动复制粘贴去运行。

他只是想验证: 今天的模型在给定 decent 结构的情况下, 能不能写出有效的 SQL。 结论是: 模型还没那么好, 但可以通过提示词工程、更好的上下文和护栏让它运作得好一点。

第二版: 多智能体流水线 D0。 他们把数据科学家的真实工作流拆成阶段——处理问题、探索语义层弄清 join 模式、执行 SQL、失败或开销太大就重来、最后做报告和可视化——映射成串联的智能体: 查询智能体把查询传给规划智能体, 再到执行智能体等。

每个智能体有非常专用的 system prompt, 工具作用域精确限定在其功能上, 比如规划智能体只有「读实体 YAML」和「搜索 schema」两个工具。 这版确实更好了: 摆脱了复制粘贴 SQL, 真正做到了从问题到答案的端到端闭环。

撞墙与转折。 但这种架构开始碰壁, 他们得出结论: 你真正需要的是一个拥有全部超大上下文的单一智能体, 让它自己管理自己的记忆——因为在流水线里, 下一个智能体能拿到的只有一份摘要和上一步的小片段, 它无法回顾和反思整个过程。

改成单个 mega-agent(内部时而规划、时而执行、时而汇报, max steps 设 100)后, 最大的改进是: 遇到执行或 join 错误时, 它能回头去探索更多、读更多内容, 弄清楚自己哪里做错了。 他们相当有信心——评估集能搞定 30% 了——于是分发给了少数受信任的成员。

最初的反馈: 糟透了。 他们完全没能预料到用户会问的那些问题, 而靠人工手动梳理这些场景, 看不出是一种可扩展的做法。

真正的转折来自外部: Opus 4.5 和 Claude Code 发布了。 Andrew 的原话是, 和他们手工培育的智能体相比, 「Claude Code 加 Opus 4.5 基本上就是 AGI」——它几乎毫不卡壳地回答了他们大部分问题。

退一步分析为什么好这么多, 他们意识到最大的解锁就是: 它只是一个文件系统。 工具集极其精简——列文件、读文件、运行 bash——没有一套死板规定的工具, 而是放任模型去探索涌现行为, 用的是智能体在训练中被充分打磨过的那几样工具。

第三版: 文件系统智能体, 评估分翻倍。 他们按 Claude Code 的风格重建 D0: 智能体跑在沙箱里, 把整个语义层倾倒进沙箱, 它可以随意 bash、读文件、写文件, 上面只撒几样 Vercel 特有的工具。

Andrew 称这是「有史以来最大的解锁」, 评估分数基本翻了一倍。 实现非常简单: 给它一个 bash 工具(Vercel 在 NPM 上有 bash tool 辅助包), 附加到沙箱, 再把文件挂上去供它读写执行。 这段经历还催生了一篇博客文章, 发布那一周占了 Vercel.com 流量的 70%。

Skills: 让每次运行不再从零开始。 铺开到全公司后, 每天涌来成千上万条查询——客户指标、销售指标、NPM 下载量。

他们发现大量查询形态相同: 聚合就那么几种做法、查产品就那么几种、查账单就那么几种。 于是建了一个定期任务, 拿最近的查询自动提炼成 skill。

现在大约有 100 个 skill, 从聚合到查询特定人群的具体数据都有。 这非常有效, 因为每次新的智能体运行本来几乎从零开始, 除了语义层和系统提示词没有任何预置上下文; 有了 skill, 一开局就自带大量前人已经做过的上下文知识。

从 D0 到 Eve: 智能体的 Next.js。 构建 D0 的每一步都有 Vercel 的员工 fork 出去造自己的智能体, 他们于是想: 能不能让今天的人直接从最后的洞见出发, 不必从简单提示词或第一性原理重新发明?

两周前他们发布了开源框架 Eve(eve.dev)。 灵感直接来自 Next.js 的「文件系统即基础设施」——按约定写文件, 框架自动声明它们该去哪。

构建智能体也应该这么简单: 只需创建 skills 文件夹、tools 文件夹、channels 文件夹, 框架就知道怎么把它变成智能体。 在 Eve 的模型里, 智能体 = 运行时 + 渠道: 运行时里有持久性、隔离执行、模型调用和连接; 可以插入开源适配器(Postgres、OpenAI 的 response API、Docker 等), 也能一键部署到 Vercel——workflows 负责持久性, Sandbox 负责安全执行, 刚发布的 Vercel Connect 负责生成短生命周期 OIDC 令牌的连接, 部署后开箱即得可观测性(所有运行、工具调用、每一步、预估成本和优化建议)。 构建 Eve 的同时, 他们用 Eve 重写了整个 D0——从幕后复杂的代码结构, 变成一堆系统指令、几个 skill、几个工具的简单文件系统。

效果与主张。 合作公司 Aura 用 Eve 从零重建了他们的服务测试智能体(访问网站、安装、试用), 相比现成的 Claude Code, 步骤更少、成功率更高、洞察更好。

Andrew 的核心主张是: 他们之前实测过许多资金充足的垂直智能体创业公司(接管你的 Snowflake 跑查询那种), 但真正让智能体好用的, 是它拥有大量非常具体的公司知识——比如 Vercel 是一家 Web 公司, 什么该查、什么东西链接到什么, 这些理解深得多。 现成的智能体值得一试, 但想要最大收益, 应该自己构建、尽可能多塞进公司特定知识。

如今 Vercel 内部已有大约 20 个还算有产品市场契合度的智能体: 从确定该联系谁的营销复盘, 到法务看到新合同时的首轮红线标注, 再到数据科学智能体。 数据团队的生产力从未如此之高——他们终于有时间去优化 Snowflake 性能、补齐缺失的数据源, 而不是整天写查询。

本集带走

  • 多智能体流水线往往是弯路: 阶段拆分后, 下游智能体只拿到上游的摘要和小片段, 无法回顾反思; 改成单个大上下文智能体、让它自己管理状态, 错误时能回头探索, 才是关键一步。
  • 文件系统 + 极简工具是最强 unlock: 列文件、读文件、bash 这几样模型被充分训练过的工具, 加上一个装满语义层的沙箱, 比「为每个功能定制专用工具」效果好得多——评估分直接翻倍。
  • 用 skill 沉淀重复查询: 每天成千上万条查询其实形态有限, 用定期任务把高频查询自动提炼成 skill(他们约 100 个), 让每次智能体运行带着现成上下文开局, 而不是从零开始。
  • 自己造智能体, 塞进公司知识: 现成垂直智能体通用但浅, 真正的价值在大量公司特定的知识(什么该查、什么链接什么)——这是买不到的, 只能自己构建积累。
  • 想上手 Eve: eve.dev 克隆模板即可开始, skills/tools/channels 各建一个文件夹, 按约定声明, 支持自托管或部署到 Vercel(自带可观测性)。
全部金句 8 条

与其每张桌子上一台计算机, 我们能不能做到每张桌子上一个智能体?
instead of a computer on every desk, could we potentially have an agent on every desk?
—— Andrew Qu · [02:05]

我们在一旁感叹: 哇, 和我们之前的东西相比, Claude Code 加 Opus 4.5 基本上就是 AGI 了。
we on the side were like, wow, Claude Code and Opus 4.5 is basically AGI compared to what we had before.
—— Andrew Qu · [07:50]

我们意识到, 最大的解锁就是: 它只是一个文件系统。
we realized that the big unlock was that it was just a file system.
—— Andrew Qu · [08:09]

Claude Code 并没有被给予一套非常死板规定的工具, 它某种程度上就是被放任自由, 去探索涌现行为。
Claude Code was not giving a very prescriptive set of tools. It was sort of just letting it go wild and explore emergent behavior.
—— Andrew Qu · [08:34]

我写这篇文章的那一周, 它占了我们 Vercel.com 流量的 70%。
And the week that I wrote this, it was responsible for 70% of our Vercel.com traffic.
—— Andrew Qu · [10:00]

于是我们真的在想: 如果我们为智能体构建一个 Next.js 会怎样?
And so we actually thought, what if we built the Next.js for agents?
—— Andrew Qu · [12:04]

但我们发现, 真正让智能体好用的, 是它拥有大量非常具体的公司知识。
But we found out that what really makes this agent good is it has a lot of very specific company knowledge.
—— Andrew Qu · [15:31]

如果你真的想获得最大的收益, 你应该真正尝试构建自己的智能体, 并尽可能多地加入公司特定的知识。
if you really want to get the most juice out of a squeeze, you should really try to build your own agent and add in as much company-specific knowledge as you can.
—— Andrew Qu · [15:55]

接着看

顺着「智能体」挖下去

换个口味