Toolset 参考
Toolset 是一组具名的工具打包,用来控制 agent 能做什么。它是按平台、按会话、按任务配置工具可用性的主要机制。
Toolset 如何工作
每个工具都只属于一个 toolset。当你启用某个 toolset 时,这个集合里的全部工具都会对 agent 可用。Toolset 分为三类:
- Core:单一逻辑分组的一组相关工具(例如
file打包了read_file、write_file、patch、search_files) - Composite:把多个 core toolset 组合成常见场景(例如
debugging组合了文件、终端和 Web 工具) - Platform:面向特定部署场景的完整工具配置(例如
hermes-cli是交互式 CLI 会话的默认配置)
配置 Toolset
按会话配置(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
Core Toolset
| Toolset | Tools | Purpose |
|---|---|---|
browser | browser_back, browser_cdp, browser_click, browser_console, browser_get_images, browser_navigate, browser_press, browser_scroll, browser_snapshot, browser_type, browser_vision, web_search | 完整浏览器自动化。包含 web_search 作为快速检索回退。browser_cdp 是原始 CDP 透传,仅当会话开始时存在可访问的 CDP 端点时才可见,可通过 /browser connect 或设置 browser.cdp_url 启用。 |
clarify | clarify | 当 agent 需要澄清、反馈或决策时向用户提问。 |
code_execution | execute_code | 运行可编程调用 Hermes 工具的 Python 脚本。 |
cronjob | cronjob | 创建和管理周期性任务。 |
delegation | delegate_task | 生成隔离的子 agent 实例并行工作。 |
feishu_doc | feishu_doc_read | 读取 Feishu/Lark 文档内容。用于飞书文档评论智能回复处理器。 |
feishu_drive | feishu_drive_add_comment, feishu_drive_list_comments, feishu_drive_list_comment_replies, feishu_drive_reply_comment | Feishu/Lark 云盘评论操作。仅限评论 agent 使用,不暴露给 hermes-cli 或其他消息平台 toolset。 |
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 | 仅 Web 搜索(不含提取)。 |
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 | Web 搜索与网页内容提取。 |
Composite Toolset
这些 toolset 会展开为多个 core toolset,是常见场景下更方便的简写:
| Toolset | Expands to | Use case |
|---|---|---|
debugging | web + file + process, terminal(通过 includes)—— 实际上等价于 patch, process, read_file, search_files, terminal, web_extract, web_search, write_file | 调试会话:提供文件访问、终端和 Web 研究能力,但不引入浏览器或 delegation 的额外开销。 |
safe | image_generate, vision_analyze, web_extract, web_search | 只读研究和媒体生成。不含文件写入、终端访问和代码执行。适合不受信任或受限环境。 |
Platform Toolset
平台 toolset 定义了某个部署目标的完整工具配置。大多数消息平台与 hermes-cli 使用相同集合:
| Toolset | Differences from hermes-cli |
|---|---|
hermes-cli | 完整 toolset,包含全部 36 个核心工具和 clarify。是交互式 CLI 的默认配置。 |
hermes-acp | 去掉 clarify、cronjob、image_generate、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-bluebubbles | 与 hermes-cli 相同。 |
hermes-dingtalk | 与 hermes-cli 相同。 |
hermes-feishu | 与 hermes-cli 相同。注意:feishu_doc / feishu_drive toolset 只供文档评论处理器使用,不供普通飞书聊天适配器使用。 |
hermes-qqbot | 与 hermes-cli 相同。 |
hermes-wecom | 与 hermes-cli 相同。 |
hermes-wecom-callback | 与 hermes-cli 相同。 |
hermes-weixin | 与 hermes-cli 相同。 |
hermes-homeassistant | 与 hermes-cli 相同,但始终启用 homeassistant toolset。 |
hermes-webhook | 与 hermes-cli 相同。 |
hermes-gateway | 网关内部编排 toolset,当网关需要接收任意消息源时,使用尽可能宽的工具并集。 |
Dynamic Toolset
MCP server toolset
每个已配置的 MCP server 都会在运行时生成一个 mcp-<server> toolset。比如你配置了名为 github 的 MCP server,就会生成一个 mcp-github toolset,其中包含该 server 暴露的全部工具。
# config.yaml
mcp_servers:
github:
command: npx
args: ["-y", "@modelcontextprotocol/server-github"]
这会创建一个 mcp-github toolset,你可以在 --toolsets 或平台配置中引用它。
Plugin toolset
插件可以在初始化时通过 ctx.register_tool() 注册自己的 toolset。它们会像内置 toolset 一样出现,也可以用相同方式启用或禁用。
Custom toolset
你也可以在 config.yaml 中定义自定义 toolset,创建项目专用组合:
toolsets:
- hermes-cli
custom_toolsets:
data-science:
- file
- terminal
- code_execution
- web
- vision
Wildcard
all或*:展开为所有已注册 toolset(内置 + 动态 + 插件)
与 hermes tools 的关系
hermes tools 命令提供一个基于 curses 的 UI,可按平台逐个启用或禁用工具。它操作的是工具级别,粒度比 toolset 更细,并会持久化到 config.yaml。即使某个 toolset 已启用,如果其中某些工具被显式禁用,这些工具仍然不会对 agent 可见。
另见:Tools Reference,可查看所有单独工具及其参数。