Vercel 把“文件目录”变成了 Agent 框架,Google 给 Agent 发了“通用语言”:6 月 17 日这两件事,普通人也能跟着玩

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 框架规定了一个标准目录布局:

Bash
my-agent/
└── agent/                      # 智能体核心目录
    ├── instructions.md         # 系统提示词(必填)
    ├── agent.ts                # 模型配置(可选)
    ├── tools/                  # 工具函数
    ├── skills/                 # 按需加载的技能文档
    ├── channels/               # 消息渠道(Slack/Discord/HTTP)
    └── schedules/              # 定时任务

框架会在启动时自动扫描这个目录,把里面所有该加载的东西都装上。你想加一个工具?扔个 .ts 文件到 tools/ 就行。你想接 Slack?扔个 slack.tschannels/ 就行。

这种”约定大于配置”的设计思路,借鉴的是 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

它定义了一套规范,让任何组织可以:

  1. 在自己域名下挂一个 ai-catalog.json 文件,列出自己提供的所有 Agent / Tool / Skill / MCP server
  2. 域名本身就是身份证明——因为你有这个域名的控制权,别人就知道 catalog 真的是你发的
  3. 任何 Agent 都可以通过”联邦式 registry”(类似搜索引擎)搜索到这些 catalog
  4. 找到之后,先验明正身再连接——避免被钓鱼的假工具坑了

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

打开终端,新建一个项目目录:

Bash
mkdir my-weather-agent
cd my-weather-agent
npm init -y

2.2 安装 Eve

Bash
npm install eve

Eve 现在还在 Beta 阶段(按 Vercel 公开 Beta 协议),但生产可用。装完之后,框架会顺便把文档也装到 node_modules/eve/docs——这点设计很贴心,AI 编码工具可以直接读本地文档,不用联网

2.3 创建 Agent 目录

按照 Eve 的约定,所有 Agent 配置都放在 agent/ 子目录里。手动建一下:

Bash
mkdir -p agent/tools

2.4 写系统提示词

agent/instructions.md(必填):

Bash
# 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(可选):

TypeScript
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

TypeScript
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 框架自带开发服务器,一行命令

Bash
npx eve dev

启动后你会看到类似下面的输出:

Bash
[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

TypeScript
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

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 都有 typetool / 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 会:

  1. 抓取你域名下的 ai-catalog.json
  2. 验证你真的拥有这个域名(DNS 校验 + TLS 校验)
  3. 把你的资源索引到全网搜索里

3.3 第三步:让 Agent 用 ARD 找资源

假设你做了一个内部 Agent,需要查实时天气数据。传统做法是:手动把 API URL 写死在代码里。

用 ARD 的做法是:

Bash
# 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)反向校验:

  1. catalog 是不是真的挂在 yourcompany.com 下(DNS + TLS 校验)
  2. 资源 endpoint 的证书是不是 publisher 域名的合法证书
  3. 可选:校验 catalog 的数字签名(publisher 用私钥签 catalog,registry 用公钥验签)

这就意味着——就算有人伪造了一个 catalog 文件放在别的域名下,因为 DNS 不匹配,Agent 也根本不会连过去

3.5 第五步:让 Eve Agent 接入 ARD

Eve 框架原生支持 ARD(6 月 19 日的更新刚加的)。你想让 Eve Agent 自动用 ARD 找工具,只需要在 agent.ts 里加一行:

TypeScript
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 / AutoGenVercel Eve
加一个工具写注册代码 + 加进 chain扔个 .ts 文件到 tools/
框架学习曲线需要读 100+ 页文档5 分钟看完目录约定就上手
部署自己搞 Docker / K8snpx 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/,得在启动命令里手动指定:

Bash
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" 验证流程跑通。

Bash
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 日)

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

推荐阅读

  • Vercel 把“文件目录”变成了 Agent 框架,Google 给 Agent 发了“通用语言”:6 月 17 日这两件事,普通人也能跟着玩

    Vercel 把”文件目录”变成了 Agent 框架,Google 给 Agent 发了”通用语言”:6 月 17 日这两件事,普通人也能跟着玩 如果你…

  • ChatGPT 学会“上闹钟”了:6 月 17 日新上线的计划任务功能,一份不啰嗦的实操指南

    ChatGPT 学会”上闹钟”了:6 月 17 日新上线的计划任务功能,一份不啰嗦的实操指南 如果你跟 ChatGPT 打过一年以上的交道,一定经历过这种时刻:今天突然想起来上…

  • 你的AI编程助手被人劫持了:Agentjacking攻击85%成功率,一份不废话的防御指南

    场景还原一下:你正在用 Claude Code 处理一个 Sentry 里积压的报错。输入”帮我修一下这些 unresolved issues”,Claude Code 通过 …

  • Copilot 按量计费两周了:你的账单还好吗?一份不废话的省钱实操指南

    两周前,也就是6月1号,GitHub Copilot 悄悄把计费方式从”包月随便用”改成了”按 Token 量实际算钱”。 当时公告发出来的时候,大多数…

暗夜独行