Skills 进阶:自进化与技能市场
本教程共 25 篇 · 第 13 篇 · 更新于 2026-07-26 · 约 13 分钟阅读
13. Skills 进阶:自进化与技能市场
本节目标:搞清楚 Hermes Agent 的自进化能力怎么运作—技能创作闭环怎么让 Agent 从经验中自动学习、后台审视什么时候触发、自进化的四层目标是什么、GEPA 优化管线怎么工作,以及第三方技能市场 awesome-hermes-agent 生态有哪些资源。学完你将理解 Hermes 为什么被称为”自我进化的智能体”。
经验没有被记住的痛点
第 12 章讲了技能系统的基础—Agent 可以读取和使用技能文件。但那些技能是人预先写好的。
考虑一个场景:Agent 帮你配置了一个复杂的 CI 流水线,过程中踩了三个坑,改了两次方案,最终跑通了。下周你让另一个同事的 Agent 做同样的事—它会重新踩同样的三个坑。
经验没有被记住。 每次遇到同样的问题,都要重新摸索。
Hermes Agent 当前最新稳定版 v2026.7.20 的核心差异化能力,就是解决这个问题:让 Agent 从经验中学习,把一次性的解法变成可复用的技能。
技能创作闭环:从经验到技能
在 §01 中我们介绍了自进化的基本循环——执行任务、提炼技能、更新记忆、下次复用。这里深入拆解它的内部机制,看看一个一次性的解法是怎么变成永久技能的。
什么是技能创作闭环
一个完整的循环:
使用 -> 遇到问题,摸索出解法 -> 后台审视提取模式 -> 创建技能
-> 下次遇到类似任务 -> 加载技能,直接用 -> 跳过摸索
关键是”下次”—今天踩的坑,明天不会再踩。
后台审视:自动提取经验
Agent 完成一段对话后,会 fork 一个副本在后台回顾这段对话。副本独立运行,不阻塞用户的下一个问题。它分析对话中有没有值得保存的经验—如果有,就调 skill_manage 创建或更新技能。
Note后台审视 agent 和主 agent 是完全独立的。它在后台线程运行,不阻塞用户的下一个问题。它可以调
skill_manage工具写技能,但不会修改主对话的消息历史。它收到的是消息快照(副本),不是引用。
触发逻辑:工具调用计数
不是每轮对话都触发。Hermes 用工具调用计数控制:
# 每次工具调用后
self._iters_since_skill += 1
# 对话结束时检查
if self._iters_since_skill >= 10: # 默认每 10 次工具调用触发一次
spawn_background_review(messages_snapshot, review_skills=True)
self._iters_since_skill = 0
为什么用工具调用次数而不是对话轮次?因为工具调用代表 Agent 在”做事”—一段只有闲聊的对话不需要审视。连续调了 10 次工具,说明 Agent 在处理一个有一定复杂度的任务,值得回顾。
在配置文件中可以调整频率或关闭:
# 文件路径:~/.hermes/config.yaml
skills:
creation_nudge_interval: 10 # 每 10 次工具调用触发一次。设为 0 关闭。
Warning如果 nudge_interval 设得太小(比如 1),每次工具调用都触发后台审视,浪费 API 调用,而且简单任务也会被审视—产出一堆没用的技能。默认 10 次是经过实践验证的合理值。
审视 Agent 怎么决定创建/更新/跳过
后台审视 Agent 收到的提示词核心是:
分析对话,找出非平凡的、可复用的模式。重点关注:是否用了非平凡的方法完成任务、是否经历了试错、是否因为经验发现而改变方向、用户是否期望不同的方法或结果。如果已有相关技能,更新它。否则,如果方法可复用,创建新技能。如果没有值得保存的,就说”Nothing to save.”然后停止。
关键词:non-trivial(非平凡)、trial and error(试错)、changing course(改变方向)。这些过滤条件排除了简单任务(“帮我翻译这句话”不会触发技能创建)。只有踩过坑、改过方案的经验才值得保存。
创建出来的技能长什么样
Agent 通过 skill_manage(action="create") 创建的技能文件:
---
name: github-actions-python-ci
description: Set up GitHub Actions CI for Python projects with pytest and coverage
version: 1.0.0
---
# GitHub Actions Python CI Setup
## Steps
1. Create `.github/workflows/ci.yml`
2. Use `actions/setup-python@v5` with matrix for Python 3.10-3.12
3. Install dependencies with `pip install -e ".[dev]"` (NOT pip install -r requirements.txt)
4. Run tests: `pytest --cov --cov-report=xml`
5. Upload coverage to Codecov with `codecov/codecov-action@v4`
## Pitfalls
- **Don't use `pip install -r requirements.txt` for library projects** - it doesn't install the
project itself. Use `pip install -e ".[dev]"` so `import mypackage` works in tests.
- **Matrix strategy needs `fail-fast: false`** - otherwise one Python version failing
cancels all other versions' runs.
- **Codecov token is required since 2024** - add `CODECOV_TOKEN` to repo secrets.
注意 Pitfalls 部分—这就是后台审视 Agent 从对话中提取的”踩坑经验”。最有价值的不是”怎么做”(用户自己也能搜到),而是”哪里会出错”。下次遇到同样的任务,Agent 加载这个技能后直接跳过这些坑。
完整场景走一遍
=== 第一天 ===
用户: 帮我给这个项目配 GitHub Actions CI
agent: 好的,我来配置...
-> 第一版用了 pip install -r requirements.txt -> 测试失败
-> 发现需要 pip install -e ".[dev]" -> 修复
-> Codecov 上传失败 -> 发现需要 CODECOV_TOKEN -> 修复
-> 最终跑通
agent: CI 配置好了。
[对话结束时,工具调用计数 >= 10 -> 触发后台审视]
后台审视 agent:
"这段对话中 agent 踩了两个坑,最终成功。这是一个非平凡的、可复用的模式。"
-> skill_manage(action="create", name="github-actions-python-ci", content="...")
用户看到: "Skill 'github-actions-python-ci' created"
=== 第二天 ===
同事: 帮我给另一个项目也配 CI
agent: [系统提示词里有 github-actions-python-ci]
-> skill_view("github-actions-python-ci") -> 加载完整内容
-> 直接用 pip install -e ".[dev]"(不会再犯 requirements.txt 的错)
-> 直接提醒用户添加 CODECOV_TOKEN
-> 一次就通过
第一天踩的坑,第二天不会再踩。这就是技能创作闭环的价值。
自进化:不改模型,只改文本
Agent 表现 = 模型能力 x 上下文文本质量
Agent 运行时收到的所有东西—系统提示词、技能指令、工具描述—全是文本。模型的表现由两件事决定:
agent 表现 = 模型能力 × 上下文文本质量
RL 训练改的是模型能力(需要 GPU,成本高)。但上下文文本质量呢?技能是自动生成的,可能写得粗糙;工具描述是人写的,可能措辞不精确导致模型选错工具;系统提示词里的行为指南可能不够清晰。
Hermes 的自进化要解的就是这个问题:用”打分 -> 改写 -> 择优”的循环,系统性地优化 Agent 收到的所有文本。
关键特性:
- 不需要训练模型,不需要 GPU
- 成本极低:约 $2-10 每次优化
- 即时生效:改完文本,下次对话就用新版本
Tip一个类比:你不换厨师(模型),只换菜谱(技能文本)。好菜谱让同一个厨师做出更好的菜。
四层进化目标
自进化不是只针对技能的小功能。它是一个通用的文本优化管线,覆盖四类目标:
| 层级 | 进化对象 | 价值 | 风险 | 状态 |
|---|---|---|---|---|
| Phase 1 | 技能文件(SKILL.md) | 最高 | 最低 | 已实现 |
| Phase 2 | 工具描述(Tool descriptions) | 中等 | 低 | 计划中 |
| Phase 3 | 系统提示词段落 | 高 | 高 | 计划中 |
| Phase 4 | 工具实现代码(Python) | 高 | 最高 | 计划中 |
Phase 1:技能文件。技能是纯文本的任务指令。容易变异(改一段 Markdown),容易评估(让 Agent 用它做个任务看效果),改坏了也只影响一个技能。引擎是 DSPy + GEPA(Genetic-Pareto Prompt Evolution,ICLR 2026 论文)。
Phase 2:工具描述。工具描述决定了模型”什么时候选哪个工具”。优化方式是生成”任务->应该用哪个工具”的测试集,变异描述文本,评估模型是否选对了工具。约束:每个描述不超过 500 字符。
Phase 3:系统提示词。系统提示词里的行为指南改好了能让 Agent 整体行为改善,改坏了影响所有对话。约束最严:每个段落不能比原版大 20% 以上,必须跑 benchmark 回归检查。
Phase 4:工具代码。和前三层不同—前三层改的是自然语言文本,这一层改的是代码。约束最硬:全量测试必须 100% 通过,函数签名不能改。引擎是 Darwinian Evolver(外部 CLI,用 git 管理代码变体)。
七步优化管线
不管进化哪一层,管线都是同一个结构:
1. SELECT TARGET -> 选一个需要改进的技能/工具描述/提示词
2. BUILD EVAL DATASET -> 生成测试用例,分 train/val/holdout
3. EVALUATE BASELINE -> 用适应度函数给当前版本打分
4. CHECK CONSTRAINTS -> 当前版本通过约束检查吗?
5. OPTIMIZE (repeat N) -> 收集反馈 -> 针对性改写 -> 打分 -> 择优
6. VALIDATE EVOLVED -> 进化版通过约束吗?holdout 分数如何?
7. DEPLOY -> 备份 -> 写入 -> 下次对话自动生效
GEPA 的核心思路:读执行 trace,理解为什么失败(不只是”失败了”),然后做针对性的文本变异。不是随机改,是有方向的改。
独立仓库架构
自进化系统不在 hermes-agent 仓库里,而是一个独立仓库(NousResearch/hermes-agent-self-evolution),作用于 hermes-agent:
hermes-agent-self-evolution/ <- 独立仓库
├── evolution/
│ ├── core/
│ │ ├── config.py <- 配置 + hermes-agent 路径发现
│ │ ├── dataset_builder.py <- 评估数据集生成
│ │ ├── external_importers.py <- 从 Claude Code/Copilot/Hermes 挖数据
│ │ ├── fitness.py <- 适应度函数(LLM-as-judge)
│ │ └── constraints.py <- 约束门控
│ ├── skills/
│ │ ├── skill_module.py <- 把 SKILL.md 包装成 DSPy module
│ │ └── evolve_skill.py <- Phase 1 主管线
│ ├── tools/ <- Phase 2(计划中)
│ ├── prompts/ <- Phase 3(计划中)
│ └── code/ <- Phase 4(计划中)
├── datasets/ <- 生成的评估数据集
└── tests/
为什么独立?因为自进化是开发时工具,不是运行时功能。它读 hermes-agent 的代码和数据,输出改进后的文件,通过 git PR 提交—永远不会在用户对话过程中执行。
第三方技能市场:awesome-hermes-agent
awesome-hermes-agent 是社区维护的 Hermes Agent 生态目录,收录了技能、插件、记忆提供者、部署工具、集成桥接等资源。这个目录不是 Nous Research 官方项目,而是独立开源爱好者维护的。
成熟度标签
每个条目都标有成熟度:
| 标签 | 含义 |
|---|---|
| production | 稳定、文档完善、积极维护,可以放心依赖 |
| beta | 能用但仍在演进,预期有些粗糙的边缘 |
| experimental | 概念验证或早期阶段,依赖前先学习 |
社区技能精选
awesome-hermes-agent 收录了大量社区开发的技能,以下是代表性项目:
| 技能 | 说明 | 成熟度 |
|---|---|---|
hermes-skill-factory | 元技能,从你的工作流自动生成可复用技能 | beta |
hermes-dojo | 自我改进系统,监控 Agent 性能、识别弱技能并迭代优化 | beta |
hermes-incident-commander | 自主 SRE agent,生产事故检测和自愈 | beta |
hermes-life-os | 个人 OS agent,检测日常模式并学习你的习惯 | experimental |
hermes-skill-marketplace | 自动编写、测试、发布新技能的 Agent | experimental |
oh-my-hermes | 多 Agent 编排技能套件(深度研究、深度访谈、共识计划等) | beta |
PolyBrain | 多 Agent 多模型编排,任务分解+并行执行+综合验证 | beta |
技能发现与安装
社区技能通常通过 GitHub 安装:
# 直接从 GitHub 仓库安装
hermes skills install owner/repo/skills/my-skill
# 添加为 tap 后安装
hermes skills tap add myorg/skills-repo
hermes skills install myorg/skills-repo/deploy-runbook
中文生态
awesome-hermes-agent 中也有面向中文用户的技能包:
| 技能 | 说明 |
|---|---|
hermes-skills (winterliu6) | 中文技能包:内容创作(小红书/抖音/公众号)、安全周报、企业IT运维机器人。已在遥来影院 IT 部门生产使用 |
hurmoz | 阿拉伯语优先技能包,63 个技能覆盖伊斯兰工具、方言 NLP、内容创作和旅行 |
humanizer-ru | 去除俄语文本中的 AI 写作痕迹 |
gtd-clarity-agent | 方法论驱动的 GTD 收件箱”澄清”技能,中文优先 |
agentskills.io 开放标准
agentskills.io 是 Agent 技能的开放标准,Hermes Agent 的技能系统兼容这个标准。这意味着 Hermes 的技能可以跨平台使用—同一个 SKILL.md 文件可以在 Hermes、Claude Code、Cursor、Codex 等 Agent 平台上运行。
跨平台技能库
基于 agentskills.io 标准的跨平台技能:
| 项目 | 说明 | 成熟度 |
|---|---|---|
wondelai/skills | 跨平台 Agent 技能库,覆盖 Claude Code 和 agentskills.io 兼容平台 | production |
youtube-skills | YouTube 搜索、频道浏览、播放列表提取、可靠转录 | production |
Anthropic-Cybersecurity-Skills | 753+ 结构化网络安全技能,映射 MITRE ATT&CK | production |
drawio-skill | 从自然语言生成 draw.io 图表,导出 PNG/SVG/PDF | production |
open-design | 开源设计工具替代方案,31 个组合技能 + 129 个设计系统 | production |
authsome | 本地 OAuth2 和 API 凭据代理,45 个预配置提供者 | beta |
技能进化与记忆的协作
技能和记忆在自我改进循环中协同工作:
Agent 完成任务
│
├── 后台审视同时更新:
│ ├── 记忆(MEMORY.md/USER.md)-> 存储事实
│ └── 技能(SKILL.md)-> 存储方法
│
└── 下次对话:
├── 记忆自动注入系统提示词
└── 技能按需加载(渐进式披露)
- 记忆回答”是什么”:环境事实、用户偏好
- 技能回答”怎么做”:操作流程、踩坑经验
后台审视同时更新两者。记忆是事实层,始终在上下文中;技能是方法层,仅在相关时加载。两者各司其职,共同构成了 Hermes 的跨会话学习能力。
NoteHermes 是唯一内置学习循环的智能体。大多数 AI 工具的技能是人写的静态文档,Hermes 的技能是 Agent 自己从经验中创建、在使用中改进、可以跨会话复用的活文档。这就是”自我进化”的真正含义。
Curator:自动策展技能生态
随着 Agent 不断创建技能,技能目录可能堆积大量过时、重复或不再使用的技能。第 11 章提到的 Curator(记忆策展)机制就是来解决这个问题的。
Curator 定期扫描技能目录,根据使用频率自动管理技能生命周期:
- 活跃:最近使用过的技能,保持原位
- 归档:长时间未用的技能,移到归档目录,从系统提示词中移除
- 合并(可选):用 LLM 把多个相关技能整合成一个伞形技能
# 文件路径:~/.hermes/config.yaml
curator:
enabled: true
interval_hours: 168 # 每 7 天扫描一次
stale_after_days: 30 # 30 天没用标记为过时
archive_after_days: 90 # 90 天没用归档
consolidate: false # 是否启用 LLM 合并
prune_builtins: true # 是否也清理内置技能
用 hermes curator pin <skill> 可以固定某个技能,让它永不自动处理。这对季节性使用的技能特别有用。
小结
Hermes Agent 的自进化能力由三个层次构成:
- 技能创作闭环:后台审视自动从经验中提取非平凡模式,创建可复用技能。下次遇到类似任务,直接加载技能跳过摸索。
- 自进化优化管线:用 GEPA 算法系统性优化技能文本(Phase 1 已实现),未来扩展到工具描述、系统提示词和工具代码。
- 技能市场生态:通过 awesome-hermes-agent 社区目录和 agentskills.io 开放标准,发现和安装第三方技能,跨平台复用。
这三层共同构成了”自我进化的智能体”的完整图景:Agent 不只是执行任务,还能从经验中学习、改进自己的知识、并从社区获取新能力。