vercel/eve
Vercel 发布了开源 AI agent 框架 eve(beta 版),采用文件系统优先的设计,将 agent 能力(指令、工具、技能、通道、定时任务)组织在约定目录结构中,便于检查、扩展和运维。用户可通过 `npx eve@latest init` 快速创建项目,支持 Anthropic Claude Sonnet 5 等模型,并提供 TypeScript 工具定义与 Zod 输入验证。项目托管于 GitHub,社区通过 Discussions 协作。
eve 是一个以文件系统为先的持久化 AI agent 框架。核心 agent 能力位于约定位置,因此项目更易于检查、扩展和运维。
文件系统即创作界面
一个典型的 eve agent 具有以下结构:
my-agent/
└── agent/
├── agent.ts # 可选:模型和运行时配置
├── instructions.md # 必需:始终开启的系统 prompt
├── tools/ # 可选:模型可调用的类型化函数
│ └── get_weather.ts
├── skills/ # 可选:按需加载的流程
│ └── plan_a_trip.md
├── channels/ # 可选:消息通道(HTTP、Slack、Discord)
│ └── slack.ts
└── schedules/ # 可选:周期性 cron 任务
└── weekly_recap.ts
阅读文档了解完整的项目布局和指南。
快速开始
npx eve@latest init my-agent
这会创建一个新的 my-agent 目录,安装其依赖,初始化 Git,并启动交互式终端 UI。
要将 eve 添加到现有项目,传入路径:
cd myapp
npx eve@latest init .
[!NOTE]
eve包包含其完整文档,因此编码 agent 可以从node_modules/eve/docs本地读取。
最小示例
生成的项目包含一个 agent 目录。将 agent/instructions.md 替换为:
你是一个简洁的天气演示助手。告诉用户天气数据是模拟的。
在 agent/tools/get_weather.ts 添加一个模拟天气工具:
import { defineTool } from "eve/tools";
import { z } from "zod";
export default defineTool({
description: "返回某个城市的模拟天气数据。",
inputSchema: z.object({ city: z.string().min(1) }),
async execute({ city }) {
return { city, condition: "Sunny", temperatureF: 72 };
},
});
在 agent/agent.ts 中选择模型:
import { defineAgent } from "eve";
export default defineAgent({
model: "anthropic/claude-sonnet-5",
});
对于新脚手架,再次启动 agent:
npm run dev
这就是一个可运行的 agent。根据需要添加人工介入 prompt、子 agent 和调度任务。按照首个 agent 教程获取完整指导。
社区
eve 社区位于 GitHub Discussions,你可以在那里提问、分享想法并展示你的成果。
贡献
欢迎贡献。请参阅 CONTRIBUTING.md 在本地运行仓库并提交变更,使用 issues 和 discussions 进行协作。参与即表示你同意我们的行为准则。
安全
请勿公开提交安全漏洞的 issue。请遵循 SECURITY.md 并负责任地向 responsible.disclosure@vercel.com 报告。
Beta 条款
eve 目前处于 beta 阶段,受 Vercel beta 条款约束;框架、API、文档和行为可能在正式发布前发生变化。