工具與終端機後端
工具(tool)是代理能呼叫的函式:讀寫檔案、執行指令、上網搜尋、看圖、排程等。工具被分成工具集(toolset),可以依平台開關。另外還有一個關鍵設定:終端機後端,決定指令實際在哪裡執行,也是安全的第一道防線。
工具集
主要的工具集包括:
| 類別 | 工具集 |
|---|---|
| 上網 | web、search、browser |
| 檔案與執行 | terminal、file、code_execution |
| 多媒體 | vision、image_gen、tts |
| 代理能力 | memory、session_search、skills、todo、delegation、clarify、cronjob |
| 整合 | messaging、homeassistant、spotify、discord |
開關的方式:
在對話中用 /tools 查看目前可用的工具。
終端機後端
terminal 工具的指令預設在你的機器上執行(local)。改成其他後端,就能把代理關進容器或送到遠端:
| 後端 | 指令在哪裡執行 | 適合 |
|---|---|---|
local |
你的機器 | 開發、個人使用 |
docker |
持久容器 | 安全沙箱、對外服務的 Gateway |
ssh |
遠端伺服器 | 遠端開發、強大硬體 |
singularity |
容器 | HPC 叢集、共用主機 |
modal |
雲端沙箱 | 臨時的雲端運算 |
daytona |
託管工作區 | 雲端開發環境 |
vercel_sandbox |
雲端 microVM | 需要持久化的雲端執行 |
在 ~/.hermes/config.yaml 設定,也可一行切換:
Docker 範例:
terminal:
backend: docker
docker_image: "nikolaik/python-nodejs:python3.11-nodejs20"
container_cpu: 1
container_memory: 5120 # MB
container_persistent: true
local 沒有隔離
local 後端代表代理擁有你的使用者權限,能讀寫你能讀寫的檔案。個人電腦上請保持危險指令核准開啟;如果會讓別人(例如透過聊天軟體)使用,請看 安全與部署 並改用容器後端。
背景程序
耗時的指令(伺服器、長時間編譯)可以用 background=true 丟到背景,再用 process 工具管理:
process(action="list") # 目前有哪些背景程序
process(action="poll", session_id="...") # 檢查狀態
process(action="wait", session_id="...") # 等它結束
process(action="log", session_id="...") # 取得輸出
process(action="kill", session_id="...") # 終止
這些是代理內部呼叫的工具語法,你通常只需要用白話請它「把這個跑在背景」。
延伸
- MCP:連接外部工具伺服器,擴充工具集
- Browser:網頁自動化
- Delegation:派出隔離的子代理處理子任務
- 完整清單:官方 Tools Reference