项目简介
eve 是一个「文件系统优先」的框架,用于构建持久的 AI 代理,Apache-2.0 许可,GitHub 4804 star。
核心思想:把 agent 的能力放在约定俗成的文件位置上,项目更易检查、扩展、运维。
快速开始
bash
# 初始化一个新 agent 项目
npx eve@latest init my-agent
# 指定模型
npx eve@latest init my-agent --model openai/gpt-5.6-terra
# 添加到现有项目
cd myapp
npx eve@latest init .
init 命令会创建目录、安装依赖、初始化 Git、启动交互式终端。
项目结构
my-agent/
└── agent/
├── agent.ts # 模型和运行时配置
├── instructions.md # 系统提示词(必需,始终开启)
├── tools/ # 类型化工具函数
├── skills/ # 按需加载的程序
├── channels/ # 消息通道(HTTP/Slack/Discord)
└── schedules/ # 周期性 cron 任务
最小示例
1. 改系统提示词 agent/instructions.md:
md
你是一个简洁的天气演示助手。告诉用户天气数据是模拟的。
2. 加工具 agent/tools/get_weather.ts:
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 };
},
});
3. 选模型 agent/agent.ts:
ts
import { defineAgent } from "eve";
export default defineAgent({
model: "zai/glm-5.2",
});
4. 启动:
bash
npm run dev
五个能力模块
| 模块 | 作用 | 特点 |
|---|---|---|
| instructions.md | 系统提示词 | 独立文件,可 git 管理、可非程序员审阅 |
| tools/ | 类型化工具 | defineTool + zod 约束输入输出 |
| skills/ | 按需加载程序 | 省 token、行为可控 |
| channels/ | 消息通道 | HTTP/Slack/Discord |
| schedules/ | 定时任务 | cron,agent 主动干活 |
中文版
我已将 README 完整中文化:https://github.com/yangshun2005/eve-cn
中文版保留了「文件系统即创作界面」的核心说明、目录结构、快速开始命令、最小示例代码,适合快速上手这套「约定优先」的 agent 组织方式。
如果这个项目对你有帮助,也欢迎动动小手去原仓库点个 Star,支持作者持续维护。