工具集参考
工具集是命名的工具组合,用于控制代理(agent)可执行的操作。它们是按平台、会话或任务配置工具可用性的主要机制。
工具集的工作原理
每个工具都属于且仅属于一个工具集。启用某个工具集后,该组合中的所有工具都会对代理可用。工具集分为三种类型:
- 核心工具集 — 一组逻辑上相关的工具(例如,
file包含read_file、write_file、patch、search_files) - 复合工具集 — 将多个核心工具集组合起来,以支持常见场景(例如,
debugging组合了文件、终端和网络工具) - 平台工具集 — 针对特定部署环境的完整工具配置(例如,
hermes-cli是交互式 CLI 会话的默认设置)
配置工具集
按会话(CLI)
hermes chat --toolsets web,file,terminal
hermes chat --toolsets debugging # composite — expands to file + terminal + web
hermes chat --toolsets all # everything
按平台(config.yaml)
toolsets:
- hermes-cli # default for CLI
# - hermes-telegram # override for Telegram gateway
交互式管理
hermes tools # curses UI to enable/disable per platform
或在会话中:
/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 | 当代理需要澄清时,向用户提问。 |
code_execution | execute_code | 运行可调用 Hermes 工具的 Python 脚本。 |
cronjob | cronjob | 安排并管理重复性任务。 |
delegation | delegate_task | 启动隔离的子代理实例以并行工作。 |
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 | 多模型共识机制(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 | RL 训练环境管理(Atropos)。 |
search | web_search | 仅限网络搜索(不包含内容提取)。 |
session_search | session_search | 搜索过往对话会话记录。 |
skills | skill_manage、skill_view、skills_list | 技能的创建、读取、更新与删除(CRUD)及浏览。 |
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。即使工具集已启用,被禁用的工具也会被过滤掉。
另请参阅:工具参考,获取完整的独立工具列表及其参数说明。