☰
一文带你了解火过 OpenClaw 的 Hermes Agent:从 SKILL.md 到 Learning Loop 的配置骨架
2026/9/29 8:29:03 网站建设 项目流程

1. 先搞清楚 Hermes Agent 到底在解决什么问题

Hermes Agent 是 Nous Research 开源的一个通用 Agent 系统,官方给它贴的标签是“The self-improving AI agent”。它和 OpenClaw 常被放在一起比较,但两者的重心并不一样:OpenClaw 更像控制面,管入口、会话、权限和路由;Hermes 更像学习循环,管执行过程中沉淀下来的方法和经验。换句话说,OpenClaw 存储你说了什么,Hermes 存储它学到了什么。

这个“学到了什么”的载体就是 Skill。它不是插件,也不是扩展,而是 Agent 在完成复杂任务后自动生成的一份操作手册,文件名固定为 SKILL.md。格式很朴素:YAML 头部写名称、描述、标签、版本,Markdown 正文写使用场景、操作步骤、常见坑和验证方法。文件默认落在~/.hermes/skills/目录下。

对开发者来说,Hermes 最值得上手的点有两个:一是 Skill 的目录结构和加载机制足够透明,你可以直接读、直接改;二是 Learning Loop 的触发条件明确,不是玄学。简单问答不会触发,只有成功完成 5 次以上 tool call 的复杂任务,Agent 才会抽象步骤、生成或 patch SKILL.md。这篇文章就围绕这两点,把配置骨架和验证动作拆开讲清楚。

2. 前置准备:TaoToken 接入与 Hermes 环境

在动手写 SKILL.md 之前,先把模型接入这一层理顺。Hermes Agent 本身不绑定特定模型供应商,你可以通过兼容 OpenAI 协议的方式接入。我这边习惯用 TaoToken 来做模型接入层,原因是它的 API 地址和 Key 管理比较直接,调试 Agent 时切换模型不用改太多配置。

你需要先拿到一个可用的 API Key。打开 TaoToken 控制台,在 API Keys 页面创建一个新 Key,复制出来备用。控制台地址是 https://taotoken.net/console ,接入文档在 https://taotoken.net/doc ,这两个页面建议都开着,后面配 config.toml 时会反复对照。

模型对话调试可以用 https://taotoken.net/models ,如果你想先确认某个模型能不能正常返回,在这里发一条测试消息最快。长期跑编码类 Agent 任务的话,Coding Plan 页面 https://taotoken.net/coding-plan 有对应的套餐说明,按自己的调用量选就行。

环境这边,Hermes Agent 需要 Python 3.10 以上,建议用虚拟环境隔离。装完之后确认hermes命令能跑起来,再往下走。API 基础地址填https://taotoken.net/api,注意这个地址不带任何查询参数,Key 放在 Authorization 头里。

3. 可复制配置:SKILL.md 目录结构与 config.toml 骨架

先看目录结构。Hermes 的 Skill 按类别分目录,每个 Skill 一个文件夹,里面至少有一个 SKILL.md。下面是我实测下来比较清晰的一种组织方式:

~/.hermes/ ├── config.toml └── skills/ ├── creative/ │ └── architecture-diagram/ │ └── SKILL.md ├── devops/ │ └── deploy-check/ │ └── SKILL.md └── research/ └── code-survey/ └── SKILL.md

SKILL.md 的 YAML 头部字段不多,但每个都有用。下面是一个可直接复制的骨架,我以 architecture-diagram 为例:

--- name: architecture-diagram description: 根据技术栈描述生成系统架构图,输出独立 HTML 文件 tags: - diagram - architecture - svg version: 1.2.0 --- ## 使用场景 当用户要求绘制系统架构图、部署拓扑图或技术栈关系图时使用本 Skill。 ## 操作步骤 1. 分析需求,识别组件数量与层级关系 2. 规划布局,计算各组件坐标 3. 生成 SVG,按技术产品 logo 色填充 4. 包装成独立 HTML 文件 5. 输出文件路径并提示用户打开 ## 常见坑 - 组件超过 8 个时布局容易重叠,需增加间距校验 - 连线路由在密集场景下会交叉,需做避让处理 ## 验证方法 - 打开生成的 HTML,确认组件无重叠 - 确认连线不穿过组件色块 - 确认文件可独立在浏览器中渲染

config.toml 这边,核心是把模型接入和 Skill 目录指对。下面这份骨架可以直接改:

[model] provider = "openai-compatible" base_url = "https://taotoken.net/api" api_key = "sk-你的Key" model_name = "gpt-4o" [agent] skill_dir = "~/.hermes/skills" learning_loop = true min_tool_calls_for_skill = 5 [logging] level = "info" file = "~/.hermes/hermes.log"

min_tool_calls_for_skill这个参数就是 Learning Loop 的触发门槛,默认 5。你如果想让 Skill 生成更保守,可以调到 8;想更激进,调到 3 也行,但生成质量会下降。learning_loop = true必须开,否则 Agent 只执行不沉淀。

4. 验证请求:跑一次 Skill 加载与 Learning Loop 触发

配置写完之后,先验证 Skill 能不能被正确加载。启动 Hermes,在交互界面里输入一条会命中 architecture-diagram 的请求:

画一个 React + Node.js + PostgreSQL + Redis + S3 的系统架构图

如果 Skill 加载正常,Hermes 会调用 architecture-diagram,按 7 步走完:分析需求、规划布局、计算坐标、生成 SVG、包装 HTML、输出文件、提示打开。你会在输出里看到类似Skill loaded: architecture-diagram v1.2.0的日志行。

接着验证 Learning Loop。这里要构造一个能触发 5 次以上 tool call 的复杂任务,比如:

帮我检查当前项目的依赖,找出有安全漏洞的包,生成修复建议,并画一张依赖关系图

这个任务会触发多次工具调用:读 package.json、查漏洞库、生成建议、调用 architecture-diagram 画图。跑完之后看日志:

tail -f ~/.hermes/hermes.log | grep -i "skill"

如果 Learning Loop 生效,你会看到类似Skill candidate generated: dependency-audit的记录,同时~/.hermes/skills/下会多出一个新目录。打开里面的 SKILL.md,内容就是 Agent 根据这次执行抽象出来的步骤。这就是自进化的最小闭环:执行、抽象、落盘、下次复用。

想进一步验证 Skill 质量,可以把生成的 SKILL.md 喂给 Anthropic 官方的 skill-creator 工具。它会跑 eval 用例、给质量评分、指出问题。我试过一次,它指出了布局重叠和验证步骤不完整两个真实问题,改完再跑分数确实上去了。

5. 本篇常见错排查

Skill 不加载:先确认skill_dir路径没写错,~在 toml 里不一定被展开,建议写绝对路径。再确认 SKILL.md 的 YAML 头部格式正确,---不能少,字段缩进用空格不用 Tab。

Learning Loop 不触发:检查learning_loop是否为 true,min_tool_calls_for_skill是否设得过高。另外简单问答不会触发,必须是有实际工具调用的复杂任务。如果日志里连 tool call 记录都没有,说明模型没走工具调用,检查 base_url 和 Key 是否正确。

API 返回 401:Key 复制时带了空格,或者 base_url 写成了带路径的形式。正确写法是https://taotoken.net/api,不要在后面加/v1之类。Key 放在api_key字段,不要手动加Bearer前缀,Hermes 会自己加。

生成的 SKILL.md 内容空泛:这是触发门槛太低导致的。把min_tool_calls_for_skill调到 8 以上,让 Agent 只在真正复杂的任务后才沉淀。另外可以在 config.toml 里加一段 prompt 约束,要求生成的步骤必须包含具体命令或参数。

Skill 之间冲突:同名 Skill 放在不同目录下会按加载顺序覆盖。建议每个 Skill 的name字段全局唯一,目录名和 name 保持一致,排查时用hermes skill list看实际加载了哪些。

6. 把 Skill 用起来:从单次验证到长期运行

跑通一次验证只是起点。Hermes 的价值在于 Skill 越用越精准,而这个过程依赖真实任务的反复积累。你可以在本地持续跑,让~/.hermes/skills/慢慢长出自己的方法库;也可以把 Agent 放到长期在线的环境里,让它 7x24 小时待命,随时复用积攒下来的 SKILL.md。

如果你已经过了本地尝鲜阶段,想让专属 Agent 常驻并持久化 Skill,可以走云端部署这条路。部署完之后,Agent 生成的每个 SKILL.md 都会留在云端,下次调用直接加载,不用重新积累。模型接入层继续用 TaoToken 的 API 就行,Key 和 base_url 在云端配置里填一遍即可。

接入相关的细节,API Keys 在 https://taotoken.net/api-keys ,文档在 https://taotoken.net/doc ,模型调试在 https://taotoken.net/models 。长期跑编码类任务的话,Coding Plan 页面 https://taotoken.net/coding-plan 有对应的方案说明。Claude Code 相关的接入参考 https://taotoken.net/claude-code 。

最后提醒一句:Skill 是“记笔记”,不是“微调训练”。它不会改变模型权重,只是把成功路径写成结构化文档留给下次参考。极端复杂场景下,生成的 SKILL.md 仍然需要人工审核和微调。但方向是对的——让 Agent 在真实任务中积累经验,而不是每次从零开始。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询