惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

宝玉的分享
宝玉的分享
酷 壳 – CoolShell
酷 壳 – CoolShell
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
S
Security @ Cisco Blogs
小众软件
小众软件
D
Docker
博客园_首页
A
About on SuperTechFans
P
Privacy International News Feed
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
A
Arctic Wolf
Spread Privacy
Spread Privacy
有赞技术团队
有赞技术团队
T
Tailwind CSS Blog
Latest news
Latest news
WordPress大学
WordPress大学
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
T
The Exploit Database - CXSecurity.com
C
Cybersecurity and Infrastructure Security Agency CISA
大猫的无限游戏
大猫的无限游戏
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
K
Kaspersky official blog
V2EX - 技术
V2EX - 技术
SecWiki News
SecWiki News
U
Unit 42
GbyAI
GbyAI
H
Hackread – Cybersecurity News, Data Breaches, AI and More
L
LINUX DO - 热门话题
S
Security Affairs
Y
Y Combinator Blog
aimingoo的专栏
aimingoo的专栏
Blog — PlanetScale
Blog — PlanetScale
MongoDB | Blog
MongoDB | Blog
博客园 - 【当耐特】
The GitHub Blog
The GitHub Blog
T
Tenable Blog
W
WeLiveSecurity
Cloudbric
Cloudbric
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
G
Google Developers Blog
Application and Cybersecurity Blog
Application and Cybersecurity Blog
N
Netflix TechBlog - Medium
F
Full Disclosure
N
News and Events Feed by Topic
D
DataBreaches.Net
P
Proofpoint News Feed
B
Blog RSS Feed
B
Blog
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org

博客园_首页

Linux实操--组管理、权限管理和定时任务 Java + EasyExcel 实现单个接口导出多个Excel Mem0 源码解析系列(二):提示词工程的深度剖析 Openclaw TaskFlow究竟是什么?和普通Skill技能有什么区别 博文阅读密码验证 - 博客园 嘉立创开源:应该是全网MicroPython教程最多的开发板 Hermes Agent 集成实践:从协议到生产 2026年AI编程工具横评:Cursor、Codex、Claude Code、Zed、Windsurf Java程序员必看的RAG入门教程 2026 AI效率神器:Superpowers + Claude Code 保姆级教程 本地大模型部署全攻略:从 0 到 1 玩转 Ollama 【从0到1构建一个ClaudeAgent】内存管理-上下文压缩 .NET 高级开发 | 设计、实现一个事件总线框架 电子小白入门之NE555 3. WorkBuddy:隐藏玩法,一键召唤专家,让 AI 以"专家身份"给你干活 和AI一起搞事情#3:Claude Teammate 游戏开发翻车实录 【OpenClaw】通过 Nanobot 源码学习架构---(7)Memory C# .NET 周刊|2026年3月3期 我在 Debian 11 上把 K8s 单机搭起来了,过程没你想的那么顺(/opt 目录版) 深度学习进阶(七)Data-efficient Image Transformer CLI+Skill搭建浏览器AI自动化框架,告别一切重复枯燥任务 告别Token账单无底洞:OpenClaw本地部署,重塑企业数据主权的唯一解 FastAPI+Vue:文件分片上传+秒传+断点续传,这坑我帮你踩平了! SBTI 爆火后,我做了个程序员版的 CBTI。。已开源 + 附开发过程 多模态检索开始进入工程期:用 Sentence Transformers 搭建可落地的 Multimodal RAG 100多行代码实现一个最简单的Agent(用ReAct) Claude Code 通关手册(八):推荐 5 个 Hooks,代码质量提升 3 倍 老板:“有人截图了!”。安全部门:“收到,马上查暗水印!” - why技术 技术之外,皆是人间 C#/.NET/.NET Core技术前沿周刊 | 第 69 期(2026年4.01-4.12) Snack JSONPath 项目架构分析 Claude Code Buddy 小析:一个非核心功能,如何体现产品的细节完成度 AI新时代下的图床管理方案-Cloudflare图床+MCP+Skills方案指南 化繁为简:顺丰速运App如何通过 HarmonyOS SDK实现专业级空间测量 从零实现富文本编辑器#13-React非编辑节点的内容渲染 AI开发-python-langchain框架(3-23-OpenAI Functions风格Tool Calling智能助手) .NET + AI 进阶实战:基于类的技能开发 - 打造可治理的 Agent 能力模块 【从0到1构建一个ClaudeAgent】规划与协调-技能 上周热点回顾(4.6-4.12) 电子小白的工具三件套:面包板、杜邦线、万能板 单表五亿数据的查询优化 | Mysql、StarRocks 2. WorkBuddy:从“我是谁”到“帮我干活” C# 如何减少代码运行时间:7 个实战技巧 基于HelixToolkit.SharpDX 渲染3D模型 - 笺上知微 从零开始的双臂具身VLA起源及现阶段发展综述 - SkyXZ 记对 xonsh shell 的使用, 脚本编写, 迁移及调优 - pluvium27 受够了Vibe Coding的失控?换个起点,让AI事半功倍 从开始配置漏洞环境到漏洞复现流程 - 難しい 关于10年工作经验的程序员对OpenClaw的实战经验分享以及看法 - 虚无境 Any metadata 的内存布局 C# .NET 周刊|2026年3月2期 - InCerry 我帮你测过了,测试圈排名第二的 Skill 依然很牛逼 Skill Discovery | 无监督技能发现的经典工作总结 - MoonOut PbootCMS 网站内容数量多导致访问慢?这些实用优化方案帮你提速! - 家兴网络技术工作室 上下文工程是什么?过时了么?一文讲明白! - 一枫说码 网站漏洞怎么发现并修复?一篇实用指南(附完整流程) - 家兴网络技术工作室 开了 TUN 模式还是直连?90% 的人都踩过这个坑 Github日报|2026年04月12日 - AI一族 AScript扩展多种脚本语言 - rockey627 AI 学习笔记:Agent 的记忆机制 你能被装进一个文件里吗?——7 万人把同事"蒸馏"成了 AI - 我没有三颗心脏 Claude Code 通关手册(七):给 AI 装上技能包——Skills 完全指南 - 暮色之狐 在浏览器中快速编辑代码:VSCode Web 集成实践 - Newbe36524 蒸馏自己 skill?基于 Deepseek 的蒸馏器,丐版蒸馏方式,简单便捷 - To_Carpe_Diem Spring AI Aliababa和AgentScope,哪个更好? - 苏三说技术 Etsy 把 1000 个 MySQL 分片迁进 Vitess:425TB 数据背后的真正问题不是性能,而是运维规模 MicroPython LVGL基础知识和概念:底层渲染与性能优化 - FreakStudio 数据库草图算法 Python 潮流周刊#146:CPython 引入 Rust 的进展 - 豌豆花下猫 最小生成树 - mofei1116 红日靶场七:从外网入口、容器逃逸到 AD 接管的完整利用链复盘 - YouDiscovered1t 分享四款开源且实用的 Kafka 管理工具 - 追逐时光者 vLLM 权重加载机制全解析:从挑战到理想架构 LCT 学习笔记 - ACehomoxue Avalonia UI 12.0.0 正式发布:架构演进和性能飞跃 - 张善友 当 AI Agent 把调用链拉长,延迟开始成为一门生意 conhost.exe 无法显示 U+2717 - 145a 太秀了,我把自己蒸馏成了 Skill!已开源 - 程序员鱼皮 ASP.NET Core 内存缓存实战:一篇搞懂该怎么配、怎么避坑 基于 Ghostty 带有分割标签页和为 Claude 编程设计的通知终端 - BugShare AI 焊死入口:教育的“操作系统级”重塑 - 郝hai 初级Java开发工程师使用sql脚本编写代码的过程是简单而且不糊涂 - CoderOilStation Claude Code通关手册(六):MCP协议完全指南 - 暮色之狐 边框灯光环绕动画特效实现指南 - Newbe36524 开源:子木蒸馏版的 SEO 审计工具 seo-audit-skill v1.0 我所理解的Python元模型 【从0到1构建一个ClaudeAgent】规划与协调-TodoWrite - 程序员Seven Claude 和 Codex 在审计 Skill 上性能差异探究 - ACai_sec AScript如何实现中文脚本引擎 - rockey627 【渗透测试】HTB Season10 Garfield 全过程wp - dynasty_chenzi Android 开发者为什么必须掌握 AI 能力?端侧视角下的技术变革 树状数组正确性证明 - AC-wyr 你的 AI 焦虑,可能比 AI 本身更危险——ATM 机没有消灭银行柜员,但恐慌消灭了你的判断力 - 我没有三颗心脏 一个拉胯的分库分表方案有多绝望?整个部门都在救火! - 冰河团队 动态规划入门必学之走方格问题 - Ofnoname PostgREST 与 PostgreSQL 角色权限配置全解析(生产级实践) - SheepDog1998 使用 UEFI 图形输出协议 GOP 在屏幕上显示图像的方法 - 阿源- Claude Code通关手册(五):组建你的AI专家团队,子代理系统 - 暮色之狐 一个程序员到架构师的催婚路之感悟(整整10年后的催婚相亲感悟) - MisterLip 用 Agent Skill 自动生成工作周报 - 赵康
Vercel Eve 快速入门:使用 eve init 构建你的第一个 Agent
程序猿DD · 2026-06-22 · via 博客园_首页

上一篇:《一个目录一个 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.json
  tsconfig.json
  .env.example
  agent/
    agent.ts
    instructions.md
    channels/
      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 Assistant

You 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 是否生效。

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

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

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