若你在 Gateway 主機上執行 Hermes Agent,每個工作階段仍要重複教部署、研究或發佈流程,本文是 2026 年針對 skill bundles、GEPA 演化 與 tap 發佈 的正式環境手冊,而非另一篇泛用 SKILL.md 教學。你將得到:Skills 如何在 160k+ 星標 Agent 上作為程序性記憶體持續累積、YAML 捆綁設計、條件式啟用、團隊 tap 分發,以及十步落地路徑。結構:六道痛點、Skills 與 Memory 與 Prompts 對照矩陣、L0/L1/L2 漸進載入、bundles 與 Hub 儲存庫、GEPA 防護欄、外掛技能、部落格工作流案例、FAQ。
Hermes Agent(Nous Research)在 2026 年中 GitHub 星標已突破 160k+,團隊常引用的定位是:與你一起成長的 Agent。Skills 是其程序性記憶體層——Agent 撰寫、按需載入、跨工作階段演化的 Markdown Runbook。但營運者仍常撞上這些牆:
~/.hermes/skills/ 下的 SKILL.md,工作階段重啟後什麼都不剩。MEMORY.md 存事實與偏好;Skills 存可重複程序。混用會膨脹上下文並破壞路由。research,而獨立技能已占用同一 slug——依設計 bundle 會贏得衝突,未讀 YAML 規則的團隊常因此吃驚。--force 可覆寫 caution 結果;dangerous 判定仍會阻擋安裝。evolve_skill,Gateway 工作階段可能出現語意漂移。一句定義: Hermes Skills 是版本化、可搜尋的程序文件——相容 agentskills.io——僅在任務匹配時載入;Memory 回答「我對你了解什麼?」,Prompt 回答「這一輪我要說什麼?」
在再寫 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_search、terminal 或自訂外掛工具。若要在 Cursor 側撰寫同一 SKILL.md 標準,請見 Agent Skills 指南。
Hermes 以 ~/.hermes/skills/ 為單一真實來源。分類資料夾(如 mlops/axolotl/)僅供組織;路由鍵在 frontmatter。
~/.hermes/skills/
├── mlops/
│ ├── axolotl/
│ │ ├── SKILL.md
│ │ ├── references/
│ │ ├── scripts/
│ │ └── assets/
│ └── vllm/
│ └── SKILL.md
├── devops/deploy-k8s/
│ ├── SKILL.md
│ └── references/
└── .hub/
├── lock.json
└── taps.json
漸進披露對應三個 API 層級:
skills_list() 回傳每個可發現技能的 name、description、category。Agent 在載入正文前先判斷相關性。skill_view(name) 在任務匹配時回傳完整 SKILL.md 與中繼資料。skill_view(name, path) 僅在步驟需要時,從 references/、templates/ 或 scripts/ 取特定檔案。每個已安裝技能也是斜線指令:CLI 與 Telegram 皆可使用 /github-pr-workflow、/plan 或 /axolotl。
---
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.
Bundles 將多個技能組成單一斜線指令,位於 ~/.hermes/skill-bundles/*.yaml,不會 安裝缺失技能——僅別名已存在於本機或 external_dirs 的技能。
# ~/.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.
# ~/.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。
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)。
Hub 彙整官方選用技能、skills.sh、well-known 端點、GitHub tap 與社群市集。所有 Hub 安裝均通過安全掃描;僅在人工審閱非 dangerous 發現後才使用 --force。
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 |
Tap 即 GitHub 儲存庫——無需註冊表。Hermes 列出 tap 路徑下子目錄(預設 skills/),並探測各目錄是否有 SKILL.md。
my-org/hermes-skills/ ├── skills/ │ ├── deploy-runbook/ │ │ ├── SKILL.md │ │ ├── references/ │ │ └── scripts/ │ └── incident-response/ │ └── SKILL.md ├── skills.sh.json └── README.md
{
"$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 刻意保持單調——這是好事:
# 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/"}
提示: 在 ~/.hermes/.env 設定 GITHUB_TOKEN,可將 GitHub API 限額從每小時 60 次提升至 5,000 次,大量 tap 索引時更穩定。
hermes-agent-self-evolution 儲存庫透過 DSPy 套用 GEPA(Genetic-Pareto Prompt Evolution,ICLR 2026 Oral)變異 SKILL.md 文字——非模型權重。單次優化約需 2–10 美元 API 費用。
五階段流程:
HERMES_AGENT_REPO 讀取目前技能 / prompt / tool description。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% 通過。self-evolution 儲存庫五階段路線圖:Phase 1 Skills(已實作)、Phase 2 tool descriptions、Phase 3 system prompt 區段、Phase 4 透過 Darwinian Evolver 演化 tool 實作程式碼、Phase 5 連續自動化管線。
~/.hermes/plugins/ 下的一般外掛含 plugin.yaml 清單,並透過 ctx.register_skill(name, path) 註冊捆綁技能。載入後以 plugin:skill 命名空間出現,以 skill_view("plugin:skill") 取得。
# ~/.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.yaml 的 plugins.enabled 明確啟用第三方外掛——僅發現目錄不會執行任意程式碼。專案本機外掛位於 ./.hermes/plugins/ 時,需 HERMES_ENABLE_PROJECT_PLUGINS=true。
scripts/: 確定性指令減少幻覺參數;僅 stdout/stderr 回灌上下文。references/,正文以短步驟連結。skill_manage 動作: 更新時偏好 patch 而非 edit 以節省 Token;以 skills.write_approval: true 閘門寫入,並用 /skills pending 審核。發佈多語系 MACCOME 文章的編輯團隊,可將 generate-blog.md 規則 codify 成可重複 bundle,而非每個 sprint 在 Telegram 重貼:
# ~/.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 doctor 通過。hermes skills list;若要空白起點以 hermes skills opt-out 退出。description 以觸發詞優先。research-session、mlops-deploy)。platforms。hermes skills tap add;以 skills.sh.json 提供 Hub 分類。skills.write_approval: true。--eval-source sessiondb 混合 trace。skill-bundles/ 以機隊一致。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 雲端租賃方案。