eve
eve 是一个以文件系统优先(filesystem-first)的框架,用于构建可持久运行的 AI 智能体。其核心智能体能力都位于约定俗成的位置,因此项目更易于检视、扩展与运维。
文件系统即创作界面
一个典型的 eve 智能体具有如下结构:
my-agent/
└── agent/
├── agent.ts # 可选:模型与运行时配置
├── instructions.md # 必填:始终生效的系统提示
├── tools/ # 可选:模型可调用的强类型函数
│ └── get_weather.ts
├── skills/ # 可选:按需加载的操作流程
│ └── plan_a_trip.md
├── channels/ # 可选:消息通道(HTTP、Slack、Discord)
│ └── slack.ts
└── schedules/ # 可选:周期性执行的定时任务
└── weekly_recap.ts
完整项目结构与使用指南请参阅文档。
快速开始
npx eve@latest init my-agent
该命令会创建一个新的 my-agent 目录,安装其依赖,初始化 Git,并启动交互式终端界面。
若要使用其他 AI Gateway 模型,可传入其模型 ID:
npx eve@latest init my-agent --model openai/gpt-5.6-terra
若要将 eve 添加到现有项目中,可传入路径:
cd myapp
npx eve@latest init .
[!NOTE]
eve包内置完整文档,因此编码智能体可以直接从node_modules/eve/docs在本地阅读。
一个最小示例
生成的项目中包含一个 agent 目录。将 agent/instructions.md 替换为:
You are a concise weather demo assistant. Tell users that the weather data is mocked.
在 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) }),
async execute({ city }) {
return { city, condition: "Sunny", temperatureF: 72 };
},
});
在 agent/agent.ts 中选择模型:
import { defineAgent } from "eve";
export default defineAgent({
model: "openai/gpt-5.6-luna-fast",
});
如果是新创建的项目脚手架,再次启动智能体:
npm run dev
这样就得到了一个可运行的智能体。按需加入人工介入(human-in-the-loop)提示、子智能体(subagents)和定时任务即可。完整步骤请参考第一个智能体教程。
社区
eve 社区位于 GitHub Discussions,你可以在这里提问、分享想法,以及展示你构建的作品。
贡献
欢迎贡献。参见 CONTRIBUTING.md 以在本地运行本仓库并提交更改,并使用 issues 与 discussions 开展协作。参与即表示你同意我们的行为准则(Code of Conduct)。
安全
请勿为安全漏洞开启公开 issue。请遵循 SECURITY.md,并以负责任的方式通过 responsible.disclosure@vercel.com 进行报告。
Beta 条款
eve 当前处于 Beta 阶段,并受 Vercel Beta 条款约束;在正式发布(GA)之前,框架、API、文档与行为均可能发生变化。