AI 程式設計教程中文版
官方教程中文版使用手冊

使用技能系統

理解 Hermes skills 的漸進載入、本地正本、外部目錄、Skills Hub、secure setup、agent-managed skills 和安裝審查。

Skill(技能)是 Hermes 的 procedural memory(過程性記憶):把反覆出現、步驟明確、容易出錯、需要材料和驗收的任務沉澱成可呼叫工作流。它不是萬能外掛,也不是"裝得越多越好"——裝太多 skill 會汙染 Hermes 的"該用哪個 skill" 決策面,反而讓簡單任務的響應變慢。

官方資料:Skills SystemCuratorBundled Skills CatalogOptional Skills CatalogCreating Skillsagentskills.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.md

SKILL.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_codeterminal 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 段)

官方資料

下一步

本頁目錄