06 · Skills 系統
理解 Hermes skill、prompt、tool、memory 的邊界,以及本地正本、漸進載入、secure setup、Hub 安裝和 agent-managed skills。
Hermes 的 skill(技能)是可複用能力包——一個 markdown 文件加上可選的指令碼、模板、參考資料、資原始檔。核心不是儲存提示詞,而是把"反覆執行、步驟穩定、需要材料和驗證"的工作流變成 agent 可以按需呼叫的能力包。
官方資料:Skills System、Curator、Skills Catalog、Optional Skills Catalog、Creating Skills、agentskills.io。
先給結論:prompt 解決一次性指令,**tool(工具)**解決外部動作,**memory(記憶)**解決長期事實,**skill(技能)**解決可複用流程。不要把一句 prompt 包成 skill,也不要把流程塞進 memory——四件事各管不同尺度。
Skill 解決什麼
一次性任務不需要 skill。反覆出現、步驟穩定、需要材料和驗證的任務,才值得沉澱成 skill。
適合做 skill:
- 跨專案重複出現。
- 有明確觸發條件。
- 有穩定步驟。
- 有驗證方法。
- 需要模板、指令碼、參考資料或外部 API。
- 之前踩過坑,需要把正確路徑固定下來。
不適合做 skill:
- 一次性任務。
- 還沒跑透過的流程。
- 只有一句提示詞。
- 強依賴當前專案私有上下文。
- 來源不可信但要求高許可權。
和其它能力的區別
Prompt
一次性指令,適合當前任務。
Tool
外部動作能力,例如讀檔案、執行命令、搜尋網頁。
Memory
長期事實和偏好,讓新 session 不從零開始。
Skill
可複用流程,包含觸發條件、步驟、材料和驗收。
判斷口訣:
会变的项目规则 -> 项目文档
长期稳定事实 -> memory
外部动作能力 -> tool
重复工作流程 -> skill
本次具体目标 -> prompt本地正本
本地 skill 正本在:
~/.hermes/skills/SKILL.md 是入口,大材料應該放到 references/、templates/、scripts/ 或 assets/,不要全部塞進主文件。
同名 skill 同時存在時,本地版本優先。外部目錄可以掃描,Hub 可以安裝,但真正可寫、可維護、可治理的正本是 ~/.hermes/skills/。
漸進載入(progressive disclosure)
Hermes skills 使用 progressive disclosure(漸進載入)——只在需要時載入更詳細的層次:
flowchart TB
L1["第 1 層:skill 元資訊<br/>名稱 / 描述 / category"]
L2["第 2 層:SKILL.md<br/>觸發條件 / 步驟骨架 / 驗收"]
L3["第 3 層:references / templates / scripts / assets<br/>詳細參考資料和指令碼"]
L1 -->|"agent 判斷要用<br/>這個 skill"| L2
L2 -->|"需要具體材料<br/>或要執行指令碼"| L3
這樣做是為了節省上下文。一個 skill 可以包含很多材料,但平時只把元資訊保留在視野裡——不會把所有 reference、template、script 都塞進每次的 prompt。否則裝 50 個 skill = system prompt 立刻爆炸。
新手寫 skill 時,要讓 SKILL.md 足夠短:說明何時使用、怎麼開始、需要什麼工具、有哪些坑、怎麼驗收。長材料(詳細案例、完整模板、長指令碼)放子目錄裡 agent 按需呼叫——這是漸進載入的設計意圖。
Secure setup 與金鑰
Skill 可以宣告 required environment variables。Hermes 會在本地 CLI 裡安全詢問缺失值,訊息平臺不會在聊天中索要 secret。
這很好,但也意味著一旦配置成功,skill 的指令碼和 sandbox 可能拿到對應 env var。安裝外部 skill 前必須檢查:
- 它宣告瞭哪些變數。
- 這些變數會不會進入 terminal 或 execute_code。
- 指令碼是否會列印或外傳變數。
- 是否真的需要這個許可權。
金鑰需求說不清的 skill,不應該安裝。
Agent-managed skills 與 Curator
Hermes 允許 agent 自己建立、修改或刪除本地 skill——這是 self-improving(自我改進)的核心入口之一,也是最容易失控的入口之一。配套機制是 Curator(策展器):後臺跑的輕量服務,負責按使用率、新鮮度、LLM 複審來管理 agent 自建 skill:
- Usage tracking(使用率追蹤):哪些 skill 真的被用過,哪些只是寫出來後就再沒碰過。
- Staleness(新鮮度):skill 內容是否長期沒更新、引用的工具/命令是否還存在。
- Archival(歸檔):長期不用或過期的 skill 自動歸檔,不再載入到上下文。
- LLM-driven review(LLM 複審):週期性用模型審查 skill 質量、是否冗餘、是否需要合併。
實踐建議:
- 只讓跑過的成功流程沉澱——失敗流程不能進 skill 庫,否則下次還在錯的方向上反覆嘗試。
- 小修用 patch(區域性補丁),不要整份重寫——重寫丟失上下文連續性。
- Skill 裡不要硬編碼金鑰——Curator 不會替你脫敏,金鑰進了 skill 就長期在 prompt 裡裸奔。
- 刪除或重新命名前確認依賴——其他 skill 或自動化任務可能還在引用。
- 定期信任 Curator 的清理建議——但每次大批次歸檔前先人工抽查,避免誤歸。
自我改進不是讓 agent 隨便寫檔案,而是把驗證過的流程變成可維護、可審計的長期資產——Curator 是這個過程的守門員。
安裝外部 skill 的安全審查
外部 skill(來自 agentskills.io、Skills Hub 或 GitHub)安裝前至少做四步:
search(搜) -> inspect(审) -> small dry run(试) -> keep or uninstall(留或卸)hermes skills inspect 是關鍵命令——它會告訴你這個 skill 宣告瞭哪些必需 env vars、要求哪些 toolset、會讀寫哪些檔案。
檢查重點(任一不清楚 = 不安裝):
SKILL.md有沒有清楚的觸發條件和驗收?- 是否包含指令碼(bash / python / node)?指令碼做什麼?
- 是否要求金鑰或外部賬號?為什麼需要?
- 是否需要
terminal、browser、file、messaging等高許可權 toolset? - 是否會修改本地檔案或發出網路請求?
- 是否來自可信來源?是否能更新和審計?
不理解的 skill 不用於高許可權任務——一條普通命令在錯誤上下文裡跑出來的破壞,跟一個高許可權 skill 誤觸發的破壞不是一個量級。
官方資料
- Skills System
- Curator(agent 自建 skill 的後臺維護)
- Skills Catalog(內建 skill 完整列表)
- Optional Skills Catalog(可選 skill 列表)
- Creating Skills(開發者寫 skill 的格式與規範)
- agentskills.io(社群 skill 索引)