自定义Skill:教Hermes新技能
10 自定义Skill:教Hermes新技能
Custom Skills: Teaching Hermes New Tricks
Hermes的学习循环会自动创建Skill,但你也可以手动教它。这一节讲怎么写Skill、从社区装Skill、以及把
Claude Code的Skill搬过来。
Skill到底是什么
在Hermes里,一个Skill就是一个markdown文件。没有什么框架要学,没有API要调,就是一段文字,告诉Hermes在特
定场景下应该怎么做。
思路和CLAUDE.md一样:用自然语言定义行为。区别在于CLAUDE.md全局生效,Skill按需激活。你让Hermes帮你写周
报,它会自动加载「写周报」Skill;你让它做代码审查,它加载另一个。
Skill文件存在 ~/.hermes/skills/ 目录下,每个Skill一个 .md 文件。
手动创建一个Skill
我们来写一个实际有用的Skill:让Hermes帮你做Git提交信息的规范化。
在 ~/.hermes/skills/ 下创建一个文件 git-commit-style.md:
# Git Commit Style
## 触发条件
当⽤户让我提交代码、写commit message、或review提交历史时激活。
## ⾏为规则
### Commit Message格式
- 第⼀⾏:类型(范围): 简述(不超过50字符)
- 空⼀⾏
- 正⽂:解释为什么改,⽽⾮改了什么
### 类型枚举
- feat: 新功能
- fix: 修复bug
- refactor: 重构(不改功能)
- docs: ⽂档
- test: 测试
- chore: 构建/⼯具链
### 约束
- ⽤中⽂写正⽂,类型⽤英⽂
- 不要写「修改了XX⽂件」这种废话
- ⼀个commit只做⼀件事
## 示例
```
feat(auth): ⽀持微信扫码登录
之前只能⽤⼿机号登录,微信⽤户需要先绑定⼿机号再登录,流程太⻓。
现在直接扫码就能登录,未绑定⼿机号的⽤户会⾃动创建账号。
```
保存之后,下次你对Hermes说「帮我提交这些改动」,它就会按这个格式来。不需要额外设置。
核心建议
Skill的触发是自动的。你不需要手动说「用XX Skill」,Hermes会根据你的请求自动匹配最相关的Skill。背后靠的是FTS5
全文检索加语义理解。
一个好Skill的结构
写了几十个Skill之后,我总结出好Skill的共性结构:
部分 作用 必须?
标题 让Hermes快速识别这个Skill的用途 是
触发条件 什么时候激活这个Skill 强烈建议
行为规则 具体怎么做,步骤、约束、格式 是
示例 一个完整的输入→输出示例 强烈建议
不要做什么 明确的边界,防止漂移 可选
触发条件写得越具体,Skill的命中率越高。「当用户提到代码」太模糊了;「当用户让我提交代码、写commit message、
或review提交历史时」就很好。
从Skills Hub安装社区Skill
Hermes自带Skills Hub,社区开发者贡献了各种现成的Skill。安装流程很简单:
1 浏览可用的Skill
在对话中直接问Hermes:「有什么可用的社区Skill?」它会列出Hub里的热门Skill,按类别分组。你也可以指定方
向,比如「有没有Python开发相关的Skill?」
2 安装
找到想要的Skill后,告诉Hermes「安装XX Skill」。它会把对应的markdown文件下载到 ~/.hermes/skills/,然
后立刻生效。不需要重启。
3 定制
安装完的Skill就是普通markdown文件,你可以直接打开编辑。社区Skill是起点,改成适合自己的才是终点。
Hermes的bundled skills有40多个,覆盖MLOps、GitHub工作流、研究助理等场景。出厂自带,不需要额外安装。
Skill调试技巧
写好Skill之后,怎么知道它有没有被正确触发?
直接问。对Hermes说「你现在加载了哪些Skill?」它会告诉你当前激活的Skill列表。如果你期望的Skill没出现,多半是
触发条件写得太窄。
看日志。日志文件会记录每次请求匹配了哪些Skill、为什么选中、为什么跳过。日志在 ~/.hermes/logs/ 目录下。
渐进式测试。别急着用复杂场景测。先用最简单的请求确认触发和基本行为,再试边界情况。
注意
Skill之间可能冲突。如果两个Skill的触发条件有重叠,Hermes会优先选择匹配度更高的那个,但结果不一定符合你的预
期。遇到行为异常,先检查是不是Skill冲突。
实战:把Claude Code Skill移植到Hermes
很实际的需求:你在Claude Code里积累了一堆好用的Skill,切到Hermes之后不想从零开始。agentskills.io标准让Skill
在不同Agent之间互通,所以迁移成本很低。
拿一个真实的例子来演示。我在Claude Code里有个「公众号审校」Skill,核心逻辑是三遍审校(事实、风格、细节)。
SKILL.md大概长这样:
# 公众号⽂章审校
## 触发条件
当⽤户提到「审校」「降低AI味」「太AI了」「润⾊」时激活。
## 审校流程
### 第⼀遍:事实审校
- 检查所有数据、时间、产品名是否准确
- 标注不确定的信息
### 第⼆遍:⻛格审校
- 删除AI⾼频词(⾸先/其次/综上所述)
- 拆解AI句式
- 替换书⾯词汇为⼝语
### 第三遍:细节打磨
- 句⼦控制在15-25字
- 段落控制在⼿机屏幕3-5⾏
- 约10处加粗标记重点
把这个文件复制到 ~/.hermes/skills/proofreading.md,Hermes就能直接用。不需要改格式,不需要适配API,因为
大家都是markdown,语义结构一致。
如果Skill里引用了Claude Code特有的工具(比如特定的MCP Server),那部分需要调整成Hermes对应的工具名。但核
心逻辑、触发条件、行为规则都是通用的。
agentskills.io的意义:Skill不再是某个Agent的专属资产。你在Claude Code、Cursor、Gemini CLI里积累的Skill,
Hermes里直接用。反过来也一样。选Agent时不用担心迁移成本。
下一节看MCP集成。Skill教Hermes怎么做事,MCP让它连接外部工具。两者配合起来,能覆盖的场景就非常广了。
Custom Skills: Teaching Hermes New Tricks
Hermes的学习循环会自动创建Skill,但你也可以手动教它。这一节讲怎么写Skill、从社区装Skill、以及把
Claude Code的Skill搬过来。
Skill到底是什么
在Hermes里,一个Skill就是一个markdown文件。没有什么框架要学,没有API要调,就是一段文字,告诉Hermes在特
定场景下应该怎么做。
思路和CLAUDE.md一样:用自然语言定义行为。区别在于CLAUDE.md全局生效,Skill按需激活。你让Hermes帮你写周
报,它会自动加载「写周报」Skill;你让它做代码审查,它加载另一个。
Skill文件存在 ~/.hermes/skills/ 目录下,每个Skill一个 .md 文件。
手动创建一个Skill
我们来写一个实际有用的Skill:让Hermes帮你做Git提交信息的规范化。
在 ~/.hermes/skills/ 下创建一个文件 git-commit-style.md:
# Git Commit Style
## 触发条件
当⽤户让我提交代码、写commit message、或review提交历史时激活。
## ⾏为规则
### Commit Message格式
- 第⼀⾏:类型(范围): 简述(不超过50字符)
- 空⼀⾏
- 正⽂:解释为什么改,⽽⾮改了什么
### 类型枚举
- feat: 新功能
- fix: 修复bug
- refactor: 重构(不改功能)
- docs: ⽂档
- test: 测试
- chore: 构建/⼯具链
### 约束
- ⽤中⽂写正⽂,类型⽤英⽂
- 不要写「修改了XX⽂件」这种废话
- ⼀个commit只做⼀件事
## 示例
```
feat(auth): ⽀持微信扫码登录
之前只能⽤⼿机号登录,微信⽤户需要先绑定⼿机号再登录,流程太⻓。
现在直接扫码就能登录,未绑定⼿机号的⽤户会⾃动创建账号。
```
保存之后,下次你对Hermes说「帮我提交这些改动」,它就会按这个格式来。不需要额外设置。
核心建议
Skill的触发是自动的。你不需要手动说「用XX Skill」,Hermes会根据你的请求自动匹配最相关的Skill。背后靠的是FTS5
全文检索加语义理解。
一个好Skill的结构
写了几十个Skill之后,我总结出好Skill的共性结构:
部分 作用 必须?
标题 让Hermes快速识别这个Skill的用途 是
触发条件 什么时候激活这个Skill 强烈建议
行为规则 具体怎么做,步骤、约束、格式 是
示例 一个完整的输入→输出示例 强烈建议
不要做什么 明确的边界,防止漂移 可选
触发条件写得越具体,Skill的命中率越高。「当用户提到代码」太模糊了;「当用户让我提交代码、写commit message、
或review提交历史时」就很好。
从Skills Hub安装社区Skill
Hermes自带Skills Hub,社区开发者贡献了各种现成的Skill。安装流程很简单:
1 浏览可用的Skill
在对话中直接问Hermes:「有什么可用的社区Skill?」它会列出Hub里的热门Skill,按类别分组。你也可以指定方
向,比如「有没有Python开发相关的Skill?」
2 安装
找到想要的Skill后,告诉Hermes「安装XX Skill」。它会把对应的markdown文件下载到 ~/.hermes/skills/,然
后立刻生效。不需要重启。
3 定制
安装完的Skill就是普通markdown文件,你可以直接打开编辑。社区Skill是起点,改成适合自己的才是终点。
Hermes的bundled skills有40多个,覆盖MLOps、GitHub工作流、研究助理等场景。出厂自带,不需要额外安装。
Skill调试技巧
写好Skill之后,怎么知道它有没有被正确触发?
直接问。对Hermes说「你现在加载了哪些Skill?」它会告诉你当前激活的Skill列表。如果你期望的Skill没出现,多半是
触发条件写得太窄。
看日志。日志文件会记录每次请求匹配了哪些Skill、为什么选中、为什么跳过。日志在 ~/.hermes/logs/ 目录下。
渐进式测试。别急着用复杂场景测。先用最简单的请求确认触发和基本行为,再试边界情况。
注意
Skill之间可能冲突。如果两个Skill的触发条件有重叠,Hermes会优先选择匹配度更高的那个,但结果不一定符合你的预
期。遇到行为异常,先检查是不是Skill冲突。
实战:把Claude Code Skill移植到Hermes
很实际的需求:你在Claude Code里积累了一堆好用的Skill,切到Hermes之后不想从零开始。agentskills.io标准让Skill
在不同Agent之间互通,所以迁移成本很低。
拿一个真实的例子来演示。我在Claude Code里有个「公众号审校」Skill,核心逻辑是三遍审校(事实、风格、细节)。
SKILL.md大概长这样:
# 公众号⽂章审校
## 触发条件
当⽤户提到「审校」「降低AI味」「太AI了」「润⾊」时激活。
## 审校流程
### 第⼀遍:事实审校
- 检查所有数据、时间、产品名是否准确
- 标注不确定的信息
### 第⼆遍:⻛格审校
- 删除AI⾼频词(⾸先/其次/综上所述)
- 拆解AI句式
- 替换书⾯词汇为⼝语
### 第三遍:细节打磨
- 句⼦控制在15-25字
- 段落控制在⼿机屏幕3-5⾏
- 约10处加粗标记重点
把这个文件复制到 ~/.hermes/skills/proofreading.md,Hermes就能直接用。不需要改格式,不需要适配API,因为
大家都是markdown,语义结构一致。
如果Skill里引用了Claude Code特有的工具(比如特定的MCP Server),那部分需要调整成Hermes对应的工具名。但核
心逻辑、触发条件、行为规则都是通用的。
agentskills.io的意义:Skill不再是某个Agent的专属资产。你在Claude Code、Cursor、Gemini CLI里积累的Skill,
Hermes里直接用。反过来也一样。选Agent时不用担心迁移成本。
下一节看MCP集成。Skill教Hermes怎么做事,MCP让它连接外部工具。两者配合起来,能覆盖的场景就非常广了。