当前位置: 首页 > news >正文

Vercel Eve 快速入门:使用 eve init 构建你的第一个 Agent

上一篇:《一个目录一个 Agent,Vercel Eve 的这套 Agent 架构设计太舒服了!》 我们聊了 Eve 为什么值得关注:它不是再提供一种模型调用写法,而是把 Agent 运行所需的项目结构、持久执行、沙箱、审批、渠道和评测等能力,放进一套 filesystem-first 的工程框架里。

这一篇开始动手。

目标很小,只做一个能跑起来的 SpringForAll 内容运营助手:

  • 使用 eve init 创建项目;
  • 使用 Vercel AI Gateway 调用模型;
  • 编写最小的 Agent 配置和 always-on instructions;
  • 通过 Eve CLI 的 chat 界面完成一次对话;
  • 暂时不引入自定义 Provider、skills、subagents、sandbox、tools、schedules、evals。

对应样例工程在:

example/01-first-agent/

准备环境

Eve 当前要求 Node.js 24 或更高版本。先确认版本:

node -v

如果低于 24,可以用 nvm 切换:

nvm install 24
nvm use 24

还需要准备一个 Vercel AI Gateway API Key。第一篇先走全套 Vercel 方案,不处理自定义 OpenAI-Compatible Provider。模型切换、自定义 base URL、API key 和上下文窗口预算,会放到下一篇展开。

eve init 创建项目

进入系列仓库的样例目录:

cd example

执行:

npx eve@latest init 01-first-agent

eve init 会做几件事:

  • 创建 01-first-agent/ 目录;
  • 写入最小 Agent 文件;
  • 安装依赖;
  • 生成内置 Eve channel;
  • 初始化本地开发所需配置。

创建完成后进入项目:

cd 01-first-agent

本文最终整理后的核心结构大致是:

example/01-first-agent/package.jsontsconfig.json.env.exampleagent/agent.tsinstructions.mdchannels/eve.ts

这里最值得先记住的是 agent/ 目录。

Eve 的设计是:一个目录就是一个 Agent 的 authored surface。模型配置、系统提示词、工具、技能、子 Agent、渠道、定时任务,都会逐步放在这个目录下面。

从 eve init 到第一个可运行 Agent

先看 package.json

eve init 会写好常用脚本:

{"scripts": {"build": "eve build","dev": "eve dev","start": "eve start","typecheck": "tsc"}
}

这一篇主要用两个命令:

npm run dev
npm exec -- eve info

npm run dev 会启动 Eve 本地开发 TUI,也就是我们用来聊天的 CLI 界面。

eve info 不启动聊天界面,只检查 Eve 是否正确发现了项目里的 Agent 文件。后续目录越来越多时,这个命令会很有用。

配置第一个 Agent

打开 agent/agent.ts,改成下面这样:

import { defineAgent } from "eve";const defaultGatewayModelId = "minimax/minimax-m3";export default defineAgent({model: process.env.EVE_GATEWAY_MODEL_ID ?? defaultGatewayModelId,modelContextWindowTokens: 200_000,
});

defineAgent 是 Agent 的运行配置入口。

这里先只做两件事:

第一,指定模型。字符串形式的模型 ID 会通过 Vercel AI Gateway 路由。为了方便调整,我们允许用环境变量 EVE_GATEWAY_MODEL_ID 覆盖默认模型。

第二,显式写了 modelContextWindowTokens。这是一个很现实的 beta 细节:如果 Eve 当前还没有拿到某个 Gateway 模型的上下文窗口元数据,构建时可能会提示无法编译 compaction 配置。显式声明上下文窗口可以让样例先稳定跑起来。

正式项目里,这个值应该按所选模型的真实上下文窗口调整。下一篇接入自定义 Provider 时,我们会把模型配置、上下文窗口、token 预算和失败边界一起讲清楚。

编写 instructions

接下来改 agent/instructions.md

它是 Agent 的 always-on system prompt。Eve 会把这份内容放进每一轮模型调用里,所以它适合写稳定身份、长期规则和行为边界,不适合塞一整套临时工作流程。

这一篇先写一个很小的 SpringForAll 内容运营助手:

# SpringForAll Content AssistantYou are the first content operations assistant for the SpringForAll community.Your mission is to help maintain a Chinese technical community for Java and Spring developers.## Responsibilities- Explain what you can do for SpringForAll content operations.
- Help brainstorm Java, Spring, Spring AI, Spring Cloud, JVM, backend engineering, and developer tooling topics.
- Turn vague topic ideas into practical article angles, outlines, and follow-up questions.
- Keep answers practical and useful for engineers.
- Ask for human confirmation before treating any content as publish-ready.## Current limits- You do not have skills yet.
- You do not have subagents yet.
- You do not have custom tools yet.
- You do not publish content automatically.
- You should not claim to have checked live sources unless the user provides them in the conversation.## Output style- Write in concise Chinese by default.
- Use Markdown when structure helps.

我会刻意在早期 instructions 里写清楚限制。

这不是给 Agent 降能力,而是让它知道当前阶段的边界:它现在只是一个基础聊天 Agent,还没有搜索工具、内容工作流、审稿 checklist,也没有自动发布能力。

如果一开始就让它表现得像完整内容团队,后面加 skills、subagents 和 sandbox 时,读者反而看不清每一步到底解决了什么问题。

用 instructions 固定角色、职责和边界

配置环境变量

创建 .env.example

EVE_GATEWAY_MODEL_ID=minimax/minimax-m3
AI_GATEWAY_API_KEY=

本地运行时复制一份:

cp .env.example .env

然后填入自己的 Vercel AI Gateway Key:

EVE_GATEWAY_MODEL_ID=minimax/minimax-m3
AI_GATEWAY_API_KEY=你的_Vercel_AI_Gateway_Key

.env 不应该提交到 Git。仓库里只保留 .env.example,让读者知道需要哪些变量。

如果还没有 API Key,也可以先运行:

npm exec -- eve info

这个命令只检查项目结构,不会真正发起模型调用。

验证 Eve 是否发现了 Agent

运行:

npm exec -- eve info

如果正常,会看到类似结果:

Application
App Root      .../example/01-first-agent
Agent Root    .../example/01-first-agent/agent
Layout        nested
Compile       ready
Diagnostics   0 errors, 0 warnings
Instructions  instructions.md
Skills        0 skills

这里我们主要确认三件事:

  • Eve 找到了 agent/ 目录;
  • instructions.md 被识别;
  • 当前还没有 skills,符合这一篇的目标。

也可以运行构建:

npm run build

构建通过,说明 Eve 可以把当前 Agent 编译成可运行输出。

启动 CLI chat

现在启动开发模式:

npm run dev

这个命令实际执行的是:

eve dev

启动后会进入 Eve 的交互式 TUI。在里面输入:

你是谁?你能帮 SpringForAll 做什么?

预期结果不是“模型能回复一句话”这么简单,而是要验证 instructions 是否生效。

一个合格的回答应该满足:

  • 用中文回答;
  • 知道自己是 SpringForAll 内容运营助手;
  • 能说明可以帮助做选题、文章角度整理、提纲建议等工作;
  • 不会声称自己能自动发布文章;
  • 不会声称自己已经联网检索了资料。

这一步很关键。

用 CLI chat 验证 Agent 行为是否生效

我们不是只在验证 API Key 是否可用,而是在验证 agent/instructions.md 真的改变了 Agent 的行为。

这一版最小 Agent 有什么

回头看这个工程,它的能力非常克制:

example/01-first-agent/package.json       # npm 脚本和依赖tsconfig.json      # TypeScript 配置.env.example       # 环境变量模板agent/agent.ts         # Agent 运行配置instructions.md  # Agent 角色和行为说明channels/eve.ts         # eve init 生成的内置 channel

这一篇只完成下面几件事:

  • 有一个主 Agent;
  • 有一份 always-on instructions;
  • 使用 Vercel AI Gateway 模型;
  • 可以通过 Eve CLI chat 对话;
  • 可以通过 eve infoeve build 验证项目结构。

它暂时没有:

  • 自定义 Provider;
  • skills;
  • subagents;
  • sandbox;
  • tools;
  • schedules;
  • evals。

这正是我们想要的状态。后面每新增一个目录或能力,都能对应一个明确的问题,而不是把所有概念一次性塞进第一个 demo。

小结

这一篇,我们用 eve init 创建了第一个可运行的 SpringForAll 内容运营 Agent,并完成了最小配置:

  • agent/agent.ts 负责模型和运行配置;
  • agent/instructions.md 负责 Agent 的稳定身份、职责和边界;
  • .env.example 记录运行所需环境变量;
  • eve info 可以检查 Eve 发现的 Agent 结构;
  • eve dev 可以进入 CLI chat 验证 instructions 是否生效。

本篇对应的样例工程在这里:

  • example/01-first-agent

如果你觉得这个系列对你了解 Eve 或 Agent 工程化有帮助,欢迎给仓库点个 Star:

  • vercel-eve-content-team-tutorial

下一篇,我们会处理一个很现实的问题:如果不想只使用 Vercel AI Gateway,或者希望接入自己的 OpenAI-Compatible Provider,Agent 的模型配置应该怎么设计?

http://www.jsqmd.com/news/1060609/

相关文章:

  • 2026年EI论文辅导机构哪家强?实测10家机构,权威性、性价比深度解析 - 艾德思Editsprings
  • Eazo界的碳硅契引路人APP上线
  • 2026 北京黄金回收交易避坑完整手册,教你辨别虚高报价引流套路 - 奢侈品回收测评
  • AI伦理研究中的脆弱性数据治理:从数据主体关怀到实践链路审视
  • 2026年研究生论文辅导保过机构TOP10:口碑、师资、成功率全维度实测! - 艾德思Editsprings
  • 北京地铁沿线黄金回收门店盘点,2026 通勤人群便捷变现渠道汇总 - 奢侈品回收测评
  • Hermes大模型网关本地部署指南:Docker+Rust双轨实战
  • 出租房租金收缴的“人情账“:物业系统如何让催租不再尴尬
  • LlamaFactory训练管线深度解析:从数据加载到损失计算的全流程
  • 2026邯郸万国手表回收丛台区毓典寄卖行十年实体门店专业回收 - GrowthUME
  • 2026年京津冀商业空间装修服务商选型指南:办公室工装、门店装修、写字楼改造怎么选 - 年度推荐企业名录
  • Moonlight TV终极指南:3步将LG电视变身高性能游戏大屏
  • 2026年山东德州超高分子量聚乙烯板材源头厂家选型指南 - 年度推荐企业名录
  • 2026保姆级教程:超大Word文档瘦身技巧,手把手教你压缩Word文件大小、减少图片占用体积 - AI测评专家
  • 蓝速科技会议预约电子门牌深度评测:中小企业低成本部署实战
  • YOLO26在口腔全景片AI分析中的实战:从牙齿检测到疾病分割
  • 深度解析:不干胶标签哪家好?一篇读懂选型要点与优质实践 - 热点速览
  • 大语言模型推理本质:从思维链到潜在状态轨迹的深度解析
  • AI智能体系统五层架构:从模型到工业级落地的工程化路径
  • 2026年6月硬核GEO系统哪家靠谱榜单TOP5:深度方案与标杆案例解析 - 资讯报道
  • 避坑指南|2026 年 6 月劳力士官方维修中心实地真实性核验报告,全国 60 余家正规门店实地调研汇总 - 劳力士中国服务中心
  • 重点看成本控制与快反效率:广告笔定制厂家五维评测排名 - 资讯焦点
  • 南京封切收缩机厂家TOP5推荐实测|产品塑封包装怎么选?正规靠谱设备供应商选购指南 “江苏封切机收缩机厂家排名”、“南京热收缩包装机生产企业”、“南京封切收缩机厂家推荐” - 安互工业信息
  • Serverless 部署实战:冷启动优化与边缘计算的性能调优策略
  • 多人一起看球点外卖怎么凑单更优惠?手把手教你用美团一折撸福利 - 资讯焦点
  • 2026年6月最新|劳力士中国官方售后体系焕新,全国门店地址及热线完整汇总 - 劳力士中国服务中心
  • 2026衡水空调维修公司排名|本地口碑好的正规上门平台推荐 - 邻家快修
  • DigitalOcean认证API构建实战:从JWT到Nginx网关的全栈安全体系
  • LLM Agent 怎么测评:IBM+Yale 评测综述与 2026 三条新范式
  • 北京钻石黄金回收,收的顶持证鉴定师,全程无损测金 - 奢侈品回收测评