第10章 Hermes Skill系统:自动生成的进化能力
本章前置检查:
- □ 已完成第7章的学习,理解Hermes的五层架构和闭环学习系统
- □ 已完成第8章的部署,能通过CLI与Hermes进行基础对话
- □ 理解第4章中OpenClaw Skill的基本概念(为对比学习做准备)
本章预估总时长:5小时
本章难点提示:
- 10.2节(自动生成机制)是本章最核心的部分,需要理解“技能”不是用户主动创建的,而是在任务执行过程中自动沉淀的——这是Hermes与其他Agent框架最根本的区别。
- 10.3节(agentskills.io标准)的元数据字段较多,可以先建立印象,实际使用中可通过示例模板快速上手。
- 10.4节(与OpenClaw的对比)建议大家带着“为什么现在要学Hermes”这个问题来阅读——自动生成技能听起来很吸引人,但它在什么情况下才能真正为你节省时间?本节会给出具体判断标准。
- 10.7节(质量治理)是使用自动生成Skill的必读内容——如果忽略这一点,你的技能库可能会在一段时间后被大量低质量技能淹没。
- 请注意区分本章讨论的“Hermes Skill”和第4章讨论的“OpenClaw Skill”——两者是完全不同的体系。10.4节会详细对比。
🎯 本章教学目标:深入理解Hermes Skill系统的自动生成机制,掌握SKILL_GUIDANCE的工作方式,学会自主生成和手动创建技能,理解skill_manage工具的完整操作,掌握技能试用期审查与生命周期管理,了解agentskills.io开放标准,能够熟练使用技能斜杠命令,并清晰对比Hermes Skill与OpenClaw Skill的核心差异。
![图片[1]-Hermes 技能自动生成完全解析:Agent 如何自己学会新技能](http://www.ifisme.cn/wp-content/uploads/2026/04/教材1001.png)
10.1 Hermes Skill概述
🎯 本节目标:理解Skill在Hermes中的定位、它与传统“插件”的本质区别,以及Skill系统的核心设计思想。
预计时长:0.5小时
10.1.1 从“工具”到“会学习的同事”
在第4章我们学习了OpenClaw的Skill——一个Markdown格式的“操作手册”,告诉Agent“遇到X情况时,按Y步骤做”。它很强大,但有一个根本性限制:是人写的。你会多少,Agent就会多少。你不写,它就不会。
Hermes的Skill系统做了一件完全不同的事:Agent在执行任务的过程中,会自动识别可复用的模式,将成功经验固化为Skill,并在后续使用中持续优化。这意味着:随着你与Hermes的协作越久,它积累的Skill就越多、越精,真正实现“越用越强”。
在实际体验中:传统Agent的Skills需要人工创建和维护,Hermes的Skills是在工作中自动生成的,而且会自我迭代——从“工具”变成了“会学习的同事”。真正用起来之后会发现,它在运维、研究等重复性极强的场景里,每次踩坑后Skill库都会被自动夯实,人根本不用操心。
龙马注:我第一次看到这个机制时的反应是:“我的Agent在偷偷学我?”用了一段时间后发现,不是我教祂,是祂自己复盘的时候就总结好了——我只是在对话末尾确认了一句“对,就这样”。整个过程的体验,是任务执行-纪要复盘-技能固化,几乎不打断我的工作节奏。
但这里有一个隐藏的前提:你给出的反馈质量直接决定Skill质量。如果你允许它记住一个不高效的工作流,它以后就会重复那个低效流程。所以每次任务结束后的关键确认环节,值得认真对待。
10.1.2 Hermes Skill的本质:按需加载的知识文档
Hermes Skill不是Python插件,也不是代码模块。它本质上是一种面向Agent的、按需加载的知识文档/工作流文档系统。
这个设计解决了一个核心问题:有些能力不需要写成工具代码,但又不适合每次都把完整说明塞进system prompt。Hermes采用了渐进式披露(Progressive Disclosure) 的加载策略——平时只给模型一个技能索引,需要时再加载具体skill内容,skill还可以附带references、templates、scripts、assets等附属文件。
| 加载层级 | 内容 | 触发时机 |
|---|---|---|
| Level 0 | 技能名称+简短描述 | 会话启动时 |
| Level 1 | 完整的SKILL.md正文 | 任务匹配该技能时 |
| Level 2 | references/、scripts/等附属资源 | Agent执行过程中按需加载 |
这种分层加载机制显著降低了Token消耗,让技能数量可以扩展到很大规模而不影响系统提示词的膨胀。
龙马注:渐进式披露是Hermes Skill设计中最被低估的一个细节——一个拥有200个技能的系统,如果每次会话都把所有技能的全部内容加载进来,Token成本会直接爆炸。但Hermes通过这个分层机制,让技能库可以无限扩张而不影响日常使用。实际体验中,你根本感觉不到背后有几十个技能在待命。
沈飞注:在量化场景中,因子挖掘、回测框架、风控模型等都有大量可复用的方法论,但以前都是“藏在人脑里”或“散落在代码注释里”。Hermes的Skill机制提供了一个轻量级的固化方案——把流程写成SKILL.md后,每次执行同类任务时,Agent自动调用已有Skill,效率提升和一致性都远超预期。
✏️ 即时自测:Hermes Skill和OpenClaw Skill最根本的区别是什么?
✏️ 自测答案:Hermes Skill是自动生成的(Agent在实践中沉淀经验),OpenClaw Skill是手动编写的。
🛠️ 实践任务(本节):查看你的~/.hermes/skills/目录,看看自安装以来Hermes已经自动生成了哪些Skill。如果目录为空也不必担心——这说明你还没有完成足够复杂的任务来触发自动生成,后续实践任务会为你创造这样的机会。
💭 本节总结(不看书写3行):
📊 用时记录:计划____min → 实际____min → 偏差原因:________
10.2 Skill自动生成机制详解
🎯 本节目标:理解Skill是如何自动生成的——触发条件、处理流程和核心技术实现。
预计时长:1.5小时
10.2.1 SKILLS_GUIDANCE:让Agent“学会”创建技能
Hermes的自动技能生成不是靠硬编码规则,而是通过系统提示词中的SKILLS_GUIDANCE来引导Agent自主决定何时应该创建技能。
在agent/prompt_builder.py中,SKILLS_GUIDANCE是这样定义的:
After completing a complex task (5+ tool calls), fixing a tricky error,
or discovering a non-trivial workflow, save the approach as a
skill with skill_manage so you can reuse it next time.
When using a skill and finding it outdated, incomplete, or wrong,
patch it immediately with skill_manage(action='patch') — don't wait to be asked.
Skills that aren't maintained become liabilities.
这段提示词被注入到每次会话中,让Agent理解“什么情况下应该创建技能”“什么情况下应该修复技能”。这是Hermes实现自主进化的核心机制之一——Agent不是被代码硬性规定去做某件事,而是通过系统指令理解了自己的“成长责任”。
10.2.2 触发Skill生成的具体条件
根据SKILLS_GUIDANCE的定义,Agent会在以下四种情况下自动创建或更新技能:
| 触发条件 | 说明 | 典型场景 |
|---|---|---|
| 5次以上工具调用 | 任务复杂度高,涉及多步骤工具链 | 数据清洗→特征工程→模型训练→评估→可视化 |
| 修复棘手错误 | Agent从错误中成功恢复 | 调试代码时发现并修正了依赖冲突 |
| 发现非平凡工作流 | 走通了一条不那么直观的有效路径 | 发现某个API需要特定的参数组合才能返回预期结果 |
| 用户纠正成功 | 用户指出了一个更好的方法并被采纳 | “下次用pandas的query方法而不是loc” |
当任务满足上述任一条件时,Agent会评估任务价值,然后调用skill_manage(action='create')工具,自动生成符合agentskills.io标准的结构化技能文档。
自动生成与手动创建的区别:
Hermes允许用户主动让Agent创建技能,例如在对话中说“请记住这个部署流程,下次可以直接用”。这与自动触发的区别在于:自动触发的核心是Agent自己决定什么值得记住,而不是用户每次都要主动说“记住这个”。这意味着你不需要刻意去“教”Agent——你的日常工作本身就是训练材料。
10.2.3 skill_manage:技能管理的核心工具
skill_manage是Hermes中管理技能的统一入口工具,支持以下操作:
| 操作 | 用途 |
|---|---|
create | 创建新技能,从当前执行轨迹中提取核心流程 |
patch | 修正现有技能(仅修改匹配到的内容,不覆盖整个文件) |
view | 查看技能内容 |
list | 列出所有可用技能 |
delete | 删除技能 |
Agent在执行复杂任务后,会自动调用skill_manage(action='create'),将执行记录中的关键步骤、注意事项、工具调用序列等信息提取出来,生成标准格式的SKILL.md文档。
龙马注: patch操作的设计非常克制。遇到过技能需要修正的场景,patch是基于内容匹配的局部替换,不是整个文件重写。当技能文件比较大时,patch的token消耗远低于把整个技能重新生成一遍。实践中的感受是,Hermes能敏锐地察觉“这个技能的第三步现在已经不是最优了”,然后精准地修改那一行,不会影响技能的其他部分。
10.2.4 技能生成的完整流程
用户下达任务
↓
Agent执行(工具调用、错误处理、探索)
↓
任务完成,满足触发条件(5+工具调用/修复错误/发现非平凡工作流)
↓
Agent调用skill_manage(action='create')
↓
验证技能名称、frontmatter格式、内容大小
↓
创建目录结构(~/.hermes/skills/<skill-name>/)
↓
原子写入SKILL.md
↓
执行安全扫描
↓
技能存入技能库,后续会话可检索和复用
这个流程确保了Agent能够从实际使用中学习,将成功的解决方案转化为可复用的技能,形成持续改进的循环。
10.2.5 技能自我进化:Patch机制
生成的技能并非一成不变。当Agent在后续任务中再次调用某个技能时,如果发现技能已经过时、不完整或有错误,就会触发技能自我改进模块,使用patch工具进行精确修复。
Patch机制的核心特点:
- 模糊匹配:即使存在轻微格式差异也能成功定位需要修改的部分
- 精准替换:只修改匹配到的内容片段,不重写整个技能文件
- 低Token消耗:相比重新生成整个技能,patch的开销极小
- 版本意识:Agent在修改技能时会理解技能的版本和依赖关系,避免破坏性更改
随着技能被反复调用和修正,技能的完整性、实用性和健壮性会持续提升,如同人类不断积累工作经验。
首先执行成功后返回结果,这个输出被追加到当前对话历史中。其次,这个流程生成的技能会直接保存在技能库里,Agent下次遇到相似任务可以直接调用。关键数据存储的可靠性由原子写入保障,不会因为中间步骤失败而产生残缺技能。
每次技能被patch后,Agent还会自动运行一个轻量级验证——检查修改后的SKILL.md是否符合agentskills.io标准格式。如果格式错误,Agent会尝试自动修复或请求用户确认。
✏️ 即时自测:Agent在什么条件下会自动调用skill_manage创建新技能?
✏️ 自测答案:完成5次以上工具调用的复杂任务、修复棘手错误、发现非平凡工作流、用户纠正的方法被采纳时。
🛠️ 实践任务(本节):
- 让Hermes执行一个需要多步骤的复杂任务(例如“从GitHub上找一个Python项目,分析它的依赖关系,生成报告”)
- 任务完成后,检查
~/.hermes/skills/目录是否生成了新的SKILL.md - 打开生成的SKILL.md,观察它的结构和内容
- 执行
hermes skills list,查看当前技能库清单
💭 本节总结(不看书写3行):
📊 用时记录:计划____min → 实际____min → 偏差原因:________
10.3 Skill文档格式与agentskills.io标准
🎯 本节目标:掌握SKILL.md的标准格式,了解agentskills.io开放标准,能够独立编写或修改技能文档。
预计时长:0.8小时
10.3.1 agentskills.io:跨平台的技能标准
Hermes的技能文档遵循agentskills.io开放标准。这个标准由AI Agent社区共同维护,其核心价值在于:按此标准编写的Skill可以在Hermes、Claude Code、OpenClaw等不同平台上通用,一次开发,多处运行。这意味着你在Hermes中沉淀的技能资产,未来可以无缝迁移到其他兼容平台。
10.3.2 SKILL.md的标准结构
一个完整的SKILL.md包含以下核心要素:
markdown
--- name: skill_name # 技能唯一标识(snake_case) description: 技能的简短描述 # 用于索引和匹配 version: 1.0.0 # 版本号,便于追踪演进 author: author_name # 作者信息(自动生成时为"hermes-agent") tags: [tag1, tag2] # 标签,便于分类检索 --- # 技能标题 ## 描述 详细说明这个Skill解决什么问题,适用场景。 ## 触发条件 什么情况下应该使用这个Skill。 ## 执行步骤 1. 第一步:做什么 2. 第二步:做什么 3. ... ## 工具调用序列 - tool_1:参数说明 - tool_2:参数说明 ## 已知陷阱/注意事项 - 常见错误及避免方法 - 边界条件处理 ## 验证方法 如何确认Skill执行成功。 ## 输出格式 期望的输出结构(如有特殊要求)。
龙马注:agentskills.io标准的核心价值在于它的“可移植性”——你在Hermes里沉淀的技能,按理说可以直接拿到Claude Code或其他兼容平台使用。跨平台Lock-in是所有Agent框架需要面临的问题,Hermes从一开始就在社区标准上押注,避免陷入单平台锁定。
10.3.3 技能目录结构
一个完整的技能可以包含多个附属文件:
~/.hermes/skills/<skill-name>/
├── SKILL.md # 技能定义文件(核心,必需)
├── references/ # 参考文档(按需加载)
│ ├── api_doc.md
│ └── examples.md
├── assets/ # 静态资源
│ ├── template.html
│ └── config.json
└── scripts/ # 可执行脚本
├── helper.py
└── process.sh
附属文件不在会话启动时加载,而是在Agent执行技能过程中按需读取,这种按需加载的设计有效控制了上下文Token消耗。当skill中明确引用了references/或scripts/中的文件时,Hermes才会动态加载并执行。
龙马注:如果技能脚本引用了外部依赖(例如
requests库),Hermes在执行时需要确保当前环境中已安装该依赖,否则会报错。因此,建议在SKILL.md中通过前置说明标注依赖信息,或者将技能执行限定在容器环境中运行。
✏️ 即时自测:agentskills.io标准的最大价值是什么?
✏️ 自测答案:跨平台兼容——一个Skill可以在Hermes、Claude Code、OpenClaw等不同Agent框架中通用。
🛠️ 实践任务(本节):
- 执行
hermes skills list,选择一个已有技能 - 运行
hermes skills info <skill-name>查看技能详情 - 打开对应的SKILL.md文件,对照本节的结构模板观察它的组织方式
💭 本节总结(不看书写3行):
📊 用时记录:计划____min → 实际____min → 偏差原因:________
10.4 Hermes Skill vs OpenClaw Skill对比
🎯 本节目标:通过对比理解两种Skill体系的差异,能根据使用场景选择合适的方式。
预计时长:1小时
10.4.1 核心差异速览
| 维度 | Hermes Skill | OpenClaw Skill |
|---|---|---|
| 生成方式 | 自动生成(Agent在实践中沉淀经验) | 手动编写(用户定义AGENTS.md) |
| 更新机制 | 自动patch(Agent主动发现并修复) | 手动更新(用户修改文件) |
| 加载策略 | 渐进式披露(索引→正文→资源,三层加载) | 全局加载或按需声明 |
| 数量上限 | 理论无限(渐进式披露控制上下文消耗) | 受限于人工编写能力 |
| 学习能力 | 从每次任务中学习并进化 | 基本没有(靠用户更新) |
| 可移植性 | agentskills.io开放标准 | OpenClaw专用格式 |
| 适用场景 | 持续进化的个性化Agent | 标准化能力扩展、确定性流程 |
| 开发者角色 | “设置边界和确认反馈” | “定义Agent行为和技能” |
一个直观的对比:在处理多轮对话的电商客服场景时,Hermes可自动生成包含商品推荐、订单查询、退换货流程的复合技能包,而OpenClaw需要开发者预先设计完整的技能文件。
10.4.2 两条路线的设计哲学
OpenClaw走的是“控制优先”路线。你在AGENTS.md中定义Agent的职责、技能、约束——人定义规则,Agent执行规则。这带来了极高的可预测性和可控性,但代价是维护成本——每次业务变化都需要手动更新配置。从架构层面看,Hermes更偏向集成式Agent运行时(Integrated Agent Runtime),OpenClaw更偏向网关中心式控制平面(Gateway-centric Control Plane)。
Hermes走的是“进化优先”路线。Agent在运行过程中自动生成Skill,但它也允许用户通过斜杠命令和skill_manage工具进行人工干预。两条路线的根本分歧在于:谁来发现“可以固化的模式”——是人还是Agent自己?
沈飞注:在量化策略研发中,Hermes这条路线有明显的效率优势。刚开始用的时候,我还在手动把因子挖掘流程写成AGENTS.md——这相当于把“人脑里的经验”一次性地迁移出去。但几周后Hermes自动生成的Skill已经覆盖了我70%的日常操作,我不需要再写任何新文件。这只是我个人的体验,建议你在一开始时两者都尝试一下,然后根据实际效果决定保留哪一套,而不是一开始就全盘推倒原有的OpenClaw体系。
10.4.3 什么时候用哪一个?
| 场景 | 推荐选用 | 原因 |
|---|---|---|
| 需要精确控制执行流程(如交易下单、合规检查) | OpenClaw Skill | 人定义规则,确定性高 |
| 需要从使用经验中持续优化的任务(如策略研发、数据分析) | Hermes Skill | 自动沉淀经验,越用越准 |
| 需要跨平台复用的能力 | Hermes Skill | agentskills.io标准,可移植 |
| 团队共享的标准能力 | 两者均可 | OpenClaw的ClawHub有5万+社区技能,Hermes技能市场约200+但官方审核更严 |
| 需要长期维护的低频任务 | OpenClaw Skill | 手动更新可控,不会意外变化 |
从安全角度看,OpenClaw的记忆是“模块化插件槽”——你可以手动替换记忆模块,但它缺少Hermes那种从经验中创建技能的闭环学习机制,以及三层记忆的整合设计。
但从另一个角度看,Hermes这些“自动生成”的能力也伴随着未知风险——因为Skill是Agent自动写的,如何让用户信任这个自动生成的流程是否符合预期?这需要用户对Skill进行试用期审查,也是10.7节要详细讨论的内容。
✏️ 即时自测:如果你要开发一个需要精确控制执行顺序、输出格式必须严格统一的批量数据处理任务,应该用Hermes Skill还是手动写一套逻辑?为什么?
✏️ 自测答案:应手动编写代码并用OpenClaw Skill封装(或直接写Python脚本)。因为Hermes Skill的自动生成依赖于Agent的执行轨迹,如果任务步骤高度确定但执行顺序不能有任何漂移,纯确定性流程更适合用代码固化,而不是依赖动态生成的Skill。
💭 本节总结(不看书写3行):
📊 用时记录:计划____min → 实际____min → 偏差原因:________
10.5 Skill斜杠命令与用户交互
🎯 本节目标:掌握通过斜杠命令与Skill系统交互的方法,熟练使用技能管理的常用命令。
预计时长:0.3小时
Hermes提供了便捷的斜杠命令来管理技能:
| 命令 | 功能 |
|---|---|
/skills 或 /skill list | 列出所有可用技能 |
/skill view <技能名> | 查看技能详情(SKILL.md内容) |
/skill enable <技能名> | 启用技能 |
/skill disable <技能名> | 禁用技能(技能仍在磁盘上,但不会被加载) |
/skill run <技能名> | 显式执行技能(不依赖自动匹配) |
/skill search <关键词> | 在技能库中搜索 |
使用示例
markdown
/skill list # 查看所有技能 /skill view data_cleaner # 查看数据清洗技能的详细内容 /skill run deploy_to_server # 手动执行部署技能 /skill search "数据分析" # 搜索包含“数据分析”的技能
龙马注:
/skill disable和/skill enable不删除文件,只是从加载索引中移除或恢复,适合临时禁用某些不稳定的技能,等修复后再启用。
🛠️ 实践任务(本节):
- 执行
/skill list查看你的技能库 - 选择一个技能,执行
/skill view <技能名>查看其内容 - 执行
/skill search <一个你感兴趣的关键词>
💭 本节总结(不看书写3行):
📊 用时记录:计划____min → 实际____min → 偏差原因:________
10.6 Hermes安全沙盒配置详解
🎯 本节目标:理解Hermes的安全设计,学会配置沙箱隔离和权限校验,保障Agent执行的安全性。
预计时长:0.7小时
10.6.1 为什么需要安全沙盒
Hermes的技能系统可以让Agent执行脚本、读写文件、调用系统命令。如果Agent生成或安装了恶意技能,或者正常技能被恶意输入劫持,可能导致严重后果。
Hermes默认标配了三层安全机制:
- 危险命令审批流程:执行敏感操作前需要用户确认
- 用户授权机制:设备配对和会话级别的权限控制
- 容器隔离(Docker后端) :支持在隔离环境中执行代码
- 上下文扫描:检测并拦截提示注入攻击尝试
10.6.2 安全沙盒三层校验
Hermes在执行操作前会进行三层安全校验:
第一层:权限白名单过滤
只允许执行预先配置的安全操作。编辑~/.hermes/config.yaml:
yaml
execution:
allowed_commands:
- ls
- cat
- python
- git
blocked_patterns:
- "rm -rf"
- "sudo"
- "chmod 777"
第二层:操作路径验证
限制Skill只能访问特定的文件路径:
yaml
execution:
allowed_paths:
- "/home/user/projects/"
- "/tmp/hermes-uploads/"
blocked_paths:
- "/etc/"
- "/root/"
- "/home/user/.ssh/"
第三层:变更回滚机制
系统在执行修改操作前会自动创建状态快照,异常时可快速回滚。同时配合审计日志系统,完整追踪所有操作轨迹。
10.6.3 安全沙箱配置
启用文件系统沙箱模式:
yaml
filesystem_mode: "sandbox" # sandbox(隔离模式)或 read-only(只读模式)或 full(完全访问)
启用审计日志:
yaml
audit_enabled: true log_level: info
秘钥扫描——Hermes会在浏览器URL和LLM响应中扫描秘钥模式,阻止通过URL编码、base64或提示注入进行的秘钥外泄尝试。
10.6.4 用户侧安全实践
无论你的沙盒配置得有多完善,只要Agent拥有执行系统命令的权限,仍然存在风险。建议养成以下习惯:
- 将敏感API Key写入
.env文件,不要写入Skill正文。否则一旦Skill被分享,API Key也会一并泄露。 - 定期审计已安装的技能:执行
hermes skills list,检查是否有不熟悉或过期的技能。 - 高风险操作需批准:在config.yaml中配置
require_approval: true,敏感操作(如修改风控参数、删除文件)会暂停并等待用户确认。
沈飞注:在量化交易系统中,沙箱配置是硬性要求。我会在config.yaml中把 allowed_commands限定在数据分析范围内(如python、pandas、numpy),涉险命令连审批机会都没有,直接拒绝执行。
另外,即使沙箱配置再完善,只要Agent有执行系统命令的权限,就仍然存在风险。所以财务数据的读取和风控判定建议完全走文件权限限制,而不是依赖Agent的“自觉”。同时建议在技能发布前强制走试用期审查和单元测试。10.7节会详细说明如何建立技能质量治理流程。
🛠️ 实践任务(本节):
- 检查当前的安全配置:
cat ~/.hermes/config.yaml | grep -A 10 execution - 启用审计日志,观察操作记录
- 测试一个危险命令,观察是否触发了审批流程
💭 本节总结(不看书写3行):
📊 用时记录:计划____min → 实际____min → 偏差原因:________
10.7 自动Skill的质量治理与生命周期管理
🎯 本节目标:掌握技能质量治理的方法,学会审查、测试和淘汰技能,保持技能库的健康和高效。
预计时长:0.7小时
10.7.1 为什么需要技能治理
自动生成的Skill也可能出错或不完整。如果对自动生成的Skill不加管理,一段时间后技能库会累积大量低质量、重复或过时的技能,导致:
- 检索效率下降(技能太多,匹配时噪声增多)
- Agent可能调用不准确的技能产生错误结果
- 维护成本增加(难以判断哪些技能可信)
核心原则是:技能不是越多越好,而是越精越好。以下是一套可操作的技能治理流程。
10.7.2 技能审查流程
当Hermes自动生成一个新技能后,建议用户通过试用期审查来确认技能的安全性:
| 阶段 | 操作 | 验收标准 |
|---|---|---|
| 试用期(1周) | 技能自动标记experimental,仅在该会话中试运行 | 默认不加载到全局索引 |
| 审查期 | 手动执行/skill review <技能名>触发审查 | 审查者确认无误 |
| 审核验收 | 审查通过后技能标记为verified | 可被其他会话共享使用 |
审查要点:
- 准确性验证:技能描述是否与实际工作流一致
- 安全性检查:技能中是否包含敏感命令或可疑API调用
- 完整性评估:是否有遗漏的关键步骤
- 效率评估:是否有更优的实现方式
进行审查:Hermes Agent提供了一个/skill review <技能名>审查命令,运行后Agent会启动轻量级验证流程,返回技能的总体评价和存在的风险点。如果技能存在安全隐患,审查结果会明确提示“不推荐在生产环境使用”。
10.7.3 技能淘汰机制
当技能质量持续下降或因功能重复需要被移除时,有两种处理方式:
方式一:手动删除
bash
# 从磁盘删除技能文件 rm -rf ~/.hermes/skills/<skill-name>/
或在对话中执行:
/skill delete <技能名>
方式二:强制Agent自动淘汰
Hermes内置了技能评分机制,当技能连续多次被标记为“不推荐”或使用频率接近0时,Agent可触发自动淘汰流程,将技能移入~/.hermes/skills/archived/目录,而不是直接删除——你可以随时恢复它们。
10.7.4 技能版本管理
Hermes技能系统支持简单的版本控制:
- 开发分支:默认生成新技能时版本为0.1.0-alpha,标记为实验性
- 稳定分支:通过审查后建议用户手动提升版本并进行锁定
- 回滚机制:如果更新后的技能效果不如旧版,可通过
/skill rollback <技能名>恢复上一个稳定版本
✏️ 即时自测:自动生成的技能应该经过什么流程才能成为“正式技能”被所有会话共享使用?
✏️ 自测答案:试用期标记为experimental → 审查期验证准确性和安全性 → 审核通过后标记为verified,可供其他会话使用。
🛠️ 实践任务(本节):
- 检查技能库中是否有旧技能需要清理
- 对某个反复被Agent调用的技能执行
/skill review进行审查 - 如发现无用技能,动手删除它
💭 本节总结(不看书写3行):
📊 用时记录:计划____min → 实际____min → 偏差原因:________
第10章 参考资料与扩展阅读
- 深入源码:Hermes Agent 如何实现 “Self-Improving”(阿里云) https://developer.aliyun.com/article/1730226(Memory三层、Skill自动生成与Nudge Engine闭环)
- 轩轩AI:Hermes Agent 官方文档 https://docs.hermesagent.com/learning/skills
- 自我进化技能系统:Skill autogen
- Hermes Agent:能自我进化的AI智能体,不用手写Skill也能持续变强教程(阿里云) https://developer.aliyun.com/article/1727118(核心创新点+自进化闭环详解)
- Hermes 自动提取技能(华为云) https://bbs.huaweicloud.com/blogs/476436(SKILLS_GUIDANCE源码+create/patch完整流程)
- Hermes Agent的Skills、Plugins、Gateway深度解析(CSDN) https://blog.csdn.net/u011265143/article/details/160429498(Skill本质“知识文档”+渐进式披露+Plugins/Skills区别)
- Harness Engineering+Hermes Agent(ProcessOn) https://www.processon.com/view/69dda36d11fa1301dd52494c(执行-评估-优化-沉淀完整学习闭环)
- 〖实战〗Hermes Agent 深度体验(爱可网) https://www.e-com-net.com/article/2044747350034931712.htm(三层记忆/自动Skill/模型无关架构/数据飞轮)
- 爱马仕agent成长机制,自进化学习循环深度揭秘(AI-Indeed) https://www.ai-indeed.com/encyclopedia/19165.html(学习循环四个模块+技能自我优化)
- Hermes Agent vs OpenClaw Detailed Comparison(阿里云) https://developer.aliyun.com/article/1725145(设计哲学、功能矩阵全对比)
- Hermes与OpenClaw:智能体框架的差异化竞争与融合实践(百度开发者) https://developer.baidu.com/article/detail.html?id=6734877(电商客服自动生成复合技能包)
- Agent.ai: Hermes Agent Review & Docs https://agent.ai/agents/hermes-agent
- HermesAgent 安全沙箱配置(百度开发者) https://developer.baidu.com/article/detail.html?id=6758173
第二篇综合任务
任务:完成以下所有检查项,并记录输出。
🔰 强制任务(1小时,必须完成)
- 完成一次需要5次以上工具调用的复杂任务,观察Hermes是否自动生成了Skill
- 检查
~/.hermes/skills/目录,确认新生成的SKILL.md是否存在 - 阅读生成的SKILL.md,理解其结构和内容
- 执行
hermes skills list查看当前技能库 - 执行
/skill view <一个已有技能>查看技能详情 - 执行
/skill search <关键词>体验技能搜索 - 检查安全沙盒配置:
cat ~/.hermes/config.yaml | grep -A 10 execution
🚀 进阶任务(1小时,推荐完成)
- 对照10.7节的技能审查流程,对一个实验性技能执行
/skill review进行审查 - 如发现技能有更新空间,尝试使用
patch机制让Agent修正它 - 体验
/skill disable禁用某个技能,观察Agent的调用行为变化 - 配置
allowed_commands白名单,测试敏感命令是否被拦截 - (可选)探索agentskills.io官方文档,了解如何与其他平台共享技能
完成后,保存一份技能库快照,命名为chapter10_skills_snapshot.txt,至少包含:
hermes skills list的输出- 至少一个自动生成技能的文件内容(可以复制关键部分)
- 你的技能审查记录和安全配置摘要
龙马的评审:
“10.2节的SKILLS_GUIDANCE我在源码里翻过,逻辑清晰透彻。但这里要提醒一件事——自动技能生成要杜绝把错误的工作流也固化成技能。如果你在某个不正确的操作后对Agent说‘记住了’,它真的会学歪。所以每次任务结束后的审查确认非常重要,尤其是关键业务流程。另外, /skill review命令在实际调试中非常有用,但也别太依赖它——自动生成技能中最有用的往往是那些‘从错误中恢复’时产生的补救型技能,它的可靠性反而比那些一步到位的理论最优技能更扎实,因为它是用真实问题‘喂’出来的。”
沈飞的评审:
“10.4节Hermes与OpenClaw的对比给出了两条路线的选择建议,这点在量化场景里尤其重要。
策略研发用Hermes Skill——因为它从因子分析中逐步沉淀方法论,每次类似因子上来就有现成流程。
交易执行用OpenClaw Skill+确定性规则——因为交易信号的执行顺序必须精确可控,不能允许Agent在中间步骤有任何漂移。
建议在生产环境启动前,先对你的量化Skill清单做一次质量审计:
哪些Skill是交易相关的?必须走只读+审批+隔离流程 哪些Skill是重复的?清理以降低Agent决策混杂 哪些Skill已经过时?及时淘汰避免干扰
另外,如果希望Hermes自动生成的量化策略Skill在团队内共享,可以考虑按照agentskills.io标准导出后,集中放在一个共享库中统一审查和分发。毕竟量化策略的质量直接关系到实盘收益,不能只靠Agent自己把关。”
下一章预告:第11章 Hermes工具集与子Agent委托 —— 你将掌握Hermes内置的47+工具、MCP协议扩展、子Agent并行委托等高级能力,开始构建真正能够执行复杂生产任务的Agent系统。























暂无评论内容