首页 / Hermes Agent 教程 / Skills 进阶:自进化与技能市场

Hermes Agent 教程

Skills 进阶:自进化与技能市场

本教程共 25 篇 · 第 13 篇 · 更新于 2026-07-26 · 约 13 分钟阅读

Hermes AgentHermes Agent 教程自进化Skill Creation LoopGEPAawesome-hermes-agentagentskills.io

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自动编写、测试、发布新技能的 Agentexperimental
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-skillsYouTube 搜索、频道浏览、播放列表提取、可靠转录production
Anthropic-Cybersecurity-Skills753+ 结构化网络安全技能,映射 MITRE ATT&CKproduction
drawio-skill从自然语言生成 draw.io 图表,导出 PNG/SVG/PDFproduction
open-design开源设计工具替代方案,31 个组合技能 + 129 个设计系统production
authsome本地 OAuth2 和 API 凭据代理,45 个预配置提供者beta

技能进化与记忆的协作

技能和记忆在自我改进循环中协同工作:

Agent 完成任务

    ├── 后台审视同时更新:
    │   ├── 记忆(MEMORY.md/USER.md)-> 存储事实
    │   └── 技能(SKILL.md)-> 存储方法

    └── 下次对话:
        ├── 记忆自动注入系统提示词
        └── 技能按需加载(渐进式披露)
  • 记忆回答”是什么”:环境事实、用户偏好
  • 技能回答”怎么做”:操作流程、踩坑经验

后台审视同时更新两者。记忆是事实层,始终在上下文中;技能是方法层,仅在相关时加载。两者各司其职,共同构成了 Hermes 的跨会话学习能力。

Note

Hermes 是唯一内置学习循环的智能体。大多数 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 的自进化能力由三个层次构成:

  1. 技能创作闭环:后台审视自动从经验中提取非平凡模式,创建可复用技能。下次遇到类似任务,直接加载技能跳过摸索。
  2. 自进化优化管线:用 GEPA 算法系统性优化技能文本(Phase 1 已实现),未来扩展到工具描述、系统提示词和工具代码。
  3. 技能市场生态:通过 awesome-hermes-agent 社区目录和 agentskills.io 开放标准,发现和安装第三方技能,跨平台复用。

这三层共同构成了”自我进化的智能体”的完整图景:Agent 不只是执行任务,还能从经验中学习、改进自己的知识、并从社区获取新能力。