Vercel 把”文件目录”变成了 Agent 框架,Google 给 Agent 发了”通用语言”:6 月 17 日这两件事,普通人也能跟着玩
如果你去年尝试自己搭过一个 AI 智能体(Agent),大概率经历过这种时刻:跟着某个开源项目跑起来一个 demo 兴奋了 5 分钟,然后想加一个新功能——查一下文档,要么要写几十行注册代码,要么要把这个功能塞进某个 “registry.json” 里跟其它东西打架,最后折腾两小时干脆放弃。
这事不只是你遇到。所有想认真做 AI Agent 的人都被这件事折磨过。
2026 年 6 月 17 日这天,两家科技巨头同时出手,把这个”开发者第一关”重新做了一遍。
第一件:前端框架巨头 Vercel 开源了一个叫 Eve 的 Agent 框架(Apache-2.0 协议)。最大特点就一句话——“文件系统优先”:每个 Agent 就是一个磁盘目录,目录里长什么样,Agent 就长什么样。不用写注册代码,不用查配置 API。
第二件:Google 联合 Linux 基金会下的 AI Catalog 工作组,发布了一份叫 Agentic Resource Discovery(ARD) 的开放规范(Apache-2.0)。它干的事跟 DNS 有点像——让任何 Agent 都能在公网上”找到”它需要的工具、技能、其它 Agent,并且事先验明正身才敢连。
这两件事放一起看,意思是:AI Agent 这个行业终于开始把”地基”打起来了。之前大家都在抢着发 Agent 产品(OpenAI 的、Anthropic 的、Google 的、各种创业公司的),现在有人开始抢着发”Agent 怎么搭、怎么连”的基础设施。
而最关键的一点是——这两件事都不需要你有什么大公司背景。Vercel Eve 装个 npm 包就能跑,ARD 跟着官方 quickstart 走 5 步就能在自家域名上架一个 catalog。
这篇文章会带你从 0 跑通 Eve 的 hello world(一个能查天气的 Agent),再演示一下怎么用 ARD 把你的服务”挂”到 agent 互联网上去。两个上手加起来 30 分钟以内。
一、先搞明白这两件事分别在解决什么问题
在动手之前,我们先把这俩东西拆开看清楚。
1.1 Vercel Eve 在解决什么
Vercel 之前大家最熟的是 Next.js(前端框架)——基本上做 Web 的人都知道。Eve 是 Vercel 6 月 17 日在 GitHub 上发布的 Agent 框架,开源协议 Apache-2.0,可以免费商用。
它针对的痛点很具体:
现在的 Agent 框架,你要加一个工具(tool)就要写一段注册代码,要加一个技能(skill)就要在某个清单里加一项,要接一个消息渠道(比如 Slack、Discord)又要写一段适配逻辑。所有这些”胶水代码”加起来,超过了 Agent 本身的逻辑代码。
Eve 的解法是:别写胶水代码了,把文件放在对的目录就行。
Eve 框架规定了一个标准目录布局:
my-agent/
└── agent/ # 智能体核心目录
├── instructions.md # 系统提示词(必填)
├── agent.ts # 模型配置(可选)
├── tools/ # 工具函数
├── skills/ # 按需加载的技能文档
├── channels/ # 消息渠道(Slack/Discord/HTTP)
└── schedules/ # 定时任务
框架会在启动时自动扫描这个目录,把里面所有该加载的东西都装上。你想加一个工具?扔个 .ts 文件到 tools/ 就行。你想接 Slack?扔个 slack.ts 到 channels/ 就行。
这种”约定大于配置”的设计思路,借鉴的是 Next.js / Rails / Phoenix 这些老牌 Web 框架——Eve 的设计者在文档里直接说 “Eve is to agents what Next.js is to the web”。
1.2 Google ARD 在解决什么
如果说 Eve 解决的是”一个 Agent 怎么写”,那 ARD 解决的是”一堆 Agent 怎么互相找“。
现在的局面是:你想让 Agent 用某个工具,得手动告诉它那个工具的 URL、协议、认证方式。这就像 80 年代的互联网——每个网站都是孤岛,你得自己记得它们在哪儿。
ARD 想做的是 Agent 时代的 DNS。
它定义了一套规范,让任何组织可以:
- 在自己域名下挂一个
ai-catalog.json文件,列出自己提供的所有 Agent / Tool / Skill / MCP server - 域名本身就是身份证明——因为你有这个域名的控制权,别人就知道 catalog 真的是你发的
- 任何 Agent 都可以通过”联邦式 registry”(类似搜索引擎)搜索到这些 catalog
- 找到之后,先验明正身再连接——避免被钓鱼的假工具坑了
Google 的 Gemini Enterprise Agent Platform 已经开始原生支持 ARD,未来几个月会推广到更多 Google Cloud 服务。
Eve + ARD 加起来,就是”造 Agent 的工具 + Agent 之间互相找的协议”。 跟之前站里写过的 6 月 14 日那篇 AI 编程工程化 那篇文章里讲的 agent-skills / Superpowers 不一样——后者是”给现成 Agent 加工作流纪律”,Eve + ARD 是”从根上重新设计 Agent 怎么造、怎么连”。
二、30 分钟搭一个能查天气的 Agent(Vercel Eve 实战)
光说不练假把式。我带你从 0 跑通 Eve 的官方 hello world。
2.1 准备工作
确认你的环境里有:
- Node.js 18+
- npm 或 pnpm
打开终端,新建一个项目目录:
mkdir my-weather-agent
cd my-weather-agent
npm init -y2.2 安装 Eve
npm install eveEve 现在还在 Beta 阶段(按 Vercel 公开 Beta 协议),但生产可用。装完之后,框架会顺便把文档也装到 node_modules/eve/docs——这点设计很贴心,AI 编码工具可以直接读本地文档,不用联网。
2.3 创建 Agent 目录
按照 Eve 的约定,所有 Agent 配置都放在 agent/ 子目录里。手动建一下:
mkdir -p agent/tools2.4 写系统提示词
agent/instructions.md(必填):
# Weather Demo Agent
You are a concise weather assistant. When the user asks about weather in a city, you MUST call the `get_weather` tool to fetch data. Never make up weather data on your own.
Tell the user that the weather data is mocked (this is a demo).
注意最后一句——明确告诉 AI 这个数据是模拟的,避免它”自信地胡编”。
2.5 配置模型
agent/agent.ts(可选):
import { defineAgent } from "eve";
export default defineAgent({
model: "anthropic/claude-sonnet-4.6",
});
Eve 默认走 Vercel 的 AI Gateway,所以你可以用 anthropic/...、openai/...、google/... 这种带前缀的写法,框架会自动路由到对应供应商。你不用操心 API key 在哪儿管理的问题——只要环境变量里有相应的 key,框架自己会取。
2.6 写一个工具
agent/tools/get_weather.ts:
import { defineTool } from "eve/tools";
import { z } from "zod";
export default defineTool({
description: "Return mock weather data for a city.",
inputSchema: z.object({
city: z.string().min(1, "City name cannot be empty"),
}),
async execute({ city }) {
return {
city,
condition: "Sunny",
temperatureF: 72,
temperatureC: 22,
note: "Mock data — replace with real API in production.",
};
},
});
注意几个设计点:
description必须是清晰的自然语言——AI 会读这段话来决定要不要调用这个工具。写”获取天气”和写”Return mock weather data for a city. Required input: city name. Output: current temperature, condition.”,AI 调用的准确率能差一个数量级- 用 zod 做参数校验——
z.string().min(1, "...")不光校验类型,错误信息还会自动喂给 AI,让 AI 自己纠正输入 - 不要在 execute 里写敏感操作——这是 demo,真实场景调用第三方 API 时,记得加错误处理和超时
2.7 跑起来
Eve 框架自带开发服务器,一行命令:
npx eve dev启动后你会看到类似下面的输出:
[Eve] Loading agent from ./agent
[Eve] Tools registered: get_weather
[Eve] Model: anthropic/claude-sonnet-4.6
[Eve] Local URL: http://localhost:3000打开浏览器访问 http://localhost:3000,试着输入 “What’s the weather in Tokyo?”,你会看到 AI 先调用了 get_weather 工具,再把结果整理成自然语言回答你。
整个过程,你没写一行”注册代码”——没碰 index.ts、没改 package.json、没建 config.json。这就是 Eve 的核心卖点:把”胶水代码”全部干掉,让开发者只关心”我这个 Agent 到底要做什么”。
2.8 扩展:加个定时任务
想把每周一早上 8 点自动生成一份天气周报?加个文件就行:
agent/schedules/weekly_recap.ts:
import { defineSchedule } from "eve/schedules";
export default defineSchedule({
cron: "0 8 * * 1", // 每周一早上 8 点
prompt: "Generate a weather recap for the top 10 world cities and post it to the #weather channel.",
channels: ["slack"],
});
完事。不用重启服务,Eve 会自动加载新加的 schedule。
三、把你的工具”挂”到 Agent 互联网上(Google ARD 实战)
Eve 让 Agent 写起来简单了,但写好的 Agent 怎么被别的 Agent 发现?这就要靠 ARD 了。
ARD 的核心是 catalog(目录)——一个 JSON 文件,描述你能提供的所有 Agent / Tool / Skill。
3.1 第一步:建一个最简单的 catalog
在你能控制域名的服务器上(比如 yourcompany.com),创建一个文件:
https://yourcompany.com/.well-known/ai-catalog.json
{
"catalog_version": "1.0",
"publisher": {
"name": "Your Company",
"domain": "yourcompany.com",
"contact": "agent-team@yourcompany.com"
},
"resources": [
{
"id": "weather-lookup-v1",
"type": "tool",
"name": "Real-time Weather Lookup",
"description": "Get current weather for any city. Returns temperature, condition, humidity, wind speed.",
"protocol": "https",
"endpoint": "https://api.yourcompany.com/v1/weather",
"auth": {
"type": "api_key",
"header": "X-API-Key"
},
"rate_limits": {
"requests_per_minute": 60
}
},
{
"id": "sql-query-agent-v1",
"type": "agent",
"name": "SQL Query Assistant",
"description": "An agent that can translate natural language questions into SQL queries and execute them against your data warehouse.",
"protocol": "a2a",
"endpoint": "https://agents.yourcompany.com/sql-assistant"
}
]
}
注意几个点:
- 域名是身份——你控制了
yourcompany.com,别人就知道这个 catalog 真的是你发的(DNS + TLS 验证) - 每个 resource 都有
type:tool/agent/skill/mcp_server都可以 protocol字段告诉 Agent 怎么连:https(REST API)、a2a(Google 推的 Agent-to-Agent 协议)、mcp(Anthropic 推的 Model Context Protocol)
3.2 第二步:把 catalog 注册到 registry
Registry 就像 ARD 的”搜索引擎”。目前 Google 在 agenticresourcediscovery.org 维护了一个参考实现。
注册方式很简单——把 catalog 的 URL 提交到 registry 的提交端点(具体 URL 查 ARD 官方文档)。提交后 registry 会:
- 抓取你域名下的
ai-catalog.json - 验证你真的拥有这个域名(DNS 校验 + TLS 校验)
- 把你的资源索引到全网搜索里
3.3 第三步:让 Agent 用 ARD 找资源
假设你做了一个内部 Agent,需要查实时天气数据。传统做法是:手动把 API URL 写死在代码里。
用 ARD 的做法是:
# Agent 启动时
import ard
# 告诉 Agent"我要查天气"
matches = ard.search(
intent="I need to get current weather for any city",
constraints={"protocol": "https", "auth_type": "api_key"}
)
# ARD 返回所有匹配的 catalog 项
for resource in matches:
print(f"Found: {resource.name} at {resource.endpoint}")
# 接下来用 resource.protocol 描述的方式去连
这里的关键是:Agent 写代码的时候完全不知道有”你公司”这个供应商存在——它在运行时才发现这个工具可用,然后用 catalog 里的 metadata 决定怎么连。
3.4 第四步:验明正身
这一步是 ARD 最核心的安全设计:连接前先验真。
传统方式:Agent 直接调 https://api.yourcompany.com/v1/weather,但如果中间人攻击或者 DNS 污染呢?
ARD 方式:连接前,Agent 用 catalog 里的 publisher domain(yourcompany.com)反向校验:
- catalog 是不是真的挂在
yourcompany.com下(DNS + TLS 校验) - 资源 endpoint 的证书是不是 publisher 域名的合法证书
- 可选:校验 catalog 的数字签名(publisher 用私钥签 catalog,registry 用公钥验签)
这就意味着——就算有人伪造了一个 catalog 文件放在别的域名下,因为 DNS 不匹配,Agent 也根本不会连过去。
3.5 第五步:让 Eve Agent 接入 ARD
Eve 框架原生支持 ARD(6 月 19 日的更新刚加的)。你想让 Eve Agent 自动用 ARD 找工具,只需要在 agent.ts 里加一行:
import { defineAgent } from "eve";
export default defineAgent({
model: "anthropic/claude-sonnet-4.6",
discovery: {
enabled: true,
registries: ["https://registry.agenticresourcediscovery.org"],
trust_level: "verified", // 只连经过域名验证的资源
},
});
Eve Agent 在执行任务前会先查 ARD,发现能用的工具就动态加载到自己的工具列表里——完全不用重启服务。
这就引出了今天这两件事最让人兴奋的部分:Eve 让造 Agent 像写文件一样简单,ARD 让 Agent 之间能自动发现和验证对方。两个能力叠加,意味着你只需要写一个”基础 Agent”(用 Eve),它就能在运行时自动接入全世界的工具和服务(用 ARD)——不用手动集成每个第三方。
四、对比一下:Eve + ARD 跟之前的 Agent 框架有什么不同
你可能还记得这一两年冒出来的 Agent 框架:LangChain、AutoGen、CrewAI、Semantic Kernel……
跟它们相比,Eve + ARD 的差异在哪?
| 维度 | LangChain / AutoGen | Vercel Eve |
|---|---|---|
| 加一个工具 | 写注册代码 + 加进 chain | 扔个 .ts 文件到 tools/ |
| 框架学习曲线 | 需要读 100+ 页文档 | 5 分钟看完目录约定就上手 |
| 部署 | 自己搞 Docker / K8s | npx eve dev 一行命令 |
| 跨 Agent 通信 | 各家协议不统一 | ARD 通用规范 |
| 供应商锁定 | 容易绑定 LangChain / OpenAI | 用 AI Gateway 不绑死 |
一句话总结:LangChain 这类框架假设你是个写 Python 的后端工程师,熟悉抽象、配置、依赖注入。Eve 假设你是个写 Next.js 的前端工程师——文件放对地方就行,别跟我谈抽象。
而 ARD 解决的”Agent 之间互相找”这个问题,是 LangChain / AutoGen 这类框架根本没碰过的。它们只管自己的 Agent,不管外面的世界。
五、踩坑提醒:上手前要知道的三件事
我自己跑通 Eve hello world + ARD catalog 发布大概花了 25 分钟。下面几个坑你可能也会遇到,省得重新踩。
坑 1:Eve 的 agent/ 目录名字不能改
Eve 框架默认从项目根目录下的 agent/ 子目录加载所有配置。如果你习惯用 src/agent/ 或者 app/agent/,得在启动命令里手动指定:
npx eve dev --agent-dir src/agent文档里没写得很显眼,第一次跑 demo 失败的时候记得检查这个。
坑 2:ARD 的 catalog 必须放在 .well-known/ai-catalog.json
不是你想放哪儿就放哪儿。/.well-known/ 是 RFC 8615 规定的”知名 URI”前缀,registry 抓取的时候只认这个路径。放别的路径下,就算 JSON 内容一样也不会被索引。
坑 3:trust_level 设太严可能连不上任何东西
Eve 的 trust_level: "verified" 会强制要求 catalog 经过域名验证。如果你刚搭 demo,建议先设成 "any",等 catalog 发布成功之后再调成 "verified" 验证流程跑通。
discovery: {
enabled: true,
trust_level: "any", // 调试阶段先用这个
}
六、写在最后
6 月 17 日这天发生的事情,对普通用户来说意义不大——你大概率不会自己去写 Agent 框架、不会去挂 ARD catalog。
但对开发者来说,这是个明显的信号:
AI Agent 行业正在从”抢着发产品”转入”抢着建生态”。
之前两年大家看到的都是:”OpenAI 出了 Operator”、”Anthropic 出了 Computer Use”、”Google 出了 Gemini Agent”……一个比一个强。但这些 Agent 都是孤岛——它们有自己专用的工具集,自己专用的协议,自己专用的安全模型。
现在 Vercel Eve 在说”造 Agent 这件事应该有标准范式”(用文件系统约定),Google ARD 在说”Agent 之间应该有共同语言”(用 catalog + 域名验证)。这两件事加起来,意味着 Agent 这个行业要开始互联互通了。
跟 90 年代末互联网从”每个网站孤岛”进入”被搜索引擎和 DNS 连接起来”的过程一模一样。
那波基础设施搭建的红利期,诞生了 Google、AWS、Cloudflare 这些巨头。Agent 时代的基础设施红利期,现在刚开始。
如果你是个开发者,建议花一两个小时跑通 Eve 的 hello world + 发一个最简单的 ARD catalog。不为别的,就为了在基础设施还没被巨头瓜分完之前,先占个位。
这跟之前站里写过的 2026 是 AI Agent 元年 那篇文章里讲的”AI 不再是工具而是协作对象”是同一件事——只是今天这两件事,把”协作”两个字变成了真能跑的代码。
信息来源:
- Vercel Eve 官方 GitHub(6 月 17 日发布)
- Vercel Eve 官方文档:beta.eve.dev
- Google Developers Blog:Announcing the Agentic Resource Discovery specification(6 月 17 日)
- ARD 规范:agenticresourcediscovery.org
- MarkTechPost:Vercel Releases Eve(6 月 17 日)
- 51CTO:Vercel 放大招:前端 Agent 框架 Eve 来了(6 月 18 日)




发表回复