乐于分享
好东西不私藏

从 0 跑起来:安装、配置模型、完成第一轮真实任务

从 0 跑起来:安装、配置模型、完成第一轮真实任务

点击上方 前端Q,关注公众号

回复加群,加入前端Q技术交流群

我研究 Hermes Agent 的时候有个习惯:只看文档没用,必须自己亲手跑一遍

光看 README 你永远不会发现,原来"自学习"这件事,是真的会在你电脑上写文件的;原来 Skill 不是抽象概念,跑完一轮任务就能看到一个 markdown 文件躺在那。

所以这一篇,我把第一次上手 Hermes Agent 的全过程,从 0 跑通讲一遍。包括环境怎么配、模型怎么挂、第一轮任务该跑什么、跑完后看哪些产出。

读完这一篇,你应该能在自己电脑上跑出第一份 MEMORY.mdSKILL.md,对"自进化 Agent"有第一感性认知。

上手前先想清楚一件事

很多人上来就装环境、配模型、跑命令,跑完之后还是说不清"我刚刚到底干了啥"。

所以在你下命令之前,我建议先想清楚:你这一轮上手,是为了验证哪件事?

我的答案很明确:我要让 Hermes 完成一件真实任务,并产出第一个 Skill。

不是为了听它打招呼,不是为了让它写一段 hello world,是要让它做一件你平时会做的事,然后看它能不能把这件事的"做法"沉淀成一个 markdown 文件。

带着这个目标,整个上手过程就有了主线。每一步你都能问自己:这一步是不是在朝"产出第一个 Skill"靠近?

如果不是,跳过它没问题。

环境前置:3 件事先准备好

我装的过程中踩过几个坑,先把要点列前面。

第 1 件:Node / Bun 二选一

Hermes Agent 的核心是 TypeScript / JavaScript 项目。它对 Bun 友好度更高(启动快、原生 TS)。如果你机器上已经装过 Node 18+,先用 Node 也行。

bash
node -v   # >= 18
# 或
bun -v

我自己用 Bun,主要是因为它启动 Agent 这种"长期跑"的进程时延迟更友好。你怎么舒服怎么来。

第 2 件:模型 Key

至少要一个能跑的 LLM 接口。常见三选一:

OpenAI(GPT-4o、GPT-4.1)
Anthropic(Claude 3.5、Claude 4)
自部署 / 兼容 OpenAI 协议(比如 vLLM、OpenRouter、Bedrock)

我建议第一次上手选 Anthropic 或 OpenAI 的官方接口,因为:

Tool Calling 行为最稳定
长上下文好用
省得调"我这个推理服务为啥不返回 tool_call"

调通了之后再换自家服务,少绕弯路。

第 3 件:一个工作目录

Hermes 跑起来后会往磁盘写东西:MEMORY.mdUSER.mdSKILL.md、session 数据库。

强烈建议你单独开一个目录,比如 ~/projects/hermes-playground/。不要直接在你正经的项目目录里跑,免得日后要清理。

安装:别怕第一次报错

把仓库 clone 下来:

bash
git clone https://github.com/NousResearch/Hermes-Agent.git
cd Hermes-Agent

装依赖:

bash
# 用 bun
bun install

# 或用 pnpm / npm
pnpm install

第一次装大概率会有几个 warning,先不管。如果有 error 阻塞了,常见的就两类:

类型 1:Node 版本太低

Unsupported engine 或者 ?? 这种语法报错,多半是 Node < 18。升一下版本就行:

bash
nvm install 20
nvm use 20

类型 2:原生模块编译失败

某些依赖在 macOS 上要 Xcode CLI Tools,Linux 上要 build-essential。报 node-gyp 之类的,先把工具链补齐:

bash
# macOS
xcode-select --install

# Ubuntu / Debian
sudo apt install build-essential python3

我第一次装的时候卡在 better-sqlite3 编译失败,就是少了 Xcode CLI。补完一次性通过。

配置模型:别一开始就配 5 个

Hermes 配置文件里通常会有一堆模型槽位,比如 main_modelreview_modelmemory_model 之类。

很多人一上来就想"我要给每个槽位配一个最强的模型",结果配出来一堆 key 没一个跑得通。

我的建议:第一次上手只配一个 main_model 就行。

参考配置(.envconfig.json,具体看你 fork 的版本):

bash
ANTHROPIC_API_KEY=sk-ant-...
HERMES_MAIN_MODEL=claude-3-5-sonnet-20241022

或者:

bash
OPENAI_API_KEY=sk-...
HERMES_MAIN_MODEL=gpt-4o

记住一句话:你只是在验证"这个 Agent 能不能动",不是在选最优配方。

跑通之后再去调第二个 review 模型,到时候你会更清楚每个槽位是干嘛的。

第一次跑:让它干一件你今天本来就要干的事

很多教程的"hello world"是让 Agent 写个 fizzbuzz。我觉得太假。

我第一次让 Hermes 干的事是:帮我整理一下当前文件夹里的 markdown 文件,按"未发布"和"已发布"分两个子目录

为啥选这个?

  1. 它是真实的整理任务,我反正每周都要做一次
  2. 涉及到"读文件 → 判断 → 移动文件"几个工具调用
  3. 整理规则是有"判断标准"的,正好可以让 Hermes 提取成 Skill
  4. 跑完之后我能立刻验证:它有没有把这件事记下来

启动 Agent:

bash
bun run start
# 或者你 fork 里定义的入口命令

然后在 prompt 里输入:

帮我把当前目录下所有 markdown 文件按"是否已发布"分成
draft/ 和 published/ 两个子目录。判断标准是文件 frontmatter 里
有没有 published: true。

第一次跑你会看到几件事按顺序发生:

  1. Hermes 打招呼,说它要先列文件
  2. 调 ls / read 工具看文件列表
  3. 一个个读 frontmatter
  4. 调 mkdir / mv 工具把文件挪到对应目录
  5. 跑完,告诉你处理了几个文件

这一切看起来跟普通 Agent 没区别。但真正的差异,从这里才开始

任务跑完之后才是重头戏

普通 Agent 跑完任务就结束了。

Hermes 跑完之后,会安静地在后台再做一件事:让 Review Agent 评估你刚才这次任务,决定要不要把它沉淀进 Memory 或 Skill。

这件事可能不会立刻展示在你 UI 上,但它会改你的工作目录里的几个文件。

所以任务跑完,我会立刻去看 3 个文件

bash
ls -la
cat MEMORY.md
cat USER.md
ls .hermes/skills/

如果一切顺利,你会看到:

MEMORY.md 里多了一两行环境/项目事实

markdown
- Project root: ~/projects/hermes-playground/
- Markdown files use YAML frontmatter with `published` boolean.
- Default sort: published files go to `published/`, drafts to `draft/`.

SKILL 目录下出现了一个新的 markdown

text
.hermes/skills/sort-markdown-by-publish-status.md

打开这个 Skill,里面会有:

触发条件(when to use)
Steps(怎么做)
Verification(怎么确认做对了)
Pitfalls(小心什么)

这个文件,就是 Hermes 从这次任务里学到的"做法"

下次你再让它做类似任务,它会在拼 system prompt 的时候自动把这个 Skill 拽进上下文,相当于"自带攻略"。

这才是 Hermes 区别于普通 Agent 的真正意义。

第一次跑 vs 第三次跑

我第一次跑的时候,整理 30 个 markdown 文件用了大概 12 步工具调用。

第三次跑的时候,因为 Skill 已经在那里了,Hermes 拼 prompt 的时候会优先读 Skill,整个流程压到 6 步左右。

这是我第一次直观感受到"它越用越快"。

不是因为模型变快了,也不是因为我换了机器,是因为它把这次的"做法"沉到了 Skill 里,下次直接抄答案

我踩过的几个坑

坑 1:MEMORY.md 没生成

任务太简单(比如只问它"你好吗"),Review Agent 会判断"不值得保存",所以什么都不写。

解决:让它干一件有判断标准的活,让它真的"用工具"而不是"聊天"。

坑 2:Skill 写得很糟糕

第一次跑出来的 Skill 经常很糙,可能就两三行 step。

这是正常的。Hermes 设计上 Skill 是允许"持续 patch"的,第一版只要有骨架就行,下次复用时不顺利的地方它会自动改。

不要追求一次 Skill 写得完美,那不是 Hermes 的工作方式。

坑 3:Review Agent 把无关信息塞 Memory

有时候你随口说一句"我电脑挺慢的",它真的会把这条写进 MEMORY.md。

解决:直接打开 MEMORY.md 删掉那一行就好。Hermes 把 Memory 文件设计成可读可写的纯文本,就是为了让你能直接干预。

坑 4:模型 token 涨太快

每次任务都会带 Memory + 当前激活的 Skill 进系统 prompt。如果你 Memory 写得太啰嗦、Skill 攒得太多,token 涨得很猛。

解决:定期清理 Memory(删过期事实),按场景给 Skill 打 tag,只在相关任务时激活。后面专门有一篇会聊 Memory 治理。

上手 vs 稳定使用的心智差别

第一次跑通和真正"用顺",不是一回事。

我观察到一个规律:很多人停留在"我跑通了第一次",没继续往下走,所以始终没体验到 Hermes 真正的好处

第一次跑通只是"看到自学习这件事是真的"。

真正用顺,是要跑过 5-10 个真实任务,让 Memory 里有几条干货事实、Skill 目录里有 3-5 个能复用的能力,你才能感觉到"这玩意确实在帮我"。

我的上手 checklist

如果你今天就要从 0 跑通,给你一个我自己用过的 checklist:

text
□ Node 18+ 或 Bun 已就绪
□ 一个 LLM Key(Anthropic / OpenAI 任选)
□ 单独建一个 playground 目录
□ 只配 main_model,不要贪心
□ 选一个真实有判断的任务(不是 hello world)
□ 跑完后立刻 cat MEMORY.md / ls .hermes/skills/
□ 同样的任务再跑 1-2 次,体感越用越快
□ 翻一下生成的 Skill,必要时手动 patch

跑完上面 8 步,你对"自进化 Agent"的理解就不会再停留在概念层面了。

聊聊我的理解

第一次跑 Hermes,我最大的感受不是"它有多智能",而是"它把 Agent 的工作流程从一次性变成了持续性"。

普通 Agent 给我的感觉像零工。这次活干完了,下次再来,它对你一无所知。

Hermes 给我的感觉更像是雇了一个新员工。第一天上班磕磕绊绊,但他每天都在写日志、记规范、攒经验。一个月后他做同样的事会快得多,也更不容易出错。

这种"沉淀感",是我之前用各种 Agent 没体验过的。

所以如果你也想真正理解自进化 Agent 是什么,别只看 README,别只看视频。今天花 30 分钟,把它跑起来,让它替你干一件你今天本来就要干的活

跑完之后,去看那个生成的 Skill 文件。

那一刻你会理解,为什么这个系列后面值得继续看下去。

往期推荐

Multi-Agent Teams:让多个专家 Agent 像团队一样协作
AI Agent 是怎么"想一步做一步"的?拆解 ReAct 模式
从零开始:用 LangChain.js 构建你的第一个 Tool-Calling Agent
最后
点个在看支持我吧