Skills 是按需加载的知识文档,用来教 Hermes 如何处理特定任务 —— 从生成 ASCII art 到管理 GitHub PR。本指南将带你了解日常如何使用它们。
完整技术参考请参见 Skills System。
查找 Skills
Section titled “查找 Skills”每个 Hermes 安装都会随附捆绑 skills。查看可用内容:
# In any chat session:/skills
# Or from the CLI:hermes skills list这会显示一个紧凑列表,包含名称和描述:
ascii-art Generate ASCII art using pyfiglet, cowsay, boxes...arxiv Search and retrieve academic papers from arXiv...github-pr-workflow Full PR lifecycle — create branches, commit...plan Plan mode — inspect context, write a markdown...excalidraw Create hand-drawn style diagrams using Excalidraw...搜索 Skill
Section titled “搜索 Skill”# Search by keyword/skills search docker/skills search musicSkills Hub
Section titled “Skills Hub”官方可选 skills(较重或较小众、默认不启用的 skills)可通过 Hub 获取:
# Browse official optional skills/skills browse
# Search the hub/skills search blockchain使用 Skill
Section titled “使用 Skill”每个已安装的 skill 都会自动成为一个斜杠命令。只需输入它的名称:
# Load a skill and give it a task/ascii-art Make a banner that says "HELLO WORLD"/plan Design a REST API for a todo app/github-pr-workflow Create a PR for the auth refactor
# Just the skill name (no task) loads it and lets you describe what you need/excalidraw你也可以通过自然对话触发 skills —— 让 Hermes 使用某个特定 skill,它会通过 skill_view 工具加载该 skill。
Skills 使用一种 token 高效的加载模式。agent 不会一次性加载所有内容:
skills_list()—— 所有 skills 的紧凑列表(约 3k tokens)。在 session 启动时加载。skill_view(name)—— 某个 skill 的完整SKILL.md内容。当 agent 判断需要该 skill 时加载。skill_view(name, file_path)—— skill 中的某个特定 reference 文件。只有在需要时才加载。
这意味着 skills 在真正使用之前不会消耗 tokens。
从 Hub 安装
Section titled “从 Hub 安装”官方可选 skills 随 Hermes 一起提供,但默认不会启用。需要显式安装:
# Install an official optional skillhermes skills install official/research/arxiv
# Install from the hub in a chat session/skills install official/creative/songwriting-and-ai-music
# Install a single-file SKILL.md directly from any HTTP(S) URLhermes skills install https://sharethis.chat/SKILL.md/skills install https://example.com/SKILL.md --name my-skill会发生什么:
- skill 目录会被复制到
~/.hermes/skills/ - 它会出现在你的
skills_list输出中 - 它会变成可用的斜杠命令
# Check it's therehermes skills list | grep arxiv
# Or in chat/skills search arxiv插件提供的 Skills
Section titled “插件提供的 Skills”插件可以使用命名空间名称(plugin:skill)捆绑自己的 skills。这可以防止与内置 skills 发生名称冲突。
# Load a plugin skill by its qualified nameskill_view("superpowers:writing-plans")
# Built-in skill with the same base name is unaffectedskill_view("writing-plans")插件 skills 不会列在 system prompt 中,也不会出现在 skills_list 中。它们是 opt-in 的 —— 当你知道某个插件提供了某个 skill 时,需要显式加载它们。加载后,agent 会看到一个 banner,列出同一插件中的 sibling skills。
关于如何在你自己的插件中随附 skills,请参见 Build a Hermes Plugin → Bundle skills。
配置 Skill 设置
Section titled “配置 Skill 设置”有些 skills 会在 frontmatter 中声明它们需要的配置:
metadata: hermes: config: - key: tenor.api_key description: "Tenor API key for GIF search" prompt: "Enter your Tenor API key" url: "https://developers.google.com/tenor/guides/quickstart"当带有配置的 skill 第一次被加载时,Hermes 会提示你输入这些值。它们会存储在 config.yaml 的 skills.config.* 下。
从 CLI 管理 skill 配置:
# Interactive config for a specific skillhermes skills config gif-search
# View all skill confighermes config get skills.config创建你自己的 Skill
Section titled “创建你自己的 Skill”Skills 本质上只是带有 YAML frontmatter 的 markdown 文件。创建一个 skill 不到五分钟。
- 创建目录
mkdir -p ~/.hermes/skills/my-category/my-skill- 编写
SKILL.md
~/.hermes/skills/my-category/my-skill/SKILL.md
---name: my-skilldescription: Brief description of what this skill doesversion: 1.0.0metadata: hermes: tags: [my-tag, automation] category: my-category---
# My Skill
## When to UseUse this skill when the user asks about [specific topic] or needs to [specific task].
## Procedure1. First, check if [prerequisite] is available2. Run `command --with-flags`3. Parse the output and present results
## Pitfalls- Common failure: [description]. Fix: [solution]- Watch out for [edge case]
## VerificationRun `check-command` to confirm the result is correct.- 添加参考文件(可选)
Skills 可以包含辅助文件,agent 会按需加载:
my-skill/├── SKILL.md # 主 skill 文档├── references/│ ├── api-docs.md # agent 可查阅的 API 参考│ └── examples.md # 示例输入 / 输出├── templates/│ └── config.yaml # agent 可使用的模板文件└── scripts/ └── setup.sh # agent 可执行的脚本在你的 SKILL.md 中引用这些文件:
For API details, load the reference: `skill_view("my-skill", "references/api-docs.md")`- 测试它
启动一个新 session,然后尝试你的 skill:
hermes chat -q "/my-skill help me with the thing"该 skill 会自动出现 —— 不需要注册。把它放进 ~/.hermes/skills/,它就生效了。
按平台管理 Skill
Section titled “按平台管理 Skill”控制哪些 skills 可以在哪些平台上使用:
hermes skills这会打开一个交互式 TUI,你可以按平台(CLI、Telegram、Discord 等)启用或禁用 skills。当你希望某些 skills 只在特定上下文中可用时,这很有用 —— 例如,不让开发类 skills 出现在 Telegram 中。
Skills 与 Memory
Section titled “Skills 与 Memory”两者都会跨 session 持久保存,但用途不同:
| Skills | Memory | |
|---|---|---|
| 是什么 | 程序性知识 —— 如何做事情 | 事实性知识 —— 事情是什么 |
| 什么时候使用 | 按需加载,只有相关时才加载 | 自动注入到每个 session 中 |
| 大小 | 可以很大(数百行) | 应该保持紧凑(只保存关键事实) |
| 成本 | 加载前零 tokens | 少量但持续的 token 成本 |
| 示例 | “如何部署到 Kubernetes” | “用户偏好深色模式,住在 PST 时区” |
| 谁创建 | 你、agent,或从 Hub 安装 | agent 基于对话创建 |
经验法则:如果你会把它放进参考文档,那它就是 skill。如果你会把它写在便利贴上,那它就是 memory。
保持 skills 聚焦。一个试图覆盖“整个 DevOps”的 skill 会太长、太模糊。一个覆盖“将 Python app 部署到 Fly.io”的 skill 就足够具体,能真正有用。
让 agent 创建 skills。在完成复杂的多步骤任务后,Hermes 通常会提出把这个方法保存为 skill。说 yes —— 这些由 agent 编写的 skills 会捕捉准确的工作流,包括过程中发现的坑。
使用 categories。将 skills 组织到子目录中(~/.hermes/skills/devops/、~/.hermes/skills/research/ 等)。这能让列表更易管理,也帮助 agent 更快找到相关 skills。
当 skills 过时时更新它们。如果你使用某个 skill 时遇到了它没有覆盖的问题,告诉 Hermes 把你学到的内容更新进该 skill。没有维护的 skills 会变成负担。
完整的 skills 参考 —— frontmatter 字段、条件激活、外部目录等 —— 请参见 Skills System。