H繁中版
<!-- Source: https://hermesbible.com/docs/user-guide/features/tools -->

章節:核心功能 · 網址:https://hermesbible.com/docs/user-guide/features/tools

Tools 是用來擴展 agent 能力的函式。它們被組織成邏輯性的 toolset,可以針對不同平台啟用或停用。

可用的 Tools

Hermes 內建了一套廣泛的 tool 註冊表,涵蓋網頁搜尋、瀏覽器自動化、終端機執行、檔案編輯、記憶體、任務委派、RL 訓練、訊息投遞、Home Assistant 等功能。

備註

Honcho 跨 session 記憶體是以記憶體提供者外掛的形式提供(plugins/memory/honcho/),並非內建 toolset。請參閱 外掛程式 了解安裝方式。

主要分類:

分類範例說明
Webweb_search, web_extract搜尋網頁並擷取頁面內容。
X Searchx_search透過 xAI 內建的 x_search Responses 工具搜尋 X(Twitter)貼文與串文 — 需要 xAI 憑證(SuperGrok OAuth 或 XAI_API_KEY)才能使用;預設關閉,可透過 hermes tools → 🐦 X(Twitter)Search 選擇啟用。
終端機與檔案terminal, process, read_file, patch執行指令並操作檔案。
瀏覽器browser_navigate, browser_snapshot, browser_vision支援文字與視覺模式的互動式瀏覽器自動化。
多媒體vision_analyze, image_generate, text_to_speech多模態分析與生成。
Agent 編排todo, clarify, execute_code, delegate_task規劃、澄清、程式碼執行,以及 subagent 委派。
記憶體與回顧memory, session_search持久化記憶體與 session 搜尋。
自動化與投遞cronjob, send_message排程任務(支援 create/list/update/pause/resume/run/remove 操作),以及外發訊息投遞。
整合服務ha_*、MCP server toolsHome Assistant、MCP 及其他整合服務。

如需查看以程式碼為基礎的完整註冊表,請參閱 內建 Tools 參考Toolsets 參考

小提醒 — Nous Tool Gateway

付費的 Nous Portal 訂閱者可以透過 Tool Gateway 使用網頁搜尋、圖片生成、TTS 與瀏覽器自動化 — 無需額外的 API 金鑰。執行 hermes model 即可啟用,或透過 hermes tools 個別設定各工具。

使用 Toolsets

# 使用指定的 toolsets
hermes chat --toolsets "web,terminal"

# 查看所有可用的 tools
hermes tools

# 針對各平台設定 tools(互動式)
hermes tools

常見的 toolsets 包括 websearchterminalfilebrowservisionimage_genmoaskillsttstodomemorysession_searchcronjobcode_executiondelegationclarifyhomeassistantmessagingspotifydiscorddiscord_admindebuggingsafe

完整的 toolset 列表請參閱 Toolsets 參考,包括平台預設值(如 hermes-clihermes-telegram)以及動態 MCP toolset(如 mcp-<server>)。

Terminal 後端

terminal 工具可以在不同的環境中執行指令:

後端說明使用情境
local在本機執行(預設)開發、受信任的任務
docker隔離的容器安全性、可重現性
ssh遠端伺服器沙箱化、避免 agent 修改自身程式碼
singularityHPC 容器叢集運算、無 root 權限
modal雲端執行Serverless、彈性擴展
daytona雲端沙箱工作區持久化的遠端開發環境

設定

# 於 ~/.hermes/config.yaml 中
terminal:
  backend: local    # 或:docker, ssh, singularity, modal, daytona
  cwd: "."          # 工作目錄
  timeout: 180      # 指令逾時時間(秒)

Docker 後端

terminal:
  backend: docker
  docker_image: python:3.11-slim

單一持久化容器,整個行程共用。 Hermes 在首次使用時會啟動一個長期運行的容器(docker run -d ... sleep 2h),並將所有 terminal、file 和 execute_code 呼叫透過 docker exec 路由到同一個容器中。工作目錄的變更、安裝的套件、環境變數的調整以及寫入 /workspace 的檔案,都會在每次工具呼叫之間保留,橫跨 /newresetdelegate_task subagent,直到 Hermes 行程結束。容器會在關閉時停止並移除。

這意味著 Docker 後端的行為就像一個持久化的沙箱虛擬機,而非每個指令都使用全新的容器。只要 pip install foo 執行過一次,該套件在整個 session 期間都會存在。如果 cd /workspace/project,後續的 ls 呼叫就會看到該目錄。完整的生命週期細節以及控制 /workspace/root 是否在 Hermes 重啟後保留的 container_persistent 標誌,請參閱 設定 → Docker 後端

SSH 後端

基於安全考量推薦使用 — agent 無法修改自身的程式碼:

terminal:
  backend: ssh
# 於 ~/.hermes/.env 中設定憑證
TERMINAL_SSH_HOST=my-server.example.com
TERMINAL_SSH_USER=myuser
TERMINAL_SSH_KEY=~/.ssh/id_rsa

Singularity/Apptainer

# 為平行 worker 預先建置 SIF
apptainer build ~/python.sif docker://python:3.11-slim

# 設定
hermes config set terminal.backend singularity
hermes config set terminal.singularity_image ~/python.sif

Modal(Serverless 雲端)

uv pip install modal
modal setup
hermes config set terminal.backend modal

容器資源

為所有容器後端設定 CPU、記憶體、磁碟和持久化選項:

terminal:
  backend: docker  # 或 singularity, modal, daytona
  container_cpu: 1              # CPU 核心數(預設:1)
  container_memory: 5120        # 記憶體,單位 MB(預設:5GB)
  container_disk: 51200         # 磁碟空間,單位 MB(預設:50GB)
  container_persistent: true    # 跨 session 持久化檔案系統(預設:true)

container_persistent: true 時,安裝的套件、檔案和設定會在跨 session 之間保留。

容器安全性

所有容器後端皆以安全性強化模式運行:

  • 只讀根檔案系統(Docker)
  • 移除所有 Linux capabilities
  • 禁止權限提升
  • PID 限制(256 個程序)
  • 完整的 namespace 隔離
  • 透過 volume 實作持久化工作區,而非可寫入的根層

Docker 可以透過 terminal.docker_forward_env 接收明確的環境變數允許清單,但被轉發的變數在容器內的指令中可見,應視為對該 session 暴露。

背景行程管理

啟動背景行程並進行管理:

terminal(command="pytest -v tests/", background=true)
# 回傳:{"session_id": "proc_abc123", "pid": 12345}

# 接著使用 process 工具進行管理:
process(action="list")       # 顯示所有執行中的行程
process(action="poll", session_id="proc_abc123")   # 檢查狀態
process(action="wait", session_id="proc_abc123")   # 阻塞直到完成
process(action="log", session_id="proc_abc123")    # 完整輸出
process(action="kill", session_id="proc_abc123")   # 終止
process(action="write", session_id="proc_abc123", data="y")  # 傳送輸入

PTY 模式(pty=true)可啟用互動式 CLI 工具,例如 Codex 和 Claude Code。

Sudo 支援

如果指令需要 sudo,系統會提示輸入密碼(在該 session 期間會被暫存)。也可以在 ~/.hermes/.env 中設定 SUDO_PASSWORD

警告

在訊息平台上,如果 sudo 失敗,輸出中會包含將 SUDO_PASSWORD 加入 ~/.hermes/.env 的提示。



技能系統