工具集參考
工具集是命名的工具捆綁包,用於控制 Agent(agent)可執行的操作。它們是按平臺、按會話或按任務配置工具可用性的主要機制。
工具集的工作原理
每個工具都屬於且僅屬於一個工具集。當你啟用某個工具集時,該捆綁包中的所有工具都會對 Agent 可用。工具集分為三種類型:
- 核心工具集(Core) —— 一組邏輯上相關的工具(例如,
file工具集包含read_file、write_file、patch、search_files) - 複合工具集(Composite) —— 為常見場景組合多個核心工具集(例如,
debugging工具集包含 file、terminal 和 web 工具) - 平臺工具集(Platform) —— 針對特定部署環境的完整工具配置(例如,
hermes-cli是交互式 CLI 會話的默認配置)
配置工具集
按會話(CLI)
hermes chat --toolsets web,file,terminal
hermes chat --toolsets debugging # 複合——擴展為文件+終端+網絡
hermes chat --toolsets all # 一切
按平臺(config.yaml)
toolsets:
- hermes-cli # 默認為 CLI
# - hermes-telegram # 覆蓋 Telegram gateway
交互式管理
hermes tools # 詛咒 UI 以在每個平臺上啟用 /disable
或在會話中:
/tools list
/tools disable browser
/tools enable rl
核心工具集
| 工具集 | 工具 | 用途 |
|---|---|---|
browser | browser_back, browser_click, browser_console, browser_get_images, browser_navigate, browser_press, browser_scroll, browser_snapshot, browser_type, browser_vision, web_search | 完整的瀏覽器自動化。包含 web_search 作為快速查詢的備用方案。 |
clarify | clarify | 當 Agent 需要澄清時,向用戶提問。 |
code_execution | execute_code | 運行調用 Hermes 工具的 Python 腳本。 |
cronjob | cronjob | 定時和管理重複性任務。 |
delegation | delegate_task | 為並行工作啟動隔離的子 Agent 實例。 |
file | patch, read_file, search_files, write_file | 文件讀取、寫入、搜索和編輯。 |
homeassistant | ha_call_service, ha_get_state, ha_list_entities, ha_list_services | 通過 Home Assistant 控制智能家居。僅在設置 HASS_TOKEN 時可用。 |
image_gen | image_generate | 通過 FAL.ai 實現文本到圖像生成。 |
memory | memory | 跨會話的持久化記憶管理。 |
messaging | send_message | 在會話內向其他平臺(Telegram、Discord 等)發送消息。 |
moa | mixture_of_agents | 通過多 Agent 混合(Mixture of Agents)實現多模型共識。 |
rl | rl_check_status, rl_edit_config, rl_get_current_config, rl_get_results, rl_list_environments, rl_list_runs, rl_select_environment, rl_start_training, rl_stop_training, rl_test_inference | 強化學習訓練環境管理(Atropos)。 |
search | web_search | 僅限網頁搜索(不包含內容提取)。 |
session_search | session_search | 搜索過往對話會話。 |
skills | skill_manage, skill_view, skills_list | 技能的增刪改查與瀏覽。 |
terminal | process, terminal | shell 命令執行與後臺進程管理。 |
todo | todo | 會話內的任務列表管理。 |
tts | text_to_speech | 文本轉語音音頻生成。 |
vision | vision_analyze | 通過具備視覺能力的模型進行圖像分析。 |
web | web_extract, web_search | 網頁搜索與頁面內容提取。 |
複合工具集
這些工具集會擴展為多個核心工具集,為常見場景提供便捷的簡寫方式:
| 工具集 | 擴展為 | 使用場景 |
|---|---|---|
debugging | patch, process, read_file, search_files, terminal, web_extract, web_search, write_file | 調試會話 —— 無需瀏覽器或委託開銷即可實現文件訪問、終端操作和網絡調研。 |
safe | image_generate, mixture_of_agents, vision_analyze, web_extract, web_search | 只讀研究與媒體生成。不支持文件寫入、終端訪問或代碼執行。適用於不可信或受限環境。 |
平臺工具集
平臺工具集定義了部署目標的完整工具配置。大多數消息平臺使用與 hermes-cli 相同的工具集集合:
| 工具集 | 與 hermes-cli 的差異 |
|---|---|
hermes-cli | 完整工具集 — 包含全部 38 個工具,包括 clarify。交互式 CLI 會話的默認選項。 |
hermes-acp | 移除了 clarify、cronjob、image_generate、mixture_of_agents、send_message、text_to_speech、homeassistant 等工具。專注於 IDE 環境中的編碼任務。 |
hermes-api-server | 移除了 clarify、send_message 和 text_to_speech。其餘所有工具均保留 — 適用於無法進行用戶交互的程序化訪問場景。 |
hermes-telegram | 與 hermes-cli 相同。 |
hermes-discord | 與 hermes-cli 相同。 |
hermes-slack | 與 hermes-cli 相同。 |
hermes-whatsapp | 與 hermes-cli 相同。 |
hermes-signal | 與 hermes-cli 相同。 |
hermes-matrix | 與 hermes-cli 相同。 |
hermes-mattermost | 與 hermes-cli 相同。 |
hermes-email | 與 hermes-cli 相同。 |
hermes-sms | 與 hermes-cli 相同。 |
hermes-dingtalk | 與 hermes-cli 相同。 |
hermes-feishu | 與 hermes-cli 相同。 |
hermes-wecom | 與 hermes-cli 相同。 |
hermes-weixin | 與 hermes-cli 相同。 |
hermes-bluebubbles | 與 hermes-cli 相同。 |
hermes-homeassistant | 與 hermes-cli 相同。 |
hermes-webhook | 與 hermes-cli 相同。 |
hermes-gateway | 所有消息平臺工具集的並集。在網關需要最廣泛工具集時內部使用。 |
動態工具集
MCP 服務器工具集
每個配置的 MCP 服務器會在運行時生成一個 mcp-<server> 工具集。例如,如果你配置了一個 github MCP 服務器,則會創建一個 mcp-github 工具集,其中包含該服務器暴露的所有工具。
# config.yaml
mcp:
servers:
github:
command: npx
args: ["-y", "@modelcontextprotocol/server-github"]
這將創建一個可於 --toolsets 或平臺配置中引用的 mcp-github 工具集。
插件工具集
插件可在初始化期間通過 ctx.register_tool() 註冊自己的工具集。這些工具集會與內置工具集並列顯示,並可採用相同方式啟用或禁用。
自定義工具集
在 config.yaml 中定義自定義工具集,以創建項目特定的工具組合:
toolsets:
- hermes-cli
custom_toolsets:
data-science:
- file
- terminal
- code_execution
- web
- vision
通配符
all或*— 展開為所有已註冊的工具集(內置 + 動態 + 插件)
與 hermes tools 的關係
hermes tools 命令提供了一個基於 curses 的 UI,用於按平臺逐個開啟或關閉工具。該功能作用於工具級別(比工具集更細粒度),並持久化保存至 config.yaml。即使工具集已啟用,被禁用的工具也會被過濾掉。
另請參閱:工具參考,獲取完整工具列表及其參數說明。