Hermes Agent 導讀:Nous Research 的自我改進 agent,以及它跟 OpenClaw 的真實關係
Hermes Agent 是 Nous Research 的 MIT 授權 agent 框架,賣點是內建學習迴路(自動生技能、記憶提醒、FTS5 跨 session 檢索)。它提供 `hermes claw migrate` 從 OpenClaw 搬家,但 OpenClaw 並沒有被取代,兩邊仍各自在走。這篇是系列導讀,先講清楚它是什麼、跟誰不同、哪些情況不該選它。
對照 Nous Research 官方文件讀 Hermes Agent:安裝與升級、模型供應商與 Nous Portal、Tool Gateway、七種終端後端、記憶與技能、工具與 plugin、Gateway 與排程、安全模型,以及從 OpenClaw 遷移。每篇只留取捨與失敗點,指令細節交還官方文件。
Hermes Agent 是 Nous Research 的 MIT 授權 agent 框架,賣點是內建學習迴路(自動生技能、記憶提醒、FTS5 跨 session 檢索)。它提供 `hermes claw migrate` 從 OpenClaw 搬家,但 OpenClaw 並沒有被取代,兩邊仍各自在走。這篇是系列導讀,先講清楚它是什麼、跟誰不同、哪些情況不該選它。
Hermes 的安裝方式分成三個支援層級:macOS(Apple Silicon)/Windows 10-11/Linux-WSL2/Docker 是 Tier 1,Termux 與 Nix 是 Tier 2,而 pip、brew、AUR 與 Intel Mac 明確不支援——用不支援的路裝,修 bug 的 PR 官方不收。升級端 `hermes update` 會先做快照、pull 後編譯九個關鍵檔案驗語法,失敗自動 `git reset --hard` 回滾。
Hermes 支援 40 家以上供應商,其中「用消費者訂閱登入」的路徑最容易產生帳單意外:Anthropic OAuth 只吃 Claude Max 的加購額度、Claude Pro 根本不能用;auxiliary 任務預設 `provider: auto` 會走你的主模型,等於用貴模型做壓縮與視覺。fallback 鏈是每個 session 只觸發一次的一次性切換,不是持續重試。
Tool Gateway 把 Hermes 的網頁搜尋(Firecrawl)、圖像生成(FAL 九個模型)、TTS(OpenAI)與雲端瀏覽器(Browser Use)四類工具改走 Nous 的基礎設施,用一次 OAuth 取代四個帳號。它是 per-tool 開關而非全有全無,`use_gateway: true` 會蓋過你 `.env` 裡的直連金鑰——這是最容易搞混的優先序。
Hermes 的指令可以跑在 local、ssh、docker、singularity、modal、daytona、vercel_sandbox 七種後端。關鍵取捨不是效能而是審批:local 與 ssh 會做危險指令檢查,其餘五種一律跳過,因為官方把容器/沙箱本身當成邊界。另外 Docker 預設是「一個長壽容器跨 session 共用」,不是每次對話一個乾淨環境。
Hermes 的記憶是硬上限的:MEMORY.md 2,200 字元、USER.md 1,375 字元,寫爆不會自動壓縮而是回錯誤讓 agent 自己騰位子。技能則由 curator 背景維護,預設 7 天跑一次、只在閒置 2 小時後啟動,30 天未用標 stale、90 天封存——但從不刪除。真正該打開的開關是 `memory.write_approval` 與 `skills.write_approval`,它們把背景自我改進的寫入變成待審。
接上一堆 MCP server 之後,工具 schema 本身就會吃掉大半 context——官方舉的極端例子是 Cloudflare 單一 server 約 3,300 個工具、光名稱就 32K token。Hermes 的解法是 Tool Search:把 MCP 與非核心 plugin 工具換成三個橋接工具,schema 按需載入,核心工具永不延後。另外 plugin 預設全部停用,要在 `plugins.enabled` 逐一點名才會跑。
一個 Gateway 行程接 30 幾個聊天平台,預設拒絕所有不在白名單也未配對的使用者。排程這邊做了兩道少見的防護:pre-dispatch 驗證讓設定壞掉的 job 連 LLM 都不呼叫就標成 blocked_config,而 model drift guard 會讓「沒釘模型」的 job 在全域模型被換掉時直接跳過執行——防的是你切到付費模型後,一個每小時跑的 job 幫你燒錢。
Hermes 的審批預設是 smart 模式:低風險指令由 auxiliary 模型放行、真正危險的自動拒絕、不確定的才問人。`--yolo` 與 `approvals.mode: off` 都關不掉 hardline 封鎖清單(`rm -rf /`、fork bomb、`dd` 寫實體磁碟),而 `approvals.deny` 是它的使用者版:在 yolo 之前就攔下來。官方自己標明這整套的威脅模型是「誠實但犯錯的 agent」,不是對抗惡意行程。
`hermes claw migrate` 會把 OpenClaw 的 persona、記憶、四個來源的技能、模型與供應商設定、平台 token 與審批白名單搬進 Hermes——但金鑰永遠不會靜默搬過去,連 `--preset full` 都要另外加 `--migrate-secrets`。搬不動的東西(cron、plugin、hook、多 agent 清單、複雜頻道設定)不會消失,而是丟進 `~/.hermes/migration/openclaw/<timestamp>/archive/` 等你手動處理。從 Claude Code 或 Codex 過來則是另一個指令 `hermes import-agent`。
`batch_runner.py` 把數千條 prompt 平行跑成 ShareGPT 格式的 tool-calling trajectory,每條 prompt 可指定自己的容器映像,中斷後靠內容比對而非索引續跑。它內建兩道品質過濾:完全沒有 reasoning 的樣本丟掉、含幻覺工具名的條目在合併時剔除。這解釋了為什麼一家研究機構要做個人 agent——agent 本身就是資料產線。