🧩 Hermes 自定义技能入门:创建你的第一个 Skill

高阶第 1 篇 — 让 Hermes 学会你教的任何事

🎯 这篇讲什么

Hermes 最独特的能力:用 Skill 文件教会它新技能。写一个 Markdown 文件,Hermes 就能自动加载、按你规定的流程执行。


🧠 什么是 Skill?

Skill 就是一个 Markdown 说明书,告诉 Hermes:


你写一份 Skill → Hermes 加载 → 遇到匹配场景 → 自动按流程执行

📝 第一个 Skill:5 分钟入门

场景

你经常需要 Hermes 帮你检查服务器状态。每次都描述一遍"ssh 上去、查 CPU、查内存、查磁盘"很烦。

创建文件


mkdir -p ~/.hermes/skills/my-skills

# ~/.hermes/skills/my-skills/server-health-check/SKILL.md
---
name: server-health-check
description: 当用户要求检查服务器健康状态时使用。SSH 连接服务器,
  检查 CPU、内存、磁盘和关键服务状态。
version: 1.0.0
---

# 服务器健康检查

## 触发条件

当用户说以下任一内容时使用此技能:
- "检查服务器"
- "服务器状态"
- "health check"
- "看看服务器还活着吗"

## 步骤

1. SSH 连接到目标服务器
2. 检查 CPU 使用率:`top -bn1 | head -5`
3. 检查内存:`free -h`
4. 检查磁盘:`df -h`
5. 检查关键服务:`systemctl status nginx docker`
6. 汇总结果,用中文告诉用户

## 注意事项

- 如果 SSH 连接失败,告知用户并询问是否重试
- CPU > 80% 或磁盘 > 90% 时用 ⚠ 标记警告
- 不要在输出中包含敏感路径信息

## 验证

确认所有检查项都有结果输出,且有明确的正常/异常标识。

安装技能


# Hermes 会自动发现 ~/.hermes/skills/ 下的新技能
# 对话中手动加载确认
/skill server-health-check

使用


用户: 检查一下我的服务器
Hermes: [加载 server-health-check 技能]
       → SSH 连接...
       → CPU: 23% ✅
       → 内存: 4.2G/8G ✅
       → 磁盘: 45% ✅
       → nginx: running ✅ docker: running ✅
       服务器一切正常!

📐 Skill 文件结构


---
name: skill-name           # 必填,唯一标识
description: 做什么用       # 必填,越具体越好
version: 1.0.0             # 语义化版本
metadata:                  # 可选元数据
  tags: [标签1, 标签2]
  related_skills: [关联技能]
---

# 技能标题

## 触发条件
明确列出什么情况下加载此技能

## 步骤
1. 第一步做什么
2. 第二步做什么
3. ...

## 注意事项 / Pitfalls
常见错误和注意事项

## 验证
怎么确认执行正确

🏷 Skill 命名规范

规则示例
全小写server-check
用连字符不用下划线health-monitorhealth_monitor
简短但有意义git-pr-reviewgpr
描述功能而非场景docker-deploywhen-i-want-to-deploy

📂 Skill 可以带文件

除了 SKILL.md,Skill 目录下还可以放:


my-skills/my-skill/
├── SKILL.md              # 主文件(必须)
├── references/           # 参考文档
│   └── api-docs.md
├── templates/            # 模板文件
│   └── config.yaml
├── scripts/              # 可执行脚本
│   └── check.sh
└── assets/               # 静态资源
    └── diagram.png

🔄 技能生命周期


创建 → 安装 → Hermes 自动发现 → 对话中触发 → 执行 → 积累改进
  │                                              │
  └────────── 发现问题 → patch 更新 ←──────────────┘

📊 Skill vs Claude Code Skill

Hermes SkillClaude Code Skill
文件格式SKILL.md + frontmatter纯 .md
自动发现✅ 目录 + 技能市场❌ 需手动指定目录
脚本支持✅ scripts/ 目录
模板支持✅ templates/ 目录
版本管理✅ version 字段
触发机制描述匹配 + 手动加载内容匹配

❓ 常见问题 (FAQ)

Q1: 我写的 Skill 没被加载?

检查:① 放在 ~/.hermes/skills/ 下;② 文件名是 SKILL.md;③ 有 frontmatter(--- 包裹的部分);④ name 和 description 必填。

Q2: Skill 怎么触发?

两种方式:① 用户说的话匹配了 description 中的场景;② 手动 /skill 名字

Q3: Skill 能调用其他 Skill 吗?

可以。在 related_skills 中列出关联技能名。

Q4: 写错了怎么改?

直接编辑 SKILL.md,下次加载时自动生效。或者用 skill_manage(action='patch') 让 Hermes 帮你改。

Q5: 能分享给朋友吗?

能。把 Skill 目录打包发过去,放到对应位置即可。或者发布到技能市场。

Q6: Skill 一定要手写吗?

不用。你可以在对话中纠正 Hermes,如果某个流程重复 2-3 次,Hermes 会自动建议创建 Skill。


⚠ 实操避坑

正确做法
description 写太泛("处理文件")写具体场景:"当用户要求批量重命名图片文件时"
忘了写 frontmatter--- 包裹的 name 和 description 是必填的
步骤写成散文用有序列表,每步一句话,有明确命令的附上命令
Skill 目录名和 name 不一致保持一致,避免混淆
脚本路径写死用相对路径,脚本放 scripts/ 目录下

标签:#AI #HermesAgent #高阶 #Skill #自定义