乐于分享
好东西不私藏

Hermes Skill开发实战:从模板到发布一条龙

Hermes Skill开发实战:从模板到发布一条龙
⬆️击上方蓝字"萧遥AI笔记”,加“星标”关注我,每天收获AI干货
大家好,我是萧小遥,AI 内容创业者专注分享 AI 工具使用、AI 副业机会、AI 时代的个人成长。
在这里我们一起学:AI工具使用、AI提示词、AI写作、AI图片、AI短视频、AI智能体、AI数字人等项目玩法,助力工作提效以及副业玩法。

写好一个Skill,比学会100条命令更值钱。

装好Hermes之后,很多人会问一个问题:然后呢?

然后就是写Skill。

Skill是Hermes最核心的设计。它不是插件,也不是提示词模板——它是一套完整的、可复用的工作流说明书。

你可以把Skill理解成:给Hermes写的一份"操作手册"。以后遇到同类任务,它自动按手册执行,不用你每次重新描述一遍。

今天这篇,从Skill的目录结构讲到发布到社区。一条龙走完。

Skill到底是什么

先分清楚几个容易混淆的概念:

概念
说明
例子
Prompt
一次性指令,用完就丢
"帮我写一篇公众号文章"
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

相关阅读:

我是萧小遥,专注分享 AI 工具使用、AI 副业机会、AI 时代的个人成长,用 AI 打开更多可能,让副业更简单,让成长更高效。