Hermes Agent 分析師養成記 · 第二篇:做過一次,就永遠會做
整理版優先睇
Hermes Agent技能系統解決AI無程序性記憶問題,自動沉澱工作流程
呢篇文章係Hermes Agent分析師養成記嘅第二篇,由專注AI Agent深度實踐嘅「努力撞蘑菇AI」撰寫。佢嘅核心係解釋Hermes Agent嘅技能系統(Skills System),呢個系統專門解決AI做完一輪複雜任務後,下次又要從頭教過嘅問題。作者指出,AI唔係唔夠聰明,而係佢冇程序性記憶——唔識得將做過嘅流程沉澱成可反覆調用嘅能力。整體結論係:技能系統透過Markdown格式嘅知識文檔、漸進式披露、自動創建同條件激活,令Agent能夠累積工作手冊,真正獨立工作。
文章舉咗具體例子,例如清洗CSV呢類工作,每次都要重複解釋字段映射,但技能系統可以將呢啲流程固化。技能唔係插件,而係一份叫SKILL.md嘅文檔,記錄點樣做、有咩步驟、風險位。Agent可以自動創建技能——每次完成複雜任務或者俾人糾正做法,都會自動寫教材,下次行得更順。
同上一篇嘅記憶系統對比,技能系統係程序性記憶,記「點樣做」;記憶系統係陳述性記憶,記「係乜嘢」。呢個清晰分工避免誤用,確保系統可以長期可靠運作。作者仲提醒,呢個係Hermes構建完整Agent認知架構嘅關鍵一步。
- 技能系統透過Markdown文檔(SKILL.md)沉澱工作流程,而非提供可執行嘅插件,令Agent掌握「點樣做」而非只係工具。
- 漸進式披露分三級加載:Level 0 索引常駐(約3,000 tokens)、Level 1 按需載入完整技能、Level 2 深入參考文件,有效控制token成本。
- Agent可以自動創建同修改技能:完成超過5次工具調用嘅複雜任務、被糾正做法、發現新工作流時,會用skill_manage工具嘅patch操作局部更新,省token。
- 技能可以條件激活:透過fallback_for_toolsets同requires_toolsets字段,根據當前工具環境自動顯隱,實現優雅降級。
- 安全掃描對第三方技能檢測prompt注入、數據外泄等風險,分為builtin、trusted、community三級,危險級別無法強制安裝。
Hermes Agent 官方文檔
包含技能系統、記憶系統等完整設計,文中引用多處原始資料
技能係知識文檔,唔係插件
好多人都將Skill誤解成插件或工具,但Hermes嘅Skill完全唔同。佢係一份Markdown格式嘅知識文檔,放喺 ~/.hermes/skills/ 目錄下,核心文件叫 SKILL.md。
Skill 係教 Agent 點樣做,而唔係俾一個工具
同樣嘅底層工具(例如 git 同 gh CLI),裝載唔同嘅 Skill,Agent 嘅行為模式就會完全唔同。呢個區別好重要:工具係能力邊界嘅擴展,Skill 係工作方式嘅沉澱。
---
name: github-pr-workflow
description: GitHub PR 生命週期:建分支、提交、開 PR、CI、合併
version: 1.0.0
metadata:
hermes:
tags: [git, github, workflow]
category: devops
---
# GitHub PR Workflow
## When to Use
當需要創建 PR、管理代碼審查流程時加載此技能。
## Procedure
1. 從 main 拉取最新代碼,創建 feature 分支
2. 完成修改後,運行測試確認通過
3. 使用 gh pr create 開 PR,填寫模板
4. 等待 CI 通過,處理 review 意見
5. squash merge 到 main,刪除 feature 分支
## Pitfalls
- 忘記先 git pull 就直接開分支,後續容易有衝突
- PR 描述裏不寫測試方法,review 會被打回
## Verification
gh pr status 確認 CI 全綠,reviewer 已 approve
漸進式披露:三級加載控制 token 成本
Hermes 內置咗七八十個 Skill,加上用戶自創同從 Hub 安裝嘅,輕鬆破百。如果每次啟動都將全部 SKILL.md 塞入系統提示,token 成本會爆煲。
漸進式披露(Progressive Disclosure)
呢個解法分三級:Level 0 用 skills_list() 回傳所有技能嘅名稱、一行描述同分類,大約 3,000 tokens,每次都注入;Level 1 用 skill_view(name) 加載完整 SKILL.md,只有當 Agent 判斷需要先觸發;Level 2 用 skill_view(name, path) 深入讀取參考文件。
- Level 0:技能列表索引,類似圖書館書目,每次對話固定開銷約3,000 tokens
- Level 1:按需加載單個技能嘅完整內容,唔需要就唔加載
- Level 2:深入細節時先讀取技能目錄下嘅支撐文件
對 token 嘅剋制,係系統能長期可用嘅基礎
Agent 自動生成技能:每次糾正都係寫教材
呢個係 Hermes 最有意思嘅能力——Agent 可以自己創建 Skill。根據官方文檔,當 Agent 完成一個複雜任務(調用工具次數 ≥ 5 次)並且成功、或者過程中撞咗錯誤最終揾到正確路徑、或者用戶糾正咗佢嘅做法、或者發現非顯而易見嘅工作流,都會觸發技能創建。
你每次糾正 Agent 嘅做法,都喺度俾佢寫教材
工具 skill_manage 支援四項操作:create 從頭創建新 Skill、patch 局部修改(首選,因為只需傳入 old_string 同 new_string,token 消耗遠低於 edit)、edit 大規模重寫、delete 刪除。呢種對調用成本嘅精細考量,喺成個 Hermes 設計度處處可見。
條件激活與安全掃描:自動顯隱同供應鏈防線
技能可以根據當前工具環境自動決定係咪顯示喺索引度。配置字段叫 fallback_for_toolsets 同 requires_toolsets。例如內置嘅 duckduckgo-search 技能有 fallback_for_toolsets: [web],當你有 Firecrawl API Key 時,web 工具集可用,DuckDuckGo 就會靜默隱藏;一旦 API Key 失效或者離線,呢個技能就會自動浮出水面做備選。
能力邊界變化時,Skill 體系會自動重新配置自己
至於安全方面,Hermes Skills Hub 聚合咗多個來源嘅技能包,可能引入 prompt 注入等風險。Hermes 對所有來自 Hub 嘅技能進行安全掃描,檢測數據外泄、Prompt 注入模式、危險系統命令、供應鏈污染信號。掃描結果分三個信任級別:builtin 無條件信任、trusted(官方倉庫)用寬鬆策略、community(其他來源)嚴格掃描。
危險級別嘅技能無法強制安裝
--force 參數可以繞過「警告」級別,但無法繞過「危險」級別,呢條硬線劃得好清楚。
程序性記憶 vs 陳述性記憶:認知架構嘅完整性
將技能系統同上篇講嘅記憶系統放埋一齊睇,可以清楚理解 Hermes 點樣構建完整嘅 Agent 認知架構。
「持久事實屬於記憶,可複用流程屬於技能」
陳述性記憶(MEMORY.md / USER.md)記「係乜嘢」——環境事實、用戶偏好、項目約定;程序性記憶(Skills System)記「點樣做」——工作流步驟、操作規範、踩坑記錄。邊界清晰劃分,避免將操作手冊寫入記憶,導致記憶空間被佔滿。
有啲工作,你教過 AI 一次,然後下次又要由頭教過。
「將呢份 CSV 清洗成我哋嘅標準格式」——你花十分鐘同佢解釋字段映射、缺失值處理邏輯、輸出規範。佢做曬,做得好好。下次你發一份新嘅 CSV,佢又矇咗。
呢個問題唔係 AI 唔夠聰明,係佢冇程序性記憶。佢可以記住事實(上一篇講嘅 MEMORY.md),但係唔知點樣將「做過嘅複雜流程」沉澱成可以反覆調用嘅能力。
Hermes Agent 嘅技能系統(Skills System)就係專門解決呢個問題嘅。

Skill 係咩:唔係插件,係知識文件
好多人第一反應係將 Skill 理解成「插件」或「工具」——類似 ChatGPT 插件、LangChain Tool 嗰種概念,即係一段可以執行嘅代碼。
Hermes 嘅 Skill 唔係咁樣。
Skill 係一份 Markdown 格式嘅知識文件,存在 ~/.hermes/skills/ 目錄下面,核心係一個叫 SKILL.md 嘅文件。佢嘅結構大致係咁樣:
---
name: github-pr-workflow
description: GitHub PR 生命週期:建分支、提交、開 PR、CI、合併
version: 1.0.0
metadata:
hermes:
tags: [git, github, workflow]
category: devops
---
# GitHub PR Workflow
## When to Use
當需要創建 PR、管理代碼審查流程時加載此技能。
## Procedure
1. 從 main 拉取最新代碼,創建 feature 分支
2. 完成修改後,運行測試確認通過
3. 使用 gh pr create 開 PR,填寫模板
4. 等待 CI 通過,處理 review 意見
5. squash merge 到 main,刪除 feature 分支
## Pitfalls
- 忘記先 git pull 就直接開分支,後續容易有衝突
- PR 描述裏不寫測試方法,review 會被打回
## Verification
gh pr status 確認 CI 全綠,reviewer 已 approve
佢本質上係喺教 Agent 怎麼做,而唔係俾 Agent 一個工具。
呢個區別好重要:工具係能力邊界嘅擴展,Skill 係工作方式嘅沉澱。同樣嘅底層工具(git、gh CLI),裝載唔同嘅 Skill,Agent 嘅行為模式就會完全唔同。
漸進式披露:點解唔一次過全部加載
Hermes 裝咗好多 Skill——官方內置就有七八十個,加上用戶自己創建嘅、從 Hub 安裝嘅,輕鬆超過一百個。
如果每次啟動都將所有 Skill 全文塞入系統提示,token 成本會爆炸。Hermes 嘅解法叫漸進式披露(Progressive Disclosure),分三級加載:
Level 0:skills_list()
→ 返回所有 Skill 的名稱 + 一行描述 + 分類
→ 約 3,000 tokens,每次都注入
Level 1:skill_view(name)
→ 加載某個 Skill 的完整 SKILL.md
→ 只在 Agent 判斷需要時才觸發
Level 2:skill_view(name, path)
→ 加載 Skill 目錄下的某個參考文件
→ 深入細節時才用
比喻一下:Level 0 係圖書館嘅書目索引,話俾你知有邊啲書;Level 1 係將某本書攞到手上面讀;Level 2 係揭到書後面嘅附錄查參考資料。
Agent 喺執行任務嘅時候,先掃一眼索引判斷邊個 Skill 相關,然後按需要加載全文。咁樣大多數對話入面只係多出 3,000 tokens 嘅固定開銷,而唔係將所有 Skill 都塞滿上下文。
呢個設計同上一篇講嘅記憶系統思路一脈相承:對 token 嘅剋制,係系統可以長期可用嘅基礎。
最關鍵嘅設計決策:Agent 自動生成 Skill
上面講嘅都係「用 Skill」,而 Hermes 最有趣嘅能力係——佢自己創建 Skill。
根據 Hermes Agent 官方文件(hermes-agent.nousresearch.com,2026年),Agent 喺以下情況會自動觸發技能創建:
完成一個複雜任務(調用工具次數 ≥ 5 次)而且成功 過程中行咗冤枉路、撞咗錯誤,最終揾到正確路徑 用戶糾正咗佢嘅做法 發現咗一個唔係咁明顯嘅工作流程
工具名叫 skill_manage,支援嘅操作包括:
create | |
patch | |
edit | |
delete | |
write_file |
patch 操作係文件入面特別標註「首選」嘅——原因係佢只需要傳入 old_string 和 new_string,而唔係整個文件內容,token 消耗遠低過 edit。呢種對調用成本嘅精細化考量,喺整個 Hermes 設計入面周圍都見到。
呢個自動生成機制意味住啲咩?
意味住你每次糾正 Agent 嘅做法,都係喺俾佢「寫教材」。每次佢探索出一條新路徑,都會將呢條路記低,下次行得更順。Agent 喺工作嘅同時,亦喺累積自己嘅工作手冊。
條件激活:Skill 會根據環境自動顯示隱藏
呢度有一個容易俾人忽略嘅細節:Skill 可以根據當前工具環境自動決定係咪出現在索引入面。
配置字段叫 fallback_for_toolsets 和 requires_toolsets:
metadata:
hermes:
fallback_for_toolsets: [web] # 只在 web 工具不可用時顯示
requires_toolsets: [terminal] # 只在 terminal 工具可用時顯示
舉個具體嘅例子:內置 Skill duckduckgo-search 用 fallback_for_toolsets: [web]。
當你配置咗 Firecrawl API Key,web 工具集可用,Hermes 就用 web_search 工具直接搜索——DuckDuckGo 呢個 Skill 靜默隱藏,唔佔索引空間。一旦 API Key 失效或者你喺一個冇網嘅環境,web 工具集消失,DuckDuckGo Skill 自動浮出水面作為備選。
呢個係一個好優雅嘅降級機制:能力邊界變化嘅時候,Skill 體系會自動重新配置自己,唔需要用戶手動幹預。
Skill 嘅安全掃描:供應鏈攻擊嘅防線
Hermes Skills Hub 聚合咗嚟自多個來源嘅技能包:官方內置、skills.sh(Vercel 維護嘅公共目錄)、各類社區倉庫、直接 URL 安裝。
呢個帶嚟咗一個真實嘅安全風險:惡意嘅 Skill 文件可以喺系統提示入面植入 prompt 注入指令,或者引導 Agent 執行危險操作。
Hermes 嘅應對方案係對所有嚟自 Hub 嘅 Skill 進行安全掃描,檢測項包括:
數據外洩指令 Prompt 注入模式 危險系統命令 供應鏈污染信號
掃描結果分三個信任級別:
builtin | ||
trusted | ||
community |
--force 參數可以繞過「警告」級別嘅攔截,但係冇辦法繞過「危險」級別。呢條硬線劃得好清楚。
程序性記憶 vs 陳述性記憶
讀到呢度,可以將技能系統同上一篇嘅記憶系統擺埋一齊對比理解:
陳述性記憶(Declarative Memory)
└── MEMORY.md / USER.md
→ 存「是什麼」:環境事實、用戶偏好、項目約定
→ 類比:你知道同事叫什麼名字、喜歡用什麼工具
程序性記憶(Procedural Memory)
└── Skills System
→ 存「怎麼做」:工作流步驟、操作規範、踩坑記錄
→ 類比:你記得怎麼騎自行車,不需要每次重新學
Hermes 文件入面有一句話講得好直接(來源:hermes-agent.ai,2026年5月):「持久事實屬於記憶,可複用流程屬於技能。如果 Agent 一路唔記得某個工作流,應該創建 Skill,而唔係將步驟塞入 MEMORY.md。」
呢條邊界嘅清晰劃分,避免咗一個常見嘅誤用:將操作手冊寫入記憶,導致記憶空間俾人佔滿,真正需要常駐嘅上下文反而放唔落。
小結
Hermes 技能系統嘅核心設計邏輯:
Skill 係知識文件,唔係插件:教 Agent 點樣做事,而唔係俾佢新工具 漸進式披露控制 token 成本:索引常駐,全文按需,三級加載 Agent 自動創建 Skill:每次成功嘅複雜任務都係喺寫教材,經驗自動沉澱 條件激活實現優雅降級:工具環境變化嘅時候,Skill 體系自動重組 供應鏈安全有硬線:危險級別嘅 Skill 冇辦法強制安裝
將記憶系統同技能系統擺埋一齊睇,Hermes 其實喺構建一個完整嘅 Agent 認知架構:知道「係咩」,亦知道「點樣做」,呢啲先係可以真正獨立工作嘅系統嘅基礎。
下一篇:代碼執行沙箱——execute_code 係點樣將多步驟分析工作流,壓縮成一次過完成嘅。
有一類工作,你教過 AI 一次,然後下次又要從頭教一遍。
「把這份 CSV 清洗成我們的標準格式」——你花十分鐘跟它解釋字段映射、缺失值處理邏輯、輸出規範。它做完了,做得很好。下次你發一份新的 CSV,它又懵了。
這個問題不是 AI 不夠聰明,是它沒有程序性記憶。它能記住事實(上一篇講的 MEMORY.md),但不知道怎麼把「做過的複雜流程」沉澱成可以反覆調用的能力。
Hermes Agent 的技能系統(Skills System)就是專門解這道題的。

Skill 是什麼:不是插件,是知識文檔
很多人第一反應是把 Skill 理解成「插件」或「工具」——類似 ChatGPT 插件、LangChain Tool 那種概念,即一段可執行的代碼。
Hermes 的 Skill 不是這個。
Skill 是一份 Markdown 格式的知識文檔,存在 ~/.hermes/skills/ 目錄下,核心是一個叫 SKILL.md 的文件。它的結構大致長這樣:
---
name: github-pr-workflow
description: GitHub PR 生命週期:建分支、提交、開 PR、CI、合併
version: 1.0.0
metadata:
hermes:
tags: [git, github, workflow]
category: devops
---
# GitHub PR Workflow
## When to Use
當需要創建 PR、管理代碼審查流程時加載此技能。
## Procedure
1. 從 main 拉取最新代碼,創建 feature 分支
2. 完成修改後,運行測試確認通過
3. 使用 gh pr create 開 PR,填寫模板
4. 等待 CI 通過,處理 review 意見
5. squash merge 到 main,刪除 feature 分支
## Pitfalls
- 忘記先 git pull 就直接開分支,後續容易有衝突
- PR 描述裏不寫測試方法,review 會被打回
## Verification
gh pr status 確認 CI 全綠,reviewer 已 approve
它本質上是在教 Agent 怎麼做,而不是給 Agent 一個工具。
這個區別很重要:工具是能力邊界的擴展,Skill 是工作方式的沉澱。同樣的底層工具(git、gh CLI),裝載不同的 Skill,Agent 的行為模式就完全不同。
漸進式披露:為什麼不一次全加載
Hermes 裝了很多 Skill——官方內置就有七八十個,加上用戶自己創建的、從 Hub 安裝的,輕鬆破百。
如果每次啓動都把所有 Skill 全文塞進系統提示,token 成本會爆炸。Hermes 的解法叫漸進式披露(Progressive Disclosure),分三級加載:
Level 0:skills_list()
→ 返回所有 Skill 的名稱 + 一行描述 + 分類
→ 約 3,000 tokens,每次都注入
Level 1:skill_view(name)
→ 加載某個 Skill 的完整 SKILL.md
→ 只在 Agent 判斷需要時才觸發
Level 2:skill_view(name, path)
→ 加載 Skill 目錄下的某個參考文件
→ 深入細節時才用
類比一下:Level 0 是圖書館的書目索引,告訴你有哪些書;Level 1 是把某本書拿到手裏讀;Level 2 是翻到書後面的附錄查參考資料。
Agent 在執行任務時,先掃一眼索引判斷哪個 Skill 相關,然後按需加載全文。這樣大多數對話裏只多出 3,000 tokens 的固定開銷,而不是把所有 Skill 都塞滿上下文。
這個設計和上一篇講的記憶系統思路一脈相承:對 token 的剋制,是系統能長期可用的基礎。
最關鍵的設計決策:Agent 自動生成 Skill
上面說的都是「用 Skill」,而 Hermes 最有意思的能力是——它自己創建 Skill。
根據 Hermes Agent 官方文檔(hermes-agent.nousresearch.com,2026年),Agent 在以下情況會自動觸發技能創建:
完成一個複雜任務(調用工具次數 ≥ 5 次)且成功 過程中走了彎路、撞了錯誤,最終找到了正確路徑 用戶糾正了它的做法 發現了一個非顯而易見的工作流
工具名叫 skill_manage,支持的操作包括:
create | |
patch | |
edit | |
delete | |
write_file |
patch 操作是文檔裏特別標註「首選」的——原因是它只需要傳入 old_string 和 new_string,而不是整個文件內容,token 消耗遠低於 edit。這種對調用成本的精細化考量,在整個 Hermes 設計裏隨處可見。
這個自動生成機制意味着什麼?
意味着你每次糾正 Agent 的做法,都在給它「寫教材」。每次它探索出一條新路徑,都會把這條路記下來,下次走得更順。Agent 在工作的同時,也在積累自己的工作手冊。
條件激活:Skill 會根據環境自動顯隱
這裏有一個容易被忽略的細節:Skill 可以根據當前工具環境自動決定是否出現在索引裏。
配置字段叫 fallback_for_toolsets 和 requires_toolsets:
metadata:
hermes:
fallback_for_toolsets: [web] # 只在 web 工具不可用時顯示
requires_toolsets: [terminal] # 只在 terminal 工具可用時顯示
舉個具體的例子:內置 Skill duckduckgo-search 用 fallback_for_toolsets: [web]。
當你配置了 Firecrawl API Key,web 工具集可用,Hermes 就用 web_search 工具直接搜索——DuckDuckGo 這個 Skill 靜默隱藏,不佔索引空間。一旦 API Key 失效或者你在一個沒網的環境,web 工具集消失,DuckDuckGo Skill 自動浮出水面作為備選。
這是個很優雅的降級機制:能力邊界變化時,Skill 體系會自動重新配置自己,不需要用戶手動干預。
Skill 的安全掃描:供應鏈攻擊的防線
Hermes Skills Hub 聚合了來自多個來源的技能包:官方內置、skills.sh(Vercel 維護的公共目錄)、各類社區倉庫、直接 URL 安裝。
這帶來了一個真實的安全風險:惡意的 Skill 文件可以在系統提示裏植入 prompt 注入指令,或者引導 Agent 執行危險操作。
Hermes 的應對方案是對所有來自 Hub 的 Skill 進行安全掃描,檢測項包括:
數據外泄指令 Prompt 注入模式 危險系統命令 供應鏈污染信號
掃描結果分三個信任級別:
builtin | ||
trusted | ||
community |
--force 參數可以繞過「警告」級別的攔截,但無法繞過「危險」級別。這條硬線劃得很清楚。
程序性記憶 vs 陳述性記憶
讀到這裏,可以把技能系統和上一篇的記憶系統放在一起對比理解:
陳述性記憶(Declarative Memory)
└── MEMORY.md / USER.md
→ 存「是什麼」:環境事實、用戶偏好、項目約定
→ 類比:你知道同事叫什麼名字、喜歡用什麼工具
程序性記憶(Procedural Memory)
└── Skills System
→ 存「怎麼做」:工作流步驟、操作規範、踩坑記錄
→ 類比:你記得怎麼騎自行車,不需要每次重新學
Hermes 文檔裏有一句話說得很直接(來源:hermes-agent.ai,2026年5月):「持久事實屬於記憶,可複用流程屬於技能。如果 Agent 一直忘記某個工作流,應該創建 Skill,而不是把步驟塞進 MEMORY.md。」
這條邊界的清晰劃分,避免了一個常見的誤用:把操作手冊寫進記憶,導致記憶空間被佔滿,真正需要常駐的上下文反而放不下。
小結
Hermes 技能系統的核心設計邏輯:
Skill 是知識文檔,不是插件:教 Agent 怎麼做事,而不是給它新工具 漸進式披露控制 token 成本:索引常駐,全文按需,三級加載 Agent 自動創建 Skill:每次成功的複雜任務都是在寫教材,經驗自動沉澱 條件激活實現優雅降級:工具環境變化時,Skill 體系自動重組 供應鏈安全有硬線:危險級別的 Skill 無法強制安裝
把記憶系統和技能系統放在一起看,Hermes 其實在構建一個完整的 Agent 認知架構:知道「是什麼」,也知道「怎麼做」,這才是能真正獨立工作的系統的基礎。
下一篇:代碼執行沙箱——execute_code 是怎麼把多步驟分析工作流,壓縮成一次完成的。