Technical Guide
10. Skills 原理:为什么 Hermes 把经验沉淀成 Skill
理解 Skill 在 Hermes 里的位置:它不是普通提示词,而是可复用、可加载、可维护的过程知识。
这篇解决什么问题
Hermes 里最有特色的设计之一,是 Skills。
很多 Agent 都有工具,但不一定有一套长期维护的“过程知识”。Hermes 的 Skill 解决的是另一个问题:同一类任务反复做时,不要每次都从零开始摸索。
Skill 不是工具
Tool 解决“能不能做”。
Skill 解决“应该怎么做”。
比如:
read_file 是工具
technical-tutorial-writing 是 Skill
read_file 只负责读文件。
technical-tutorial-writing 会告诉 Agent:写技术教程时要核对官方资料、不要营销腔、每篇有验证方式、代码块要能读。
Skill 也不是普通 prompt
普通 prompt 往往是一次性的。
Skill 是长期文件,通常有:
SKILL.md
references/
templates/
scripts/
assets/
SKILL.md 放稳定流程。
references/ 放长资料、经验记录、案例。
templates/ 放可复用模板。
scripts/ 放可执行辅助脚本。
这让 Skill 更像“可维护的操作手册”,而不是一次 prompt。
Hermes 为什么需要 Skill
因为很多任务不是靠模型临场发挥就能稳定做好。
例如:
- 写公众号文章;
- 做技术教程;
- 操作 GitHub;
- 生成日报;
- 维护知识库;
- 排查某类部署问题。
这些任务都有固定坑点、目录约定、质量检查和用户偏好。
Skill 把这些沉淀下来,下次任务开始时就能直接加载。
Skill 的使用方式
常见方式有三种:
1. 系统提示词里展示 skill 索引,模型按任务选择加载
2. 用户明确要求加载某个 skill
3. cron / subagent / CLI 启动时预加载 skills
在对话里,模型通常先看到可用技能索引;真正需要时,再调用 skill_view 读取完整内容。
为什么不全部加载
如果把所有 Skill 全部塞进上下文,会有几个问题:
- 上下文太长;
- 无关流程干扰当前任务;
- 技能之间可能互相冲突;
- 每轮成本变高。
所以 Hermes 更像“索引 + 按需加载”。
好 Skill 的标准
一个好 Skill 不只是说明“这个任务很重要”。
它应该写清楚:
什么时候使用
什么时候不要使用
执行步骤
常见坑
验证方式
相关文件/命令
如果失败怎么处理
对 Agent 来说,验证方式尤其重要。没有验证,Skill 很容易变成“看起来专业的建议”。
下一篇看什么
下一篇看源码:Skill 是怎么被发现、过滤、加载和写入的。