技能系統:agent 怎麼從經驗長出自己的能力
先講一件事,方便你讀下去:這篇裡的 agent,指的就是 Hermes 這個會幫你做事的 AI 助理。
「越用越聰明」聽起來像行銷詞。但在 Hermes 身上,它指的是一件很具體的事:agent 會把自己摸索出來的做法存成技能(skill),下次遇到類似任務直接拿來用。
換句話說,技能就是一份「操作手冊」。第一次做某件事,它邊做邊記下步驟;下次同樣的事,就照著手冊做,不用從頭再摸一遍。
技能是 Hermes 的「程序性記憶」。這個詞聽起來很專業,其實很好懂:它記的不是「一條一條的事實」,而是一整套「這件事要怎麼做」的流程。而且這份流程只有在相關時才會被讀進來,平常不佔空間1。
(順帶一提:這裡說的「不佔空間」,指的是不佔它一次能讀進腦袋的容量。這個容量業界叫 token,你可以先想成「它一次能同時看多少字」,字看得越多,反應越慢、成本越高。所以能不佔就不佔。)
agent 什麼時候會長出一個技能
Hermes 用一個叫 skill_manage 的工具來建立技能。(工具在這裡就是 agent 能主動去按的一個「按鈕」,按下去就會做某件事。)通常會在這幾種時刻建立技能2:
- 成功完成一個複雜任務(用了 5 個以上的工具呼叫,也就是連續做了好幾步)
- 遇到錯誤或死路,然後把它解開了
- 發現一套不是一眼就看得出來的做事方法
- 被你糾正了做法
換句話說,它從「成功」和「踩坑」兩邊學。你糾正它一次,那個教訓可能就變成一個技能,下次不再犯。這對你的實際意義是:你花時間教它一次,通常不用教第二次。
管理技能的動作有 create(新建)、patch(小修正,官方偏好用這個)、edit(較大改動)、delete(刪除)等3。
跟記憶一樣,你可以把關卡打開:設 skills.write_approval: true,讓它每次要寫入技能前,先把草稿暫存到 ~/.hermes/pending/skills/ 這個資料夾,等你點頭再生效4。(~ 是你自己的家目錄,也就是你電腦上屬於你的那塊個人空間;~/.hermes/ 就是 Hermes 放它自己東西的地方。)
一個技能長什麼樣
技能就是一個檔名叫 SKILL.md 的檔案。它的開頭有一段固定格式的設定,叫 frontmatter,你可以想成檔案最上方那張「基本資料卡」,用來標註這個技能叫什麼、幹嘛用的。它長這樣5:
---
name: my-skill
description: 簡短描述(≤60 字元)
version: 1.0.0
platforms: [macos, linux] # 選填:限定作業系統
metadata:
hermes:
tags: [category, tags]
requires_toolsets: [terminal]
---
(上面那段格式叫 YAML,是一種「給人看也給機器看」的設定寫法,靠冒號和縮排來表達「什麼對應什麼」。你現在不用會寫,看得懂大概在講什麼就好。)
資料卡下面的正文,會按固定順序寫四段:When to Use(何時用)→ Procedure(步驟)→ Pitfalls(陷阱)→ Verification(驗證)6。
你會發現,這套結構跟一份好的操作說明書幾乎一模一樣:先講什麼時候該用、再講怎麼一步步做、提醒容易踩的雷、最後教你怎麼確認做對了。原因很簡單,技能本質上就是 agent 寫給自己看的操作手冊。
技能存在 ~/.hermes/skills/ 這個資料夾,並且依分類分成一個個子資料夾7。一個技能不一定只有一個檔案,它還可以帶 references/(參考資料)、templates/(範本)、scripts/(腳本)、examples/(範例)等資料夾8。
內建 vs 選配
- 內建技能(bundled):跟著 Hermes 一起裝好,會自動放進
~/.hermes/skills/。之後更新時,你沒動過的會自動跟著更新;你改過的則會被保護,不會被覆蓋掉9。(這點很貼心:你的客製化不會因為一次更新就白費。) - 選配技能(optional):需要你自己下指令去裝,例如
hermes skills install official/security/1password10。
如果你想從一張白紙開始、一個內建技能都不要,可以在安裝時加一個參數。(下面這行是官方的安裝腳本,網址是官方網域。「腳本」就是一串預先寫好、貼上去就會自動照做的指令。)
curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash -s -- --no-skills
或者裝好之後再用 hermes skills opt-out 退出11。
進步揭露:為什麼技能多也不吃 token
技能一多,Hermes 不會把它們全部塞進腦袋裡。它用一招叫「進步揭露」(progressive disclosure),分三層來載入12:
| 層級 | 動作 | 成本 |
|---|---|---|
| Level 0 | 列出所有技能的名稱與描述 | 約 3k token |
| Level 1 | 載入某個技能的完整內容 | 視情況 |
| Level 2 | 載入技能裡的特定參考檔 | 視情況 |
打個比方:這就像你桌上放一本很薄的「目錄」,上面只寫每個技能叫什麼、大概做什麼(這是 Level 0,只花大約 3k token)。真的要用某個技能,才去把那一整本手冊翻出來讀(Level 1);如果手冊裡還指向某份附錄,需要時再去翻那份附錄(Level 2)。
這對你的實際意義是:你就算裝了一百個技能,平常也不會拖慢它,因為它平常只帶著那本薄目錄走。
Skills Hub:不只用自己長的
除了 agent 自己建的技能,你也能從社群裝別人做好的現成技能。Hermes 的 Skills Hub 就是一個把多個來源聚在一起的地方13:
hermes skills browse # 瀏覽全部
hermes skills search kubernetes # 搜尋
hermes skills inspect openai/skills/k8s # 安裝前預覽
hermes skills install official/security/1password
(上面這些是在終端機裡打的指令。終端機就是那個只有文字、你打字它照做的黑底視窗,這種「靠打字下指令」的操作方式業界叫 CLI。)
來源包含官方(official,內建就信任)、Vercel 公司的公開目錄(skills-sh)、GitHub 上的程式碼倉庫(repo)、社群市集等14。
⚠️ 所有從 Hub 裝的技能,都會先過一次安全掃描15。這點很重要,原因是:技能是一段會被 agent 實際「執行」的程序。裝一個來路不明的技能,等於讓一段陌生的程式碼在你的電腦裡跑。所以養成習慣,先用 inspect 看過內容再裝,是保護自己的好方法。
技能還遵循一個叫 agentskills.io 的開放標準16。(開放標準的意思是「大家講好的共通格式」。)好處是:同一個技能可以在不同、但都相容這個標準的 agent 系統之間搬來搬去、彼此分享。
教它一個新技能
除了讓它自己學,你也可以主動叫它學:
/learn the REST client in ~/projects/acme-sdk
/learn https://docs.example.com/api/quickstart
/learn how I just deployed the staging server
/learn 這個指令,會讓它從一段程式碼、一份文件、或你剛剛做過的一件事裡,整理出一個之後能重複使用的技能17。
這跟記憶有什麼不同
這兩個很容易搞混,一句話就能分清楚:
- 記憶記的是「事實」:你是誰、你的專案長什麼樣(內容小、平常就常駐在腦袋裡)
- 技能記的是「怎麼做」:一整套操作流程(內容可能很大、要用到時才載入)
兩者合起來,就是官方說的「閉環學習」:經驗變成技能與記憶存起來,下次用得上,用的過程中再一路修正。就像一個人邊做邊累積筆記,越做越熟練。
常見問題
agent 自己建的技能會亂建一堆嗎?
不會。它有觸發條件(通常是完成一個複雜任務、或解開一個錯誤之後才建),不是你每講一句話它就建一個。真的不放心,可以把前面提到的 write_approval 打開,讓每一次寫入都先給你審核。
技能可以分享給團隊嗎?
可以。用 hermes skills publish 把技能發佈出去,或設定 external_dirs(額外目錄)指向一個大家共用的資料夾18。
內建技能佔太多,想清掉?
用 hermes skills opt-out --remove,它會刪掉那些你沒改過的內建技能19。(你自己改過的不會被動到。)
下一步
Footnotes
-
Nous Research, Skills:https://hermes-agent.nousresearch.com/docs/user-guide/features/skills (2026-07-24 存取)。技能是程序性記憶,依進步揭露只在相關時載入 ↩
-
同上,skill_manage 建立技能的時機:完成複雜任務(5+ 工具呼叫)、解開錯誤、發現非顯而易見工作流、被使用者糾正 ↩
-
同上,管理動作:create、patch(偏好)、edit、delete ↩
-
同上,skills.write_approval:true 時所有寫入暫存於 ~/.hermes/pending/skills/ 待審 ↩
-
同上,SKILL.md frontmatter:name、description(≤60 字元)、version、platforms、metadata ↩
-
同上,內容固定順序:When to Use → Procedure → Pitfalls → Verification ↩
-
同上,技能存於 ~/.hermes/skills/ 依分類分子目錄 ↩
-
同上,一個技能可帶 references / templates / scripts / examples / assets 等資料夾 ↩
-
同上,內建技能隨安裝自動種入;更新時使用者改過的受保護不覆蓋 ↩
-
同上,選配技能以 hermes skills install official/
/ 安裝 ↩ -
同上,--no-skills 從零開始;hermes skills opt-out 事後退出 ↩
-
同上,進步揭露三層:Level 0 列清單(約 3k token)→ Level 1 完整內容 → Level 2 特定參考檔 ↩
-
同上,Skills Hub 指令 browse / search / inspect / install ↩
-
同上,Hub 來源:official、skills-sh(Vercel)、github、社群市集等 ↩
-
同上,所有 Hub 安裝都會過安全掃描 ↩
-
同上,技能遵循 agentskills.io 開放標準,可跨相容 agent 系統攜帶 ↩
-
同上,/learn 從程式碼、文件或剛完成的事提煉出可重用技能 ↩
-
同上,hermes skills publish 發佈技能;external_dirs 指向共用技能目錄 ↩
-
同上,hermes skills opt-out --remove 刪除使用者未改過的內建技能 ↩