2026 Hermes Agent Skills 進階指南:SKILL.md、技能捆綁、GEPA 演化與 Tap 發佈

約 25 分鐘閱讀 · MACCOME

若你在 Gateway 主機上執行 Hermes Agent,每個工作階段仍要重複教部署、研究或發佈流程,本文是 2026 年針對 skill bundlesGEPA 演化tap 發佈 的正式環境手冊,而非另一篇泛用 SKILL.md 教學。你將得到:Skills 如何在 160k+ 星標 Agent 上作為程序性記憶體持續累積、YAML 捆綁設計、條件式啟用、團隊 tap 分發,以及十步落地路徑。結構:六道痛點、Skills 與 Memory 與 Prompts 對照矩陣、L0/L1/L2 漸進載入、bundles 與 Hub 儲存庫、GEPA 防護欄、外掛技能、部落格工作流案例、FAQ。

六道痛點:為何 Hermes Skills 在休眠筆電上無法累積

Hermes Agent(Nous Research)在 2026 年中 GitHub 星標已突破 160k+,團隊常引用的定位是:與你一起成長的 Agent。Skills 是其程序性記憶體層——Agent 撰寫、按需載入、跨工作階段演化的 Markdown Runbook。但營運者仍常撞上這些牆:

  1. 把 Skills 當聊天 Prompt: 在 Telegram 貼多步驟 SOP,而非存成 ~/.hermes/skills/ 下的 SKILL.md,工作階段重啟後什麼都不剩。
  2. 混淆 Memory 與 Skills: MEMORY.md 存事實與偏好;Skills 存可重複程序。混用會膨脹上下文並破壞路由。
  3. 忽略 bundle 優先順序: 將 bundle 命名為 research,而獨立技能已占用同一 slug——依設計 bundle 會贏得衝突,未讀 YAML 規則的團隊常因此吃驚。
  4. 未審核就安裝 Hub 技能: 社群 tap 會跑安全掃描,但 --force 可覆寫 caution 結果;dangerous 判定仍會阻擋安裝。
  5. 跳過 GEPA 防護欄: 在無 pytest 閘門或人工 PR 審查下,對正式環境樹執行 evolve_skill,Gateway 工作階段可能出現語意漂移。
  6. Skills 沒有 7×24 主機: Gateway、cron 與 GEPA 批次作業需要 uptime;MacBook 合蓋後程序性記憶體停止累積——與 Hermes 安裝指南持久記憶體架構文 所述相同。

一句定義: Hermes Skills 是版本化、可搜尋的程序文件——相容 agentskills.io——僅在任務匹配時載入;Memory 回答「我對你了解什麼?」,Prompt 回答「這一輪我要說什麼?」

Skills 與 Memory 與 Prompts:決策矩陣與記憶口訣

在再寫 400 行 system message 之前,先用下表選層。Hermes 暴露三種介面;選錯層是 Gateway 主機上 Token 浪費的最常見原因。

維度 Memory(MEMORY.md / providers) Skills(SKILL.md) Prompts(每輪指令)
儲存內容 事實、偏好、專案脈絡 多步驟程序、陷阱、驗證步驟 本則訊息的即時任務框架
載入模式 工作階段全程或 Provider 管理召回 漸進披露 L0/L1/L2 若留在 system prompt 則每輪注入
誰來撰寫 Agent + 使用者透過 memory 工具編輯 人工作者、Hub 安裝或 skill_manage 使用者或開發者每輪對話
Token 成本 隨記憶歷史成長 L0 全索引約 3k tokens;正文按需 若常駐則固定開銷
口訣 「發生過什麼」 「我們怎麼做」 「現在就做這個」

Skills 應與 MCP 搭配而非取代。MCP 提供即時工具存取;Skills 告訴 Hermes 何時 呼叫 web_searchterminal 或自訂外掛工具。若要在 Cursor 側撰寫同一 SKILL.md 標準,請見 Agent Skills 指南

SKILL.md 格式、目錄結構與漸進披露(L0 / L1 / L2)

Hermes 以 ~/.hermes/skills/ 為單一真實來源。分類資料夾(如 mlops/axolotl/)僅供組織;路由鍵在 frontmatter。

text
~/.hermes/skills/
├── mlops/
│   ├── axolotl/
│   │   ├── SKILL.md
│   │   ├── references/
│   │   ├── scripts/
│   │   └── assets/
│   └── vllm/
│       └── SKILL.md
├── devops/deploy-k8s/
│   ├── SKILL.md
│   └── references/
└── .hub/
    ├── lock.json
    └── taps.json

漸進披露對應三個 API 層級:

  • L0 — 索引(約 3k tokens): skills_list() 回傳每個可發現技能的 namedescriptioncategory。Agent 在載入正文前先判斷相關性。
  • L1 — 啟用: skill_view(name) 在任務匹配時回傳完整 SKILL.md 與中繼資料。
  • L2 — 深度拉取: skill_view(name, path) 僅在步驟需要時,從 references/templates/scripts/ 取特定檔案。

每個已安裝技能也是斜線指令:CLI 與 Telegram 皆可使用 /github-pr-workflow/plan/axolotl

markdown
---
name: deploy-runbook
description: Use when deploying services, rolling back releases, or posting to #deploy Slack.
version: 1.2.0
platforms: [macos, linux]
metadata:
  hermes:
    tags: [deployment, runbook]
    category: devops
---

# Deploy Runbook

## When to Use
User mentions deploy, rollback, production push, or staging validation.

## Procedure
1. Run `scripts/preflight.sh` and capture exit code.
2. Execute deploy script with explicit environment argument.
3. Verify health endpoint; on failure follow Rollback section.

## Pitfalls
- Missing env vars cause silent partial deploys.
- Never skip staging confirmation for production.

## Verification
Health URL returns 200 and error rate stays below baseline for 5 minutes.

Skill bundles:YAML 結構、範例與優先順序規則

Bundles 將多個技能組成單一斜線指令,位於 ~/.hermes/skill-bundles/*.yaml不會 安裝缺失技能——僅別名已存在於本機或 external_dirs 的技能。

yaml
# ~/.hermes/skill-bundles/research-session.yaml
name: research-session
description: Deep research — search, summarize, cite, and file notes.
skills:
  - duckduckgo-search
  - web-design-audit
  - excalidraw
instruction: |
  Start with source discovery, produce a cited summary,
  then sketch findings in Excalidraw if visuals help.
yaml
# ~/.hermes/skill-bundles/mlops-deploy.yaml
name: mlops-deploy
description: Train, serve, and monitor — axolotl + vLLM + deploy-k8s.
skills:
  - mlops/axolotl
  - mlops/vllm
  - devops/deploy-k8s
instruction: |
  Confirm dataset path and GPU quota before fine-tune.
  Serve with vLLM only after eval metrics pass threshold.

優先順序: 若 bundle slug 與獨立技能名稱衝突,/research-session 會呼叫 bundle。清單中缺失的技能會略過並附註——依設計非致命。Bundles 不會使 prompt 快取失效;它們像任何 /skill-name 一樣注入新的 user message。

bash
hermes bundles create research-session \
  --skill duckduckgo-search \
  --skill excalidraw \
  -d "Deep research bundle"

hermes bundles create mlops-deploy \
  --skill mlops/axolotl \
  --skill mlops/vllm \
  --skill devops/deploy-k8s \
  --force

hermes bundles list
hermes bundles show research-session
/bundles                    # inside chat

條件式啟用:四種規則類型與平台感知技能

Hermes 可依可用 toolsets 與 tools 隱藏或顯示技能——對僅在進階 API 缺席時才應出現的 fallback 技能至關重要。

Frontmatter 欄位 行為
fallback_for_toolsets 所列 toolsets 可用時隱藏;缺失時顯示
fallback_for_tools 相同邏輯,但粒度到個別 tool
requires_toolsets 所列 toolsets 存在前隱藏
requires_tools 所列 tools 存在前隱藏

內建 duckduckgo-search 技能設定 fallback_for_toolsets: [web]。設定 FIRECRAWL_API_KEY 後 web toolset 可用,Hermes 偏好 web_search;未設定時 DuckDuckGo 自動出現。加入 platforms: [macos][macos, linux] 可在 Linux Gateway 節點隱藏僅 macOS 技能(iMessage、Apple Reminders)。

Skills Hub:安裝指令與四個入門儲存庫

Hub 彙整官方選用技能、skills.sh、well-known 端點、GitHub tap 與社群市集。所有 Hub 安裝均通過安全掃描;僅在人工審閱非 dangerous 發現後才使用 --force

bash
hermes skills browse
hermes skills search kubernetes
hermes skills inspect openai/skills/k8s
hermes skills install official/security/1password
hermes skills install skills-sh/vercel-labs/agent-skills/vercel-react-best-practices --force
hermes skills tap add myorg/hermes-skills
hermes skills check
hermes skills update
儲存庫 / 來源 角色 典型安裝
awesome-hermes-skills 社群策展的 Hermes 相容 SKILL.md 集合索引 hermes skills tap add <owner>/awesome-hermes-skills
hermeshub 團隊維護 tap,含內部 Runbook 與 skills.sh.json 分組 hermes skills tap add <org>/hermeshub
ai-agent-skills 跨工具技能包(Hermes + Cursor + Claude Code),位於 skills/ hermes skills install <owner>/ai-agent-skills/<skill-dir>
official(optional-skills/) Hermes 內建信任技能——安全、遷移、生產力 hermes skills install official/security/1password

發佈 Skill Tap:儲存庫結構、skills.sh.json 與團隊部署

Tap 即 GitHub 儲存庫——無需註冊表。Hermes 列出 tap 路徑下子目錄(預設 skills/),並探測各目錄是否有 SKILL.md

text
my-org/hermes-skills/
├── skills/
│   ├── deploy-runbook/
│   │   ├── SKILL.md
│   │   ├── references/
│   │   └── scripts/
│   └── incident-response/
│       └── SKILL.md
├── skills.sh.json
└── README.md
json
{
  "$schema": "https://skills.sh/schemas/skills.sh.schema.json",
  "groupings": [
    { "title": "Platform", "skills": ["deploy-runbook", "incident-response"] },
    { "title": "Research", "skills": ["literature-review", "citation-check"] }
  ]
}

團隊 rollout 刻意保持單調——這是好事:

bash
# On each Gateway host (or golden AMI):
hermes skills tap add my-org/hermes-skills
hermes skills search deploy
hermes skills install my-org/hermes-skills/deploy-runbook
hermes skills audit

# Pin non-default tap paths in ~/.hermes/.hub/taps.json:
# {"repo": "my-org/platform-docs", "path": "internal/skills/"}
info

提示:~/.hermes/.env 設定 GITHUB_TOKEN,可將 GitHub API 限額從每小時 60 次提升至 5,000 次,大量 tap 索引時更穩定。

GEPA + DSPy:五階段流程、指令、防護欄與路線圖

hermes-agent-self-evolution 儲存庫透過 DSPy 套用 GEPA(Genetic-Pareto Prompt Evolution,ICLR 2026 Oral)變異 SKILL.md 文字——非模型權重。單次優化約需 2–10 美元 API 費用。

五階段流程:

  1. HERMES_AGENT_REPO 讀取目前技能 / prompt / tool description。
  2. 產生評估資料集(合成或來自工作階段 DB)。
  3. GEPA 依執行 trace 提出候選變體——診斷為何失敗。
  4. 約束閘門篩選候選(測試、大小、語意、快取規則)。
  5. 最佳變體開啟人工審查 PR——永不直接 commit 至正式環境。
bash
git clone https://github.com/NousResearch/hermes-agent-self-evolution.git
cd hermes-agent-self-evolution
pip install -e ".[dev]"
export HERMES_AGENT_REPO=~/.hermes/hermes-agent

# Synthetic eval set
python -m evolution.skills.evolve_skill \
  --skill github-code-review \
  --iterations 10 \
  --eval-source synthetic

# Mixed traces: Hermes session DB + Claude Code + Copilot exports
python -m evolution.skills.evolve_skill \
  --skill github-code-review \
  --iterations 10 \
  --eval-source sessiondb

四項正式環境防護欄(外加強制 PR 審查):

  • 測試套件: 合併前 pytest tests/ -q 必須 100% 通過。
  • 大小限制: 技能正文 ≤ 15 KB;tool description ≤ 500 字元
  • 快取相容性: 不可在對話中途變更 prompt 而破壞 Hermes 快取假設。
  • 語意保留: 演化文字不得偏離技能原始目的。

self-evolution 儲存庫五階段路線圖:Phase 1 Skills(已實作)、Phase 2 tool descriptions、Phase 3 system prompt 區段、Phase 4 透過 Darwinian Evolver 演化 tool 實作程式碼、Phase 5 連續自動化管線。

外掛技能:plugin:skill 命名空間與 plugin.yaml

~/.hermes/plugins/ 下的一般外掛含 plugin.yaml 清單,並透過 ctx.register_skill(name, path) 註冊捆綁技能。載入後以 plugin:skill 命名空間出現,以 skill_view("plugin:skill") 取得。

yaml
# ~/.hermes/plugins/acme-tools/plugin.yaml
name: acme-tools
version: "1.0"
description: Internal CRM and billing tools for Acme ops
requires_env: [ACME_API_KEY]

須在 config.yamlplugins.enabled 明確啟用第三方外掛——僅發現目錄不會執行任意程式碼。專案本機外掛位於 ./.hermes/plugins/ 時,需 HERMES_ENABLE_PROJECT_PLUGINS=true

進階撰寫:description、陷阱、scripts、限制、skill_manage

  • Description 即路由器: 寫使用者說法(「rollback production」「fine-tune Llama」),而非功能摘要。
  • Pitfalls 區段為強制紀律: 記錄 Agent 曾踩過的失敗模式——程序性記憶體在此發揮價值。
  • Scripts 放在 scripts/ 確定性指令減少幻覺參數;僅 stdout/stderr 回灌上下文。
  • GEPA 強制 15 KB 技能正文: 長 schema 移至 references/,正文以短步驟連結。
  • skill_manage 動作: 更新時偏好 patch 而非 edit 以節省 Token;以 skills.write_approval: true 閘門寫入,並用 /skills pending 審核。

案例研究:MACCOME 部落格工作流 bundle

發佈多語系 MACCOME 文章的編輯團隊,可將 generate-blog.md 規則 codify 成可重複 bundle,而非每個 sprint 在 Telegram 重貼:

yaml
# ~/.hermes/skill-bundles/maccome-blog.yaml
name: maccome-blog
description: Draft MACCOME blog HTML — structure, EEAT data, FAQ, CTA.
skills:
  - plan
  - web-design-audit
  - github-pr-workflow
instruction: |
  Gather topic from user, produce outline matching six modules
  (lead, pain points, table, steps, hard data, conversion).
  Verify internal links with ls before writing hrefs.
  Stage HTML on branch; never commit without explicit user approval.

在 7×24 Mac Mini M4 節點以 /maccome-blog Hermes GEPA bundles tap 呼叫。我們 30 天 Hermes 租賃實測 顯示技能由 3 增至 19,重複任務 Token 約省 38%——任務輪廓穩定時 bundle 可進一步放大效益。

十步正式環境 Hermes Skills 落地

  1. 在常駐 macOS 主機安裝 Hermes(見安裝指南);確認 hermes doctor 通過。
  2. 審核內建技能: hermes skills list;若要空白起點以 hermes skills opt-out 退出。
  3. 撰寫或匯入一個高頻 SKILL.mddescription 以觸發詞優先。
  4. 為固定技能組建立 bundleresearch-sessionmlops-deploy)。
  5. 加入條件欄位 處理 fallback 工具與混合 macOS/Linux 機隊的 platforms
  6. 訂閱團隊 taphermes skills tap add;以 skills.sh.json 提供 Hub 分類。
  7. 若 Gateway 對外: 啟用 skills.write_approval: true
  8. 對 staging 技能排程 GEPA,以 --eval-source sessiondb 混合 trace。
  9. 在 Telegram 與 CLI 迴歸斜線指令;依真實營運用語微調 description。
  10. 將 tap 儲存庫 + bundle YAML commit 至 Git;自 dotfiles 符號連結 skill-bundles/ 以機隊一致。

三條可引用硬數據(2026 年 6 月)

  • 星標增速: Hermes Agent 於 2026 年 2 月推出後數月內突破 160k GitHub 星標——快於多數開源 Agent 框架,顯示 IDE Copilot 之外的正式環境採用意願。
  • GEPA 樣本效率: 反射式演化通常只需 100–500 次評估,相較 RL 式 prompt 調校 10,000+ 次(ICLR 2026 GEPA 論文)——使夜間技能優化在 API 預算內可行。
  • 現場 Token 差異: MACCOME 30 天 Mac Mini M4 日記記錄技能 3 增至 19,程序性記憶體覆蓋部署與研究路徑後,重複工作流 Token 約降 38%

資源

收束:程序性記憶體需要保持醒著的主機

Skill bundles、tap 發佈與 GEPA 演化僅在 Hermes 持續執行時才會累積。替代方案的限制很具體:(a)筆電休眠會中斷 Gateway 與夜間 GEPA 作業;(b)Linux VPS 缺少 macOS 專屬技能與 Apple 工具鏈步驟;(c)臨時 Prompt 無法跨工作階段輪替或團隊 onboarding 留存

若你需要 數分鐘內 SSH 上線、可預期月費,以及 ~/.hermes/skills/、tap 與 launchd Gateway 7×24 存活的 macOS 主機MACCOME 獨占 Mac Mini M4 雲節點 通常是更適合的正式環境選擇。請在 Mac Mini 雲端租賃價格頁 比較記憶體方案;維運問題請至 雲端 Mac 協助中心

常見問題

Hermes Skills 與 MCP 有什麼差別?

MCP 在執行時期連接外部 API、資料庫與瀏覽器。Hermes Skills 是描述何時、如何完成工作流的程序文件。在 Skills 內引用 MCP 工具名稱;勿以 MCP 取代 Runbook。

hermes update 之後技能為何沒更新?

你編輯過的內建技能會在 .bundled_manifest 標記為 user-modified,同步時略過。執行 hermes skills reset <name> 重新基準化,或 hermes skills reset <name> --restore 還原上游原始副本。

GEPA 技能演化在正式環境安全嗎?

候選變體須通過 pytest、15 KB 大小限制、快取規則與語意保留閘門。變更經 self-evolution 儲存庫審查 PR 合併——未經核准勿直接寫入 live Gateway 技能樹。

Hermes 技能能否在 Claude Code 或 Cursor 重用?

可以。將技能目錄複製到 .agents/skills/.cursor/skills/,並依各編輯器調整 description 觸發詞。agentskills.io 格式是 Hermes 刻意採用的可攜性層。

中文為主的 Hermes 工作階段如何降低 Token 消耗?

保持 L0 中繼資料精簡,長文 offload 至 references/,避免 oversized bundle,並以混合 trace 執行 GEPA 使 description 精準。若需 7×24 Gateway 跑 CJK 編輯工作流,請見 MACCOME Mac Mini 雲端租賃方案