Hermes Agent(NousResearch/hermes-agent)內置對 Model Context Protocol(MCP) 的一等支持:在 ~/.hermes/config.yaml 中聲明 mcp_servers,Hermes 會拉起基於 stdio 的服務進程(例如 @modelcontextprotocol/server-filesystem),模型側看到的工具名帶 mcp_<server>_<tool> 前綴。搭配 Claude Opus 4.8(2026 年 5 月 28 日發佈;API 標識 claude-opus-4-8)與本地代碼沙箱,智能體可在限定倉庫內讀代碼、執行 npm test,並在有界重試下嘗試受控的自動修復,而無需訪問整個用戶主目錄。
官方資料:Hermes MCP 用戶指南、倉庫內 MCP 文檔,以及 modelcontextprotocol.io。若在 Apple 硬件上對比不同 Agent 框架,請參閱 macOS 與 Mac mini M4 上 Hermes Agent 與 OpenClaw 對比。長會話導致上下文膨脹時,可結合 Mac mini M4 上的 Hermes trajectory_compressor 與記憶壓縮 控制 token。若需 7×24 消息網關部署,見 廉價 VPS 上用 Docker 運行 Hermes Agent 與 Telegram 機器人。
說明:MacHTML 提供可選的雲 Mac mini 租用用於預演 Agent 配置;本文聚焦 MCP 與沙箱模式,不強制使用 Mac。
Claude Opus 4.8 時代爲何用 MCP 搭配 Hermes
在 MCP 普及之前,常見做法是整庫粘貼進上下文,或在宿主機上無約束地執行 Shell——二者都難以通過合規審查。MCP 提供契約化的工具面:文件系統服務只暴露你列出的目錄;Hermes 將每個工具映射爲 mcp_<server>_<tool>,便於在日誌中審計每一次調用。Anthropic 於 2026 年 5 月 28 日發佈 Claude Opus 4.8 後,更長的推理鏈與更強的補丁質量使「讀取 → 測試 → 修復」循環變得可行——但前提是 Harness 能把影響範圍限制在可控半徑內。
Hermes 已在單一 ~/.hermes 目錄樹下統一技能、定時任務與網關。接入 MCP 意味着無需爲文檔檢索或倉庫內省再另起一套 Agent 框架。Shell 執行仍由 terminal.backend: docker 承擔,結構化讀盤與元數據交給 MCP;再配合 tools.include / tools.exclude 做顯式白名單,即構成合規的本地代碼沙箱:MCP 負責觀察,Docker 終端負責變更。
Opus 4.8 特別適合在測試失敗時反覆迭代。典型循環:經 MCP 列出項目文件、讀取失敗用例、經終端工具提交補丁、執行 npm test,通過則停止,否則在重試預算內繼續。若 MCP 根目錄未收窄,模型可能讀到 ~/.ssh 或雲憑證;將 server-filesystem 根指向 /srv/sandbox/app 時,這些路徑不會出現在工具 Schema 中。
MCP 還解耦升級節奏:Nous Research 發佈新 Hermes 鏡像後,只要 stdio 命令路徑仍有效,mcp_servers 塊通常可原樣保留。在 Telegram 或 CLI 對話中發送 /reload-mcp 即可熱加載,無需重啓網關——在將配置從 Mac mini 預演環境提升到 VPS 前尤其省事。
也可通過 hermes mcp install 安裝經審覈的目錄條目,或手寫 npx 命令。Hermes 支持 hermes mcp serve,讓其他 MCP 主機調用 Hermes 工具,同時 Hermes 調用文件系統 MCP——便於 Claude Code 與 Telegram 網關共享同一沙箱策略。
最後,MCP 與社區生態互通:Git、瀏覽器、數據庫等社區服務器以相同方式掛載。代碼沙箱先從文件系統範圍起步;每增加一個服務器都應經過安全評審。
合規團隊常要求可舉證的操作記錄。MCP 工具調用是帶參數的離散 JSON-RPC 操作,參數清晰、便於落庫與回放。將此類日誌與 Docker 終端審計結合,可在 2026 年的內部 AI 治理評審中形成較有說服力的敘述。
從 IDE 副駕駛遷移的開發者會感受到不同交互:Hermes 以會話與網關爲中心,同一沙箱既可從手機 Telegram 驅動(網關跑在 Mac mini),也可在本地 CLI 做功能開發。~/.hermes 攜帶 MCP 配置;界面可變,安全邊界不變。
架構:Hermes、MCP 服務與 Docker 終端
開發者 → Hermes CLI / 網關對話
↳ config.yaml
├─ model: claude-opus-4-8
├─ mcp_servers(stdio)→ @modelcontextprotocol/server-filesystem
├─ tools.include / tools.exclude
└─ terminal.backend: docker → 沙箱容器內 bash/npm
↳ 暴露給模型的工具名:mcp_sandbox_fs_read_file、run_terminal_cmd、…
啓動時(及 /reload-mcp 時)Hermes 加載 mcp_servers。每條目指定命令——常見爲 npx -y @modelcontextprotocol/server-filesystem 並附帶允許的目錄。Agent 循環將 MCP 工具與內置工具合併;若設置了 tools.include,只有名單內的工具會進入 Opus 4.8。
工具前綴:Hermes 爲 MCP 工具加命名空間,日誌可區分由哪個服務器響應。預期名稱類似 mcp_sandbox_fs_read_file。編輯 YAML 後可在宿主機執行 hermes mcp list 覈對註冊情況。
終端後端:在 config.yaml 中設置 terminal.backend: docker(Docker 部署中亦可設 TERMINAL_BACKEND=docker),使 npm test、git 與格式化在沙箱容器內執行——而非直接落在網關宿主機內核上。將倉庫同時掛載進 MCP 根列表與容器工作區,保持路徑一致。
受控自動修復:將白名單與技能說明結合:限制重試次數、禁止 rm -rf、生產分支要求人工審閱 diff。當系統提示與技能元數據中重複這些約束時,Opus 4.8 更易遵守。
| 層級 | 職責 | 典型配置 |
|---|---|---|
| MCP 文件系統 | 在根目錄內讀/列/搜 | mcp_servers + server-filesystem 路徑 |
| Hermes 終端 | 跑測試、打補丁 | terminal.backend: docker |
| tools.include | 剔除危險內置工具 | 僅列顯式工具名 |
| 模型 | 推理與工具選擇 | claude-opus-4-8 |
MCP 與 Shell 工具的安全模型
將 MCP 根目錄視爲讀邊界,而非寫邊界。文件系統 MCP 服務隨版本可能仍暴露寫工具——若策略要求預發環境只讀,用 tools.exclude 去掉 mcp_*_write*。切勿把根指向 ~/.hermes、~/.ssh 或雲憑證目錄。
團隊網關場景下 Docker 終端隔離是硬性要求。被劫持的提示詞不應逃逸到宿主機包管理器。CPU 與內存限制應與生產網關指南一致。仍遵守「每個 ~/.hermes 掛載僅一個網關」——重複網關會破壞會話。
在 ~/.hermes/.env 中輪換 API 密鑰,與 MCP 配置分開管理。限制誰能在 Telegram 上執行 /reload-mcp 及管理類斜槓命令。使用 Opus 4.8 時關注自動修復循環的 token 消耗;上下文超預算時配合 /compress 或軌跡壓縮。
審計日誌:預發階段開啓詳細工具日誌。確認每次 mcp_* 調用路徑落在倉庫根下。拒絕要求模型外泄環境變量的技能。
密鑰應放在 MCP 根之外的 .env。若僅需閱讀 .env.example,白名單該單文件而非整個父目錄。單倉多包項目應將 MCP 收窄到正在開發的子包,避免 Opus 4.8 遍歷無關服務。
沙箱容器出站網絡默認拒絕,僅放行 npm test 所需的包註冊表域名。在手冊附錄中記錄允許域名,便於安全評審簽字而無需通讀每個技能文件。
分步操作手冊
- 安裝 Hermes(含 MCP 擴展) — 使用安裝腳本並安裝
.[mcp]可選依賴。確認 PATH 上有npx與 Node 20+。curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash source ~/.zshrc cd ~/.hermes/hermes-agent && uv pip install -e ".[mcp]" hermes doctor - 固定 Claude Opus 4.8 — 將 API 密鑰寫入
~/.hermes/.env,在config.yaml中設置claude-opus-4-8,對話中用/model驗證。ANTHROPIC_API_KEY=sk-ant-... models: default: claude-opus-4-8 - 創建隔離沙箱目錄 — 克隆可丟棄的測試倉庫並執行
npm ci。sudo mkdir -p /srv/sandbox/app sudo chown "$USER":"$USER" /srv/sandbox/app git clone https://github.com/your-org/your-test-repo.git /srv/sandbox/app cd /srv/sandbox/app && npm ci - 註冊文件系統 MCP 服務 — 在
mcp_servers中限定根目錄並配置tools.include。mcp_servers: sandbox_fs: command: "npx" args: - "-y" - "@modelcontextprotocol/server-filesystem" - "/srv/sandbox/app" tools: include: - read_file - list_directory - search_files - 啓用 Docker 終端後端 — MCP 根與容器掛載保持一致。
terminal: backend: docker container_persistent: true container_memory: 5120 docker_volumes: - "/srv/sandbox/app:/workspace" - 驗證 MCP 註冊 — 在宿主機執行:
hermes mcp list # 對話中:/reload-mcp - 運行 npm test 循環 — 明確提示:經 MCP 讀失敗輸出,在沙箱內打補丁,每次補丁後執行
npm test,最多 N 次嘗試後停止。hermes chat "列出頂層文件,在 /workspace 運行 npm test,僅修復 src/ 下失敗用例,最多 3 次。" - 將配置提升到網關或 VPS — 按 VPS Telegram 指南 將校驗過的
~/.hermes複製到 Docker 綁定掛載。保持TERMINAL_BACKEND=docker,並在容器內再次執行hermes mcp list。
將重試預算與禁止命令寫入倉庫內的技能文件,使每位隊友繼承相同的受控自動修復策略。每次升級 Hermes 鏡像後應重跑本手冊,因 MCP 服務 CLI 偶發新增工具名,需同步更新 tools.include。
故障排查
修改配置後 MCP 工具消失
在對話中執行 /reload-mcp 或重啓 CLI 會話。以同一用戶手動確認 npx 能啓動 @modelcontextprotocol/server-filesystem。用 hermes mcp list 查看拉起錯誤。mcp_servers 鍵名錯誤會改變 mcp_* 前綴——請相應更新 tools.include。
本地 npm test 通過但 Docker 終端內失敗
對齊掛載路徑:MCP 讀 /srv/sandbox/app,容器內使用 /workspace。在 docker_volumes 中使用同一宿主機路徑。在沙箱鏡像內安裝 Node 或使用已預裝依賴的持久容器。
Opus 4.8 無視護欄並編輯範圍外文件
從 tools.include 移除寫類 MCP 工具,收窄文件系統根,並在技能文本中禁止倉庫外路徑。生產分支改用只讀 MCP;終端僅用於一次性臨時沙箱。
OAuth MCP 登錄在會話中卡住
退出當前會話,在全新終端運行 hermes mcp login <server>,完成授權後再 /reload-mcp。
關於框架對比、記憶壓縮與 VPS 上 7×24 Telegram,請參閱 macOS 與 Mac mini M4 上 Hermes Agent 與 OpenClaw 對比、Mac mini M4 上的 Hermes trajectory_compressor 與記憶壓縮,以及 廉價 VPS 上用 Docker 運行 Hermes Agent 與 Telegram 機器人。升級硬體前可先讀 蘋果 M5 Fusion 架構與 M6 2nm 工藝預測 中的頻寬與買現役/等跨代矩陣。本文在此基礎上補充面向 Claude Opus 4.8 編碼循環的 MCP 文件系統沙箱配置。
常見問題
MCP 工具會取代 Hermes 終端工具嗎?
不會。MCP 文件系統工具與內置終端互補。Shell 仍用 terminal.backend: docker,MCP 負責限定範圍內的讀與列目錄。
Claude Opus 4.8 應設哪個模型 id?
在 config.yaml 或對話 /model 中使用 claude-opus-4-8,與 Anthropic 2026 年 5 月 28 日發佈公告一致。
如何在不重啓網關的情況下重載 MCP?
在對話中發送 /reload-mcp,或在宿主機運行 hermes mcp list,確認 mcp_servers 下的服務已註冊。
能否在 VPS 上運行此沙箱?
可以。掛載 ~/.hermes,啓用 TERMINAL_BACKEND=docker,並將 MCP 範圍限定在綁定掛載上的項目目錄。網關加固見 Docker VPS 一文。
tools.include 如何與 MCP 交互?
設置 tools.include 後,僅名單內工具暴露給模型。將 hermes mcp list 報告的每個 mcp_* 工具名加入列表;生產環境省略不需要的內置工具。
MacHTML 上的 Hermes MCP 與 OpenClaw MCP 文章有何不同?
OpenClaw 文章側重 Node 網關與遠程 Mac 自動化。本文講解 Hermes 原生 mcp_servers、工具前綴與 /reload-mcp。