

写好一个Skill,比学会100条命令更值钱。
装好Hermes之后,很多人会问一个问题:然后呢?
然后就是写Skill。
Skill是Hermes最核心的设计。它不是插件,也不是提示词模板——它是一套完整的、可复用的工作流说明书。
你可以把Skill理解成:给Hermes写的一份"操作手册"。以后遇到同类任务,它自动按手册执行,不用你每次重新描述一遍。
今天这篇,从Skill的目录结构讲到发布到社区。一条龙走完。
Skill到底是什么
先分清楚几个容易混淆的概念:
Skill的区别在于:写一次,反复用。 下次遇到同类任务,Hermes会自动匹配并执行,不需要你重复描述。
Skill的结构长什么样
Hermes的Skill是一个目录,里面放一个SKILL.md文件。整体结构非常轻:
~/.hermes/skills/my-first-skill/
├── SKILL.md
└── references/ (可选:参考文件)
SKILL.md是最核心的文件。它由两部分组成:
第一部分:YAML元数据(frontmatter)
---
name:my-first-skill
description:这个Skill做什么的
version:1.0.0
tags:
-tutorial
-beginner
---
第二部分:Markdown正文
正文部分就是给Hermes的详细操作说明。告诉它:
触发条件是什么 执行步骤有哪些 输出格式是什么
手把手写第一个Skill
从最简单的开始:一个"每日金句"Skill。每天早上自动从金句库里选一条发到飞书。
这个场景很典型——固定流程、每天重复、不需要AI做复杂判断。
第一步:建目录
mkdir -p ~/.hermes/skills/daily-quote
第二步:写SKILL.md
先写frontmatter(YAML元数据):
---
name:daily-quote
description:每日从金句库选取一条金句并推送飞书
version:1.0.0
tags:
-daily
-notification
---
这几个字段是关键:
name:Skill的唯一标识,全局不能重复 description:一句话描述Skill做什么。Hermes会根据描述自动匹配用户的意图 version:版本号,方便迭代管理 tags:标签,用于分类和搜索
然后是正文部分。正文是给Hermes的详细操作指令:
# 每日金句
## 触发条件
用户说"发今日金句"或类似指令时执行。也可通过Cron定时每天早上8点自动执行。
## 引用
- 金句库:references/jinjuku.md
## 执行步骤
1. 读取金句库文件,获取所有金句列表
2. 查询当前已用金句记录(通过memory工具)
3. 选择第一条未使用的金句
4. 发推送消息到飞书私聊
5. 更新已用金句记录
第三步:补充参考文件
在目录下创建一个references/文件夹,放入金句库:
mkdir -p ~/.hermes/skills/daily-quote/references
第四步:部署
把目录放到Hermes的skills目录下就行。Hermes启动时会自动扫描并加载全部Skill。
第五步:验证
hermes skills list
如果输出里出现了daily-quote,说明加载成功。直接跑一次看效果:
hermes skill run daily-quote
这个例子虽然简单,但覆盖了Skill开发的所有基础操作:建目录、写元数据、写执行步骤、部署、验证。后面的进阶Skill都是在这个框架上加东西。
进阶:带变量的Skill
上面的Skill太简单了。真正有用的Skill往往需要参数。
先看一个"每日新闻采集"Skill,它用{topic}做变量占位:
---
name:daily-news
description:每日AI新闻采集
version:1.0.0
tags:
-news
-daily
---
正文部分:
# 每日新闻采集
## 参数说明
- `topic`: 搜索主题(必填)
- `limit`: 返回结果数量(可选,默认6)
## 执行步骤
1. 使用搜索工具搜索 `{topic}` 相关的2026年最新信息
2. 将搜索结果整理成要点列表格式
3. 保存到 `/tmp/daily-news-{日期}.md`
跑起来就一句话:
hermes skill run daily-news topic="大模型"
{topic}就是参数占位符。每次执行可以传不同的值,同一个Skill可以搜不同方向。
如果配合Cron定时:
hermes cron create \
--name "每日新闻" \
--schedule "0 8 * * *" \
--skill daily-news \
--args '{"topic": "AI编程工具"}'
每天早上8点自动跑,风雨无阻。
测试和调试Skill
写完Skill不测试就上线,大概率翻车。Hermes提供了几条调试路径。
测试方法1:直接运行
hermes skill run daily-news topic="DeepSeek"
看输出是否符合预期。搜索结果够不够?格式对不对?一次跑通最好,跑不通就迭代。
测试方法2:指定Skill执行
用 daily-news skill 执行,搜一下 AI Agent 的最新动态
跳过Hermes的自动匹配,直接指定用哪个Skill。这在排查「为什么没触发我写的Skill」时特别有用。
测试方法3:查看日志
hermes logs --skill daily-news
可以看到每次会话中Skill匹配和执行的过程,哪步卡住了一目了然。如果Skill根本没被触发,日志里会显示匹配失败的记录和原因。
常见问题和解决方案
问题1:Skill没被触发原因通常是description写得太模糊。Hermes是根据description来判断「什么场景用哪个Skill」的。如果把description写得太抽象(比如"做各种事情"),Hermes就没法匹配。
解决方案:把description写得具体一些,比如"每日AI新闻采集,自动搜索指定主题并生成摘要"。
问题2:执行到某一步卡住如果Skill有多个步骤,卡在第三步,说明第三步的描述不够明确。检查这步的指令是否清晰到AI能直接执行。
问题3:输出格式不对正文里的输出模板写得不够具体。可以用示例格式来约束输出样式。
三个实用调试技巧
先手动跑通,再写Skill。 如果你还不确定这个工作流怎么做,先手动跑一次,把步骤记下来,再封装成Skill。 第一次跑的结果往往不够好。 调整搜索关键词、输出格式、步骤顺序,迭代三次很正常。别指望一次完美。 Skill可以引用其他Skill。 在正文里写"执行前先调用xxx Skill获取数据",就能形成技能链。比如"每日报告"Skill先调用"数据采集"Skill,再用采集结果生成报告。
发布和复用
Skill写好了,怎么让别人也用上?怎么在不同机器之间同步?
发布到技能市场
Hermes有一个技能市场(skills.sh),可以搜索和安装社区分享的Skill。
发布自己的Skill:
hermes skills publish ./my-skill
这个命令会把Skill推送到注册的中心仓库。发布前建议检查一下:description写得够清楚吗?有没有敏感信息(API密钥)?
其他人搜索和安装:
hermes skills search daily-news
hermes skills install daily-news
本地复制复用
不想发布也行。Skill本身就是一堆文件,直接复制:
cp -r ~/.hermes/skills/daily-news /另一台机器/的目录/
把目录放到另一台机器的~/.hermes/skills/下,重启Hermes就能用。
导出导入配置
如果只想迁移配置,不想搬整个目录:
hermes skills snapshot export daily-news
hermes skills snapshot import daily-news
管理已安装的Skill
日常管理命令:
hermes skills list # 列出所有已安装的Skill
hermes skills update xxx # 检查并更新某个Skill
hermes skills uninstall xxx # 卸载
hermes skills config # 启用/禁用,控制哪些Skill生效
hermes skills check # 检查已安装的Skill是否有更新
模板参考
模板1:内容采集类
---
name:content-collector
description:采集指定话题的最新内容并汇总
version:1.0.0
tags:
-content
-collection
---
# 内容采集
## 参数
- `topic`: 采集话题
- `count`: 采集条数(默认8)
## 步骤
1. 搜索 `{topic}` 相关最新内容
2. 提取正文摘要
3. 按"标题|来源|摘要"格式汇总
4. 保存到本地
模板2:数据处理类
---
name:data-processor
description:读取文件数据并按规则处理
version:1.0.0
tags:
-data
---
# 数据处理
## 参数
- `source`: 源文件路径
- `format`: 输出格式(json/csv/markdown)
## 步骤
1. 读取 `{source}` 文件
2. 解析文件内容
3. 按 `{format}` 格式处理数据
4. 保存处理结果
模板3:通知推送类
---
name:notify-pusher
description:生成报告并推送到指定平台
version:1.0.0
tags:
-notification
---
# 通知推送
## 参数
- `content`: 要推送的内容
- `target`: 推送目标(feishu/slack/email)
- `channel`: 目标频道或联系人
## 步骤
1. 格式化 `{content}`
2. 调用 `send_message` 推送到 `{target}`
3. 确认推送成功
4. 记录推送日志
什么时候该写Skill
一条实用原则:同一个任务手动做了3次,就该写成Skill了。
总结
Skill开发的流程不复杂:建目录 → 写SKILL.md → 部署 → 测试 → 发布。
每写一个Skill,你的Hermes就多了一项不用教的技能。写多了之后,你会发现:
最值钱的不是会用多少个工具,而是能封装多少套自己的工作流。
当别人还在每次手动作业时,你一句话就让Hermes跑完整条流水线。这个差距会越来越大。
我整理了一份全套 Hermes 教程,有需要的伙伴,点击下方关注,回复:【Hermes】,获取。
如果你喜欢这篇文章,别忘了点赞、在看、转发三连哦~
END
相关阅读:
装完Hermes Agent后,下一步怎么把它变聪明?技能闭环是关键 用Hermes Agent搭建你的AI编辑部:选题、写稿、发布一条龙 Hermes Agent 10 个常见报错及 5 分钟修复指南 Hermes Agent 入门到精通:7 个核心配置让效率翻倍 Hermes Agent副业5个方向
夜雨聆风