使用技能系統
理解 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 聯動)