Skip to content

Hermes Skills 是一个 YAML frontmatter + Markdown 指令的扩展系统,每个 Skill 是一个 SKILL.md 文件,通过 /skill-name 斜杠命令触发。社区 Skills 可以通过 /skills browse 直接搜索安装,也可以自己写。Skill 的作用是把复杂的 prompt 封装成可复用的命令,让 AI 按照你定义的工作流执行任务。

Hermes Agent Skills 系统详解:用斜杠命令扩展 AI 能力的完整教程

Skills 是 Hermes 的「可插拔命令」机制。一个 Skill 就是一个定义了 AI 行为的文件,安装后用 /skill-name 触发。

Skill 是什么,能做什么

最直观的例子:

yaml
# ~/.hermes/skills/code-review/SKILL.md
---
name: code-review
description: 对代码做安全性、可维护性和性能审查
---

你是代码审查专家。请对以下内容审查:
1. 安全漏洞(OWASP Top 10)
2. 可维护性(函数长度、命名、注释)
3. 性能(N+1、无限查询、内存泄漏)

用严重程度标注每条问题:🔴 Critical / 🟠 High / 🟡 Medium。

{{args}}

安装后,在 Hermes CLI 里输入:

/code-review

(如果有参数,直接在命令后面跟)Hermes 把 Skill 的 prompt 注入为用户消息(不是系统提示),然后执行。

为什么选择注入为用户消息而不是系统提示?保持 prompt cache 有效。系统提示变动会破坏整个对话的缓存,注入为用户消息不影响已缓存的内容。

Skill 和 Claude Code Skills 的异同

维度Hermes SkillsClaude Code Skills
文件格式SKILL.md(YAML frontmatter)SKILL.md(同格式,源自 Anthropic)
触发方式/skill-name 斜杠命令/skill-name 斜杠命令
存放位置~/.hermes/skills/(全局).claude/skills/(项目级)
社区市场agentskills.io + 内置 Hub无官方市场
跨平台触发CLI + 所有消息平台(Telegram 等)仅 Claude Code CLI/IDE
参数传递 占位符同格式

Hermes 和 Claude Code 的 Skills 格式高度相似(Hermes 参考了 Anthropic 的设计)。Claude Code 用户基本可以直接迁移 Skill 文件到 Hermes。

安装社区 Skill

方法一:从内置 Hub 搜索安装

/skills browse

进入搜索界面,可以按关键词过滤、查看描述和版本,选中后直接安装到 ~/.hermes/skills/

Hub 数据来源:从 agentskills.io、Anthropic 官方、OpenAI Skills 目录等多处聚合的 JSON 索引(存在 skills/index-cache/ 下)。

方法二:手动下载放到目录

bash
# 创建 skill 目录
mkdir -p ~/.hermes/skills/my-skill

# 放入 SKILL.md
cp /path/to/SKILL.md ~/.hermes/skills/my-skill/

方法三:hermes skills 命令

bash
hermes skills                  # 查看已安装的 skills
hermes skills enable my-skill  # 启用
hermes skills disable my-skill # 禁用(不删除文件)

自己写 Skill

最小 Skill(只有 prompt)

yaml
---
name: summarize-cn
description: 把英文内容总结成中文(200字以内)
---

请把以下内容总结成中文,200字以内,保留核心要点:

{{args}}

完整 Skill(带版本、平台限制、前置要求)

yaml
---
name: git-commit-message
description: 根据 git diff 生成规范的 commit message
version: 1.2.0
license: MIT
platforms: [macos, linux, windows]
prerequisites:
  commands: [git]
---

你是 git commit message 专家。根据下面的 diff 生成一条 Conventional Commits 格式的消息:

格式:<type>(<scope>): <description>
- type: feat / fix / refactor / docs / test / chore
- scope: 可选,受影响的模块名
- description: 50字以内,英文,动词开头

额外要求:
- 不要解释,只输出 commit message
- 如果变动跨多个模块,scope 写最主要的那个

Diff:
{{args}}

带参考文件的 Skill(Progressive Disclosure)

Skill 目录可以包含参考文档,AI 按需加载:

~/.hermes/skills/api-review/
├── SKILL.md          # 主指令
└── references/
    ├── security.md   # 安全检查清单
    └── patterns.md   # 常见问题模式

SKILL.md 里引用:

yaml
---
name: api-review
description: 对 REST API 设计做全面审查
---

你是 API 设计专家。请审查以下 API:

{{args}}

参考资料在 references/ 目录,可以用 skill_view 工具加载:
- references/security.md:安全检查清单
- references/patterns.md:常见设计问题

这种「按需加载」机制(Progressive Disclosure)避免每次都加载全量参考文档,节省 token。

在消息平台上使用 Skill

Skills 不只是 CLI 功能。在 Telegram / Discord / Slack 网关模式下,同样的 /skill-name 触发方式有效:

# 在 Telegram 里发消息给 Bot
/code-review
def foo(x):
    return eval(x)  # 这段代码怎么样?

Hermes 接收到消息后,识别 / 前缀,解析命令名,加载对应 Skill 并执行。Skills 的触发逻辑在 agent/skill_commands.py 里统一处理,CLI 和 Gateway 共用同一套代码。

关于 Gateway 模式部署,详见 消息网关部署指南

FAQ

Q: Skill 的 prompt 有长度限制吗?

没有强制限制,但建议控制在合理范围。description 字段最多 1024 字符(用于搜索展示),指令正文没有硬限制。过长的指令文件可以用 references/ 目录分割,按需加载。

Q: Skill 怎么访问上一条消息或上下文?

Skill 通过 接收命令后的参数。如果不带参数,AI 会基于当前对话上下文执行 Skill。想让 AI 分析之前某条消息,把它复制到命令参数里。

Q: 社区 Skill 安全吗?

Skill 本质是 prompt,没有代码执行权限。风险是 prompt injection:恶意 Skill 可能让 AI 执行不当操作。建议在安装前读一下 SKILL.md 的指令内容,来源不明的 Skill 谨慎使用。

Q: Skill 和普通 prompt 什么区别?

Skills 是为重复使用场景设计的:封装复杂 prompt、团队共享、支持版本管理。一次性的 prompt 直接在对话里输入更快。Skill 的价值在于「标准化 + 可复用」。