Agent工坊

【Agent工坊】Hermes Agent 自定义 Skill 开发实战:从零编写可复用的AI能力模块,附完整模板

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的行为。调试时:

  1. 开启新会话
  2. 只加载你要测试的这一个Skill
  3. 用最简单的输入触发它
  4. 观察输出是否符合预期

只有在新会话中测试通过后,才把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的架构师。

三个立即可以做的事

  1. 今天:把你最常用的那段提示词封装成一个Skill,用/skill_view加载测试
  2. 本周:写一个竞品监控Skill,用cron定时触发,每天收一份自动生成的竞品动态报告
  3. 本月:把你团队的工作流(代码审查、客户支持、数据分析)各封装一个Skill,让Agent真正融入业务流程

写Skill不需要任何编程能力——只需要你会描述清楚"我要Agent做什么"和"怎么判断它做对了"。


AI创业 #Agent工坊 #Hermes-Skill #一人公司