---
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="/zh-Hant/docs/hermes/official/01-user-guide/messaging" />
  <Card title="Skills 原理篇" description="繼續理解 skill、prompt、tool、memory 四件事的邊界，以及 Curator 在自我改進閉環裡的位置。" href="/zh-Hant/docs/hermes/understanding/06-skills-system" />
</Cards>
