Skip to content

hermes agent 使用 Skills

Skills 是按需加载的知识文档,用来教 Hermes 如何处理特定任务 —— 从生成 ASCII art 到管理 GitHub PR。本指南将带你了解日常如何使用它们。

完整技术参考请参见 Skills System

每个 Hermes 安装都会随附捆绑 skills。查看可用内容:

Terminal window
# 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...
Terminal window
# Search by keyword
/skills search docker
/skills search music

官方可选 skills(较重或较小众、默认不启用的 skills)可通过 Hub 获取:

Terminal window
# Browse official optional skills
/skills browse
# Search the hub
/skills search blockchain

每个已安装的 skill 都会自动成为一个斜杠命令。只需输入它的名称:

Terminal window
# 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 不会一次性加载所有内容:

  1. skills_list() —— 所有 skills 的紧凑列表(约 3k tokens)。在 session 启动时加载。
  2. skill_view(name) —— 某个 skill 的完整 SKILL.md 内容。当 agent 判断需要该 skill 时加载。
  3. skill_view(name, file_path) —— skill 中的某个特定 reference 文件。只有在需要时才加载。

这意味着 skills 在真正使用之前不会消耗 tokens。

官方可选 skills 随 Hermes 一起提供,但默认不会启用。需要显式安装:

Terminal window
# Install an official optional skill
hermes 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) URL
hermes skills install https://sharethis.chat/SKILL.md
/skills install https://example.com/SKILL.md --name my-skill

会发生什么:

  1. skill 目录会被复制到 ~/.hermes/skills/
  2. 它会出现在你的 skills_list 输出中
  3. 它会变成可用的斜杠命令
Terminal window
# Check it's there
hermes skills list | grep arxiv
# Or in chat
/skills search arxiv

插件可以使用命名空间名称(plugin:skill)捆绑自己的 skills。这可以防止与内置 skills 发生名称冲突。

# Load a plugin skill by its qualified name
skill_view("superpowers:writing-plans")
# Built-in skill with the same base name is unaffected
skill_view("writing-plans")

插件 skills 不会列在 system prompt 中,也不会出现在 skills_list 中。它们是 opt-in 的 —— 当你知道某个插件提供了某个 skill 时,需要显式加载它们。加载后,agent 会看到一个 banner,列出同一插件中的 sibling skills。

关于如何在你自己的插件中随附 skills,请参见 Build a Hermes Plugin → Bundle skills。

有些 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.yamlskills.config.* 下。

从 CLI 管理 skill 配置:

Terminal window
# Interactive config for a specific skill
hermes skills config gif-search
# View all skill config
hermes config get skills.config

Skills 本质上只是带有 YAML frontmatter 的 markdown 文件。创建一个 skill 不到五分钟。

  1. 创建目录
Terminal window
mkdir -p ~/.hermes/skills/my-category/my-skill
  1. 编写 SKILL.md

~/.hermes/skills/my-category/my-skill/SKILL.md

---
name: my-skill
description: Brief description of what this skill does
version: 1.0.0
metadata:
hermes:
tags: [my-tag, automation]
category: my-category
---
# My Skill
## When to Use
Use this skill when the user asks about [specific topic] or needs to [specific task].
## Procedure
1. First, check if [prerequisite] is available
2. Run `command --with-flags`
3. Parse the output and present results
## Pitfalls
- Common failure: [description]. Fix: [solution]
- Watch out for [edge case]
## Verification
Run `check-command` to confirm the result is correct.
  1. 添加参考文件(可选)

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")`
  1. 测试它

启动一个新 session,然后尝试你的 skill:

Terminal window
hermes chat -q "/my-skill help me with the thing"

该 skill 会自动出现 —— 不需要注册。把它放进 ~/.hermes/skills/,它就生效了。

控制哪些 skills 可以在哪些平台上使用:

Terminal window
hermes skills

这会打开一个交互式 TUI,你可以按平台(CLI、Telegram、Discord 等)启用或禁用 skills。当你希望某些 skills 只在特定上下文中可用时,这很有用 —— 例如,不让开发类 skills 出现在 Telegram 中。

两者都会跨 session 持久保存,但用途不同:

SkillsMemory
是什么程序性知识 —— 如何做事情事实性知识 —— 事情是什么
什么时候使用按需加载,只有相关时才加载自动注入到每个 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。

-
0:000:00