---
title: "使用技能系统"
description: "理解 Hermes skills 的渐进加载、本地正本、外部目录、Skills Hub、secure setup、agent-managed skills 和安装审查。"
verifiedAt: "2026-05-09"
---

Skill（技能）是 Hermes 的 **procedural memory（过程性记忆）**：把反复出现、步骤明确、容易出错、需要材料和验收的任务沉淀成**可调用工作流**。它不是万能插件，也**不是**"装得越多越好"——装太多 skill 会污染 Hermes 的"该用哪个 skill" 决策面，反而让简单任务的响应变慢。

官方资料：[Skills System](https://hermes-agent.nousresearch.com/docs/user-guide/features/skills)、[Curator](https://hermes-agent.nousresearch.com/docs/user-guide/features/curator)、[Bundled Skills Catalog](https://hermes-agent.nousresearch.com/docs/reference/skills-catalog)、[Optional Skills Catalog](https://hermes-agent.nousresearch.com/docs/reference/optional-skills-catalog)、[Creating Skills](https://hermes-agent.nousresearch.com/docs/developer-guide/creating-skills)、[agentskills.io](https://agentskills.io)。

> [!NOTE]
> **先给结论**：本地正本是 `~/.hermes/skills/`；skill 会自动变成 slash command（斜杠命令）；外部 skill 目录**只读扫描**；安装外部 skill 前**必须**先 `hermes skills inspect`，尤其是带脚本、密钥、terminal 或 browser 权限的 skill——一个不可信 skill 跑起来 = 把执行权交给陌生人。

## Skill 解决什么问题

普通 prompt 适合一次性任务。Skill 适合这些情况：

- 每次发 PR 都要按同一套流程检查。
- 每次部署都要遵守固定环境和审批步骤。
- 每次写报告都要加载固定模板、引用和输出格式。
- 每次做研究都要按相同的资料源、排除规则和验收标准走。
- Agent 曾经踩过坑，下一次应该按验证过的路径执行。

Skill 的价值不是让模型“更聪明”，而是减少每次重新解释流程的成本，并降低步骤漂移。

## 本地正本

Hermes 的本地 skill 主目录是：

```text
~/.hermes/skills/
```

推荐结构：

```text
~/.hermes/skills/
├── devops/
│   └── deploy-k8s/
│       ├── SKILL.md
│       ├── references/
│       ├── templates/
│       ├── scripts/
│       └── assets/
└── research/
    └── literature-review/
        └── SKILL.md
```

`SKILL.md` 是入口。长资料放 `references/`，输出模板放 `templates/`，可执行辅助脚本放 `scripts/`，图片或其他资源放 `assets/`。

## 怎么调用

安装后的 skill 会自动成为 slash command：

```text
/plan design a rollout for migrating auth
/github-pr-workflow create a PR for this refactor
/research summarize these papers
```

也可以先只查看 skill：

```bash
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 全文塞进上下文。

<Cards>
  <Card title="Level 0" description="skills_list 只暴露 name、description、category 等轻量索引。" />
  <Card title="Level 1" description="skill_view(name) 加载某个 skill 的完整 SKILL.md 和 metadata。" />
  <Card title="Level 2" description="skill_view(name, path) 只加载 references、templates、scripts 等具体文件。" />
</Cards>

写 skill 时要配合这个机制：`SKILL.md` 写触发条件、步骤、风险和验收；大段资料和示例不要堆在入口文件里。

## SKILL.md 最小骨架

```markdown
---
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 可以声明需要的环境变量：

```yaml
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：

```yaml
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 和安装审查

常用命令：

```bash
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](https://hermes-agent.nousresearch.com/docs/user-guide/features/skills)
- [Curator](https://hermes-agent.nousresearch.com/docs/user-guide/features/curator)（agent 自建 skill 后台维护）
- [Bundled Skills Catalog](https://hermes-agent.nousresearch.com/docs/reference/skills-catalog)（内置 ~90 skill 完整列表）
- [Optional Skills Catalog](https://hermes-agent.nousresearch.com/docs/reference/optional-skills-catalog)（可选安装 ~60 skill）
- [Creating Skills](https://hermes-agent.nousresearch.com/docs/developer-guide/creating-skills)（开发者写 skill 的格式与规范）
- [agentskills.io](https://agentskills.io)（社区 skill 索引与规范）
- [Tools & Toolsets](https://hermes-agent.nousresearch.com/docs/user-guide/features/tools)（skill 如何与 toolset 联动）

## 下一步

<Cards>
  <Card title="消息网关" description="Skill 能沉淀流程；Gateway 让这些流程能从聊天平台触发——slash command 形式调用。" href="/docs/hermes/official/01-user-guide/messaging" />
  <Card title="Skills 原理篇" description="继续理解 skill、prompt、tool、memory 四件事的边界，以及 Curator 在自我改进闭环里的位置。" href="/docs/hermes/understanding/06-skills-system" />
</Cards>
