2026年Hermes Agent Skills Hub已经有20000+个公开Skill,但真正让Agent产生商业价值的,永远是那些封装了你自己的业务逻辑、工作流和行业know-how的自定义Skill。本文从YAML结构到调试技巧,给你一套完整的Skill开发方法论。
为什么你要学会写Skill
先看一个真实的对比场景。
小明用Hermes Agent做公众号运营,每次写文章前他都要手动输入一大段提示词:
请以AI创业内参的风格写作,目标读者是AI创业者,字数2000-3000,
必须包含数据来源URL,禁止使用"可能""据说"等模糊表述,
结尾要有关注公众号的CTA...
这段提示词他每天要复制粘贴5次。偶尔还会漏掉某条规则,导致产出质量不稳定。更糟的是,每次粘贴这段提示词都要消耗200+ token的上下文窗口。
如果他写成一个Skill呢?
/skill_view ai-neican-hotspot
一条斜杠命令,Agent自动加载完整的写作规则、数据源、质量标准和发布流程。Token消耗从每次200+降到一次性加载。而且可以复用给团队其他人。
这就是Skill的核心价值:把可复用的提示词、工作流和业务规则封装成标准化的能力模块。
在2026年的AI创业环境中,学会写Skill已经不是"进阶技巧"——它是AI创业者从"工具使用者"到"系统架构者"的升级门槛。
Skill 文件结构:你必须懂的YAML格式
Hermes Agent的Skill文件是一个标准的YAML文档,分为三个核心区域:
1. 头部元数据(Header Metadata)
---
name: my-custom-skill # 唯一标识符,用kebab-case命名
description: 这个Skill的简短描述 # 在Skills Hub里展示的一句话说明
version: 1.0.0 # 语义化版本号
author: 你的名字 # 作者署名
license: MIT # 开源协议
triggers: # 触发条件(可选)
- 当用户提到某个关键词时自动激活
- 可以写多条触发规则
metadata:
hermes:
tags: [content-creation, automation] # 标签,用于分类检索
related_skills: [ai-neican-hotspot] # 关联的其他Skill
---
关键细节:
- name 必须全局唯一,建议加你的命名空间前缀(如 myname-blog-writer)
- triggers 是可选的,不写的话用户需要手动 /skill_view 加载
- tags 影响在Skills Hub的搜索结果排名
- version 用语义化版本:主版本.次版本.修订号
2. 指令区(Instructions)
这是Skill的核心——你写给Agent的行为规则。用Markdown格式编写:
instructions: |
# Skill 标题
## 核心定位
一句话描述这个Skill让Agent做什么。
## 执行规则
1. 规则一:具体的行为约束
2. 规则二:输出格式要求
3. 规则三:禁止事项
## 数据源
- 来源1:URL或搜索关键词
- 来源2:本地文件路径
## 输出格式
描述Agent完成任务后应该输出什么、保存在哪里。
指令编写核心原则:
| 原则 | 说明 | 正例 | 反例 |
|---|---|---|---|
| 具体化 | 不要写笼统的愿望,写可执行的操作步骤 | "搜索GitHub releases页面获取最新版本号" | "保持信息更新" |
| 有边界 | 明确告诉Agent什么能做、什么不能做 | "只搜索2026年的内容,忽略更早的结果" | 不设时间限制 |
| 可验证 | 规则要能判断是否被执行 | "每条数据必须有来源URL" | "确保信息准确" |
| 分层次 | 用h2/h3组织,Agent能理解层级关系的优先级 | ## 核心规则 → ### 子规则 |
扁平列表 |
3. 完整Skill文件示例
下面是一个可直接使用的Skill模板——「每日AI热点摘要」:
---
name: daily-ai-digest
description: 每日AI行业热点扫描与摘要生成,覆盖GitHub releases、HN热榜、The Verge AI专栏
version: 1.0.0
author: AI创业内参
license: MIT
triggers:
- 用户说"今日AI热点"
- 用户说"今天有什么AI新闻"
- 每日定时触发
metadata:
hermes:
tags: [ai-news, automation, daily-digest]
related_skills: []
---
## 核心定位
每日定时扫描AI行业最新动态,输出5条以内的高价值热点摘要。聚焦AI Agent工具赛道和AI创业相关新闻。
## 数据源(按优先级)
1. **GitHub Releases**:Hermes Agent (`NousResearch/hermes-agent`)、OpenClaw (`openclaw/openclaw`)
2. **Hacker News 热榜**:`https://news.ycombinator.com/` 筛选AI相关条目(Points > 50 或 Comments > 20)
3. **The Verge AI专栏**:`https://www.theverge.com/ai-artificial-intelligence`
4. **HN Algolia**:搜索关键词 `AI agent tool release` 最近24小时
> ⚠️ **防重复机制**:生成摘要前先检查当日已发布内容,避免重复同一事件。
## 执行流程
### 步骤1:并行抓取数据源
同时查询GitHub releases、HN热榜、The Verge。不要串行等待。
### 步骤2:筛选与评分
对每条候选热点按以下标准打分(满分10分):
- 与AI Agent工具赛道相关性:0-4分
- 新颖性(是否在已有报道中出现过):0-3分
- 可操作性(读者能否直接应用):0-3分
总分 ≥ 6分才入选摘要。
### 步骤3:生成摘要
对每条入选热点,输出格式:
🔥 [热点标题]
来源:[URL]
为什么重要:[1-2句话说明对AI创业者的影响]
可操作建议:[1句话的行动建议]
### 步骤4:输出汇总
将所有摘要汇总,顶部加一句话导读。总字数控制在500字以内。
## 禁止事项
- ❌ 不报道纯融资新闻(除非涉及AI Agent工具赛道)
- ❌ 不输出超过5条摘要(信息过载=没有信息)
- ❌ 不输出无来源URL的"据说"类信息
## 输出格式
直接在当前对话中输出摘要,不写文件。
调试Skill的3个核心技巧
写完Skill之后,你大概率会遇到问题:Agent不按预期执行、指令被忽略、输出格式不对。以下是经过实战验证的调试方法:
技巧1:逐条测试指令
不要一次性写完整个Skill再测试。而是先写2-3条核心指令,加载后测试Agent是否遵守。通过后再加下一条。
# 测试流程
1. 写核心指令 → /skill_view 加载 → 测试
2. 确认核心指令生效 → 加边界规则 → 重新加载 → 再测试
3. 确认边界规则生效 → 加输出格式 → 重新加载 → 再测试
关键:Hermes Agent的 /skill_view 重新加载同名Skill会自动覆盖旧版,不需要重启会话。
技巧2:用「肯定句式」代替「否定句式」
Agent对否定指令的理解比肯定指令差。与其说"不要做X",不如说"只做Y"。
❌ "不要在摘要中包含超过5条新闻"
✅ "摘要严格控制在5条以内,多出的直接丢弃"
❌ "不要使用模糊的表述"
✅ "所有表述必须有具体数据或可验证的来源URL"
实测数据:肯定句式的指令遵循率约为85%,否定句式仅为60%左右。
技巧3:在最简环境中测试
复杂的会话上下文会干扰Skill的行为。调试时:
- 开启新会话
- 只加载你要测试的这一个Skill
- 用最简单的输入触发它
- 观察输出是否符合预期
只有在新会话中测试通过后,才把Skill放到有大量上下文的生产会话中使用。
公布到Skills Hub:三步上线
写完并测试通过后,可以把Skill发布到Hermes Agent的Skills Hub供其他人使用:
第一步:提交到Community Skills仓库
# Fork官方仓库
git clone https://github.com/NousResearch/hermes-agent-skills.git
cd hermes-agent-skills
# 把你的Skill文件放到对应分类目录
cp ~/my-skills/daily-ai-digest.yaml ./skills/news/
# 提交PR
git add . && git commit -m "Add daily-ai-digest skill" && git push
第二步:写一个好的README
在PR描述中包含:
- Skill用途的一句话说明
- 使用场景示例
- 依赖的外部工具(如有)
- 已知限制
第三步:等待社区Review
社区维护者会检查:
- YAML格式是否正确
- 指令是否有安全风险(不会让Agent执行危险操作)
- 是否有重复的Skill
通常24-48小时内会合并。
三个实战Skill思路(可直接套用)
思路1:代码审查Skill
封装你团队的代码规范,让Agent自动检查PR:
triggers:
- 用户提交代码审查请求
instructions: |
## 审查规则
1. 函数不超过50行
2. 所有公开API必须有docstring
3. 禁止使用`print()`做日志,统一用`logging`模块
4. SQL查询必须使用参数化,禁止字符串拼接
思路2:竞品监控Skill
每天自动扫描竞品动态:
triggers:
- 每日定时执行
instructions: |
## 监控目标
- Anthropic Claude:检查 /engineering/ 子路径新博文
- OpenAI:通过第三方源监测(官方有Cloudflare封锁)
- Cursor AI:检查 changelog 页面
- Windsurf:检查 blog 更新
## 发现更新后的操作
自动生成对比分析,包括:
- 新功能与我们的差异化分析
- 定价变化对市场的影响
- 可复制的应对策略
思路3:客户支持Skill
把常见问题的标准回复封装成Skill:
instructions: |
## 回复规则
1. 提到"退款" → 先确认订单号,再引导到退款流程页面
2. 提到"Bug" → 先要求复现步骤和日志,不要直接猜测原因
3. 所有回复结尾附加:如有其他问题,工作日9:00-18:00在线
## 升级规则
以下情况不要自行回复,标记为"需人工处理":
- 涉及账户安全的请求
- 法律相关询问
- 情绪激烈的投诉
常见问题(FAQ)
Q:Skill加载后会影响Agent在所有会话中的行为吗?
A:不会。Skill是会话级别的——只在当前对话中生效。新开会话需要重新加载。不过Hermes Agent支持在~/.hermes/config.yaml中配置默认Skill列表,新会话自动加载。
Q:多个Skill之间有冲突怎么办?
A:后加载的Skill会覆盖前面Skill的冲突规则。建议用related_skills元数据标记依赖关系,Agent会按依赖顺序加载。如果两个Skill给出了矛盾的指令,Agent会优先遵守最后加载的那个。
Q:Skill文件可以多大?
A:没有硬性限制,但建议控制在2000字以内。超过2000字的Skill加载时会显著增加Token消耗,且Agent对超长指令的遵循率会下降。如果你的Skill超过2000字,考虑拆分成多个子Skill通过related_skills串联。
Q:怎么判断我的Skill写得好不好?
A:最简单的标准——用Skill后,人工修正量是否减少。如果你的"写作风格Skill"加载后,文章仍然需要大量人工润色,说明指令不够具体。迭代方法是:每次发现Agent输出不符合预期,就加一条具体的规则约束,直到输出质量稳定。
总结
Skill是Hermes Agent能力体系的核心单元——它把"一次性提示词"变成了"可复用的能力模块"。学会写Skill,你就从Agent的使用者变成了Agent的架构师。
三个立即可以做的事:
- 今天:把你最常用的那段提示词封装成一个Skill,用
/skill_view加载测试 - 本周:写一个竞品监控Skill,用cron定时触发,每天收一份自动生成的竞品动态报告
- 本月:把你团队的工作流(代码审查、客户支持、数据分析)各封装一个Skill,让Agent真正融入业务流程
写Skill不需要任何编程能力——只需要你会描述清楚"我要Agent做什么"和"怎么判断它做对了"。
