跳到主要内容

Toolset 参考

Toolset 是一组具名的工具打包,用来控制 agent 能做什么。它是按平台、按会话、按任务配置工具可用性的主要机制。

Toolset 如何工作

每个工具都只属于一个 toolset。当你启用某个 toolset 时,这个集合里的全部工具都会对 agent 可用。Toolset 分为三类:

  • Core:单一逻辑分组的一组相关工具(例如 file 打包了 read_filewrite_filepatchsearch_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

ToolsetToolsPurpose
browserbrowser_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 启用。
clarifyclarify当 agent 需要澄清、反馈或决策时向用户提问。
code_executionexecute_code运行可编程调用 Hermes 工具的 Python 脚本。
cronjobcronjob创建和管理周期性任务。
delegationdelegate_task生成隔离的子 agent 实例并行工作。
feishu_docfeishu_doc_read读取 Feishu/Lark 文档内容。用于飞书文档评论智能回复处理器。
feishu_drivefeishu_drive_add_comment, feishu_drive_list_comments, feishu_drive_list_comment_replies, feishu_drive_reply_commentFeishu/Lark 云盘评论操作。仅限评论 agent 使用,不暴露给 hermes-cli 或其他消息平台 toolset。
filepatch, read_file, search_files, write_file文件读取、写入、搜索与编辑。
homeassistantha_call_service, ha_get_state, ha_list_entities, ha_list_services通过 Home Assistant 控制智能家居。仅在设置了 HASS_TOKEN 时可用。
image_genimage_generate通过 FAL.ai 进行文生图。
memorymemory跨会话持久化记忆管理。
messagingsend_message在会话中向其他平台发送消息(Telegram、Discord 等)。
moamixture_of_agents通过 Mixture of Agents 做多模型共识。
rlrl_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_inferenceRL 训练环境管理(Atropos)。
searchweb_search仅 Web 搜索(不含提取)。
session_searchsession_search搜索过往会话。
skillsskill_manage, skill_view, skills_list技能的增删改查与浏览。
terminalprocess, terminalShell 命令执行与后台进程管理。
todotodo会话内任务列表管理。
ttstext_to_speech文本转语音。
visionvision_analyze通过视觉模型分析图片。
webweb_extract, web_searchWeb 搜索与网页内容提取。

Composite Toolset

这些 toolset 会展开为多个 core toolset,是常见场景下更方便的简写:

ToolsetExpands toUse case
debuggingweb + file + process, terminal(通过 includes)—— 实际上等价于 patch, process, read_file, search_files, terminal, web_extract, web_search, write_file调试会话:提供文件访问、终端和 Web 研究能力,但不引入浏览器或 delegation 的额外开销。
safeimage_generate, vision_analyze, web_extract, web_search只读研究和媒体生成。不含文件写入、终端访问和代码执行。适合不受信任或受限环境。

Platform Toolset

平台 toolset 定义了某个部署目标的完整工具配置。大多数消息平台与 hermes-cli 使用相同集合:

ToolsetDifferences from hermes-cli
hermes-cli完整 toolset,包含全部 36 个核心工具和 clarify。是交互式 CLI 的默认配置。
hermes-acp去掉 clarifycronjobimage_generatesend_messagetext_to_speech 以及 homeassistant 工具,更聚焦 IDE 里的编码任务。
hermes-api-server去掉 clarifysend_messagetext_to_speech,其余都保留,适合无法直接与用户交互的程序化访问场景。
hermes-telegramhermes-cli 相同。
hermes-discordhermes-cli 相同。
hermes-slackhermes-cli 相同。
hermes-whatsapphermes-cli 相同。
hermes-signalhermes-cli 相同。
hermes-matrixhermes-cli 相同。
hermes-mattermosthermes-cli 相同。
hermes-emailhermes-cli 相同。
hermes-smshermes-cli 相同。
hermes-bluebubbleshermes-cli 相同。
hermes-dingtalkhermes-cli 相同。
hermes-feishuhermes-cli 相同。注意:feishu_doc / feishu_drive toolset 只供文档评论处理器使用,不供普通飞书聊天适配器使用。
hermes-qqbothermes-cli 相同。
hermes-wecomhermes-cli 相同。
hermes-wecom-callbackhermes-cli 相同。
hermes-weixinhermes-cli 相同。
hermes-homeassistanthermes-cli 相同,但始终启用 homeassistant toolset。
hermes-webhookhermes-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,可查看所有单独工具及其参数。