使用技能系统
理解 Hermes skills 的渐进加载、本地正本、外部目录、Skills Hub、secure setup、agent-managed skills 和安装审查。
Skill(技能)是 Hermes 的 procedural memory(过程性记忆):把反复出现、步骤明确、容易出错、需要材料和验收的任务沉淀成可调用工作流。它不是万能插件,也不是"装得越多越好"——装太多 skill 会污染 Hermes 的"该用哪个 skill" 决策面,反而让简单任务的响应变慢。
官方资料:Skills System、Curator、Bundled Skills Catalog、Optional Skills Catalog、Creating Skills、agentskills.io。
先给结论:本地正本是 ~/.hermes/skills/;skill 会自动变成 slash command(斜杠命令);外部 skill 目录只读扫描;安装外部 skill 前必须先 hermes skills inspect,尤其是带脚本、密钥、terminal 或 browser 权限的 skill——一个不可信 skill 跑起来 = 把执行权交给陌生人。
Skill 解决什么问题
普通 prompt 适合一次性任务。Skill 适合这些情况:
- 每次发 PR 都要按同一套流程检查。
- 每次部署都要遵守固定环境和审批步骤。
- 每次写报告都要加载固定模板、引用和输出格式。
- 每次做研究都要按相同的资料源、排除规则和验收标准走。
- Agent 曾经踩过坑,下一次应该按验证过的路径执行。
Skill 的价值不是让模型“更聪明”,而是减少每次重新解释流程的成本,并降低步骤漂移。
本地正本
Hermes 的本地 skill 主目录是:
~/.hermes/skills/推荐结构:
~/.hermes/skills/
├── devops/
│ └── deploy-k8s/
│ ├── SKILL.md
│ ├── references/
│ ├── templates/
│ ├── scripts/
│ └── assets/
└── research/
└── literature-review/
└── SKILL.mdSKILL.md 是入口。长资料放 references/,输出模板放 templates/,可执行辅助脚本放 scripts/,图片或其他资源放 assets/。
怎么调用
安装后的 skill 会自动成为 slash command:
/plan design a rollout for migrating auth
/github-pr-workflow create a PR for this refactor
/research summarize these papers也可以先只查看 skill:
hermes chat --toolsets skills -q "What skills do you have?"
hermes chat --toolsets skills -q "Show me the plan skill"第一次使用某个 skill,不要直接让它执行高风险任务。先让它说明会做什么、需要哪些工具、会产出什么,再给一个小任务试跑。
渐进加载
Hermes skills 使用 progressive disclosure,避免一开始把所有 skill 全文塞进上下文。
Level 0
skills_list 只暴露 name、description、category 等轻量索引。
Level 1
skill_view(name) 加载某个 skill 的完整 SKILL.md 和 metadata。
Level 2
skill_view(name, path) 只加载 references、templates、scripts 等具体文件。
写 skill 时要配合这个机制:SKILL.md 写触发条件、步骤、风险和验收;大段资料和示例不要堆在入口文件里。
SKILL.md 最小骨架
---
name: my-skill
description: Brief description of what this skill does
version: 1.0.0
platforms: [macos, linux]
metadata:
hermes:
category: devops
tags: [python, automation]
requires_toolsets: [terminal]
---
# Skill Title
## When to Use
Trigger conditions.
## Procedure
1. Step one.
2. Step two.
## Pitfalls
- Known failure modes.
## Verification
How to confirm it worked.description 很重要:Hermes 先看描述决定是否需要加载 skill。描述泛泛写“提升效率”没有价值;要写清触发场景和产出。
条件激活
Hermes 支持按平台和工具可用性显示 / 隐藏 skill。
platforms: [macos]:只在 macOS 显示。requires_toolsets: [terminal]:有 terminal toolset 才显示。fallback_for_toolsets: [web]:web toolset 不可用时才显示,用作 fallback。
这能避免把不适用的 skill 塞进当前上下文,也能在没有高级工具时提供本地替代方案。
Secure setup
Skill 可以声明需要的环境变量:
required_environment_variables:
- name: TENOR_API_KEY
prompt: Tenor API key
help: Get a key from https://developers.google.com/tenor
required_for: full functionality本地 CLI 里,Hermes 会在 skill 实际加载时安全询问缺失值。消息平台不会在聊天里索要 secret,而是提示你回到本地 hermes setup 或 ~/.hermes/.env 配置。
一旦设置,skill 声明的 env vars 会自动传给 execute_code 和 terminal sandbox。这里要非常谨慎:skill 需要的 key 进入执行环境,就等于该 skill 的脚本能读取这些变量。
外部 skill 目录
如果你有共享 skill 库,可以在 config.yaml 里加 external dirs:
skills:
external_dirs:
- ~/.agents/skills
- /home/shared/team-skills
- ${SKILLS_REPO}/skills边界:
- 外部目录只读扫描。
- Agent 创建或编辑 skill 时仍写入
~/.hermes/skills/。 - 同名 skill 本地版本优先。
- 不存在的外部路径会跳过,不会报错。
这适合团队共享 skill,但不要把外部目录当成无审查的自动安装源。
Agent-managed skills 与 Curator
Hermes 可以用 skill_manage tool 让 agent 自己创建、修改或删除 skill。官方把它定位为 procedural memory(过程性记忆):当 agent 完成复杂任务、踩坑后找到正确路径、被用户纠正或发现非平凡流程时,可以把经验写成 skill。
常见动作:
create:新建 skill。patch:局部修改(优先使用,保留上下文连续性)。edit:大改整个SKILL.md(慎用)。delete:删除 skill。write_file/remove_file:管理 references、templates、scripts、assets 等支持文件。
配套机制是 Curator(策展器)——后台跑的轻量服务,负责管理 agent 自建 skill 的生命周期:
- Usage tracking:哪些 skill 真被用过,哪些只是写完就闲置。
- Staleness:长期未更新的 skill 是否引用了不存在的工具或命令。
- Archival:低使用率或过期的 skill 自动归档,不再加载到上下文。
- LLM-driven review:周期性用模型审查 skill 质量、合并候选、冗余检测。
不要让 agent 无审查地把每次成功都写成 skill——好的 skill 应该稳定、可复用、可验证;一次性任务更适合记入 session 或 memory。Curator 会帮你清理低价值 skill,但前提是写入门槛要高。
Skills Hub 和安装审查
常用命令:
hermes skills browse
hermes skills search kubernetes
hermes skills inspect openai/skills/k8s
hermes skills install openai/skills/k8s
hermes skills audit
hermes skills update
hermes skills uninstall k8s安装前至少检查:
SKILL.md是否写清 when to use、procedure、pitfalls、verification。- 是否包含
scripts/。 - 是否要求 API key、token、账号或外部平台。
- 是否会读写文件、运行命令、访问浏览器或联网。
- 是否会把 secret 写入输出、日志、模板或示例。
不理解的 skill 不用于高权限任务。先 inspect,再小任务试跑,再纳入日常。
验收清单
一个可用 skill 至少应该能回答下面 6 个问题。任何一个答不清,都不要安装或启用:
- 什么时候该用它?(触发条件 / when to use)
- 它会做哪些步骤?(procedure 段是否清晰)
- 它需要哪些 toolsets、tools、密钥或平台?(required toolsets / env vars)
- 它会读取或写入哪些路径?(影响范围)
- 失败时常见原因是什么?(pitfalls 段)
- 完成后怎么验证?(verification 段)
官方资料
- Skills System
- Curator(agent 自建 skill 后台维护)
- Bundled Skills Catalog(内置 ~90 skill 完整列表)
- Optional Skills Catalog(可选安装 ~60 skill)
- Creating Skills(开发者写 skill 的格式与规范)
- agentskills.io(社区 skill 索引与规范)
- Tools & Toolsets(skill 如何与 toolset 联动)