跳到主要内容

工具集参考

工具集是命名工具包,用于控制代理可以执行的操作。它们是配置每个平台、每次会话或每项任务中工具可用性的主要机制。

工具集的工作原理

每个工具都属于且仅属于一个工具集。启用某个工具集时,该捆绑包中的所有工具都将对代理开放。工具集分为三种类型:

  • 核心 — 一组相关的逻辑工具(例如,file 工具集包含 read_filewrite_filepatchsearch_files
  • 复合 — 组合多个核心工具集以适用于常见场景(例如,debugging 工具集包含文件、终端和 Web 工具)
  • 平台 — 特定部署上下文的完整工具配置(例如,hermes-cli 是交互式命令行会话的默认设置)

配置工具集

按会话(CLI)

hermes chat --toolsets web,file,terminal
hermes chat --toolsets debugging # 复合工具集 — 展开为 file + terminal + web
hermes chat --toolsets all # 全部工具

按平台(config.yaml)

toolsets:
- hermes-cli # CLI 的默认设置
# - hermes-telegram # Telegram 网关的覆盖设置

交互式管理

hermes tools # 基于 curses 的 UI,可按平台启用/禁用工具

或在会话中操作:

/tools list
/tools disable browser
/tools enable rl

核心工具集

工具集工具用途
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当代理需要澄清时向用户提问。
code_executionexecute_code运行调用 Hermes 工具的 Python 脚本。
cronjobcronjob计划和管理工作任务。
delegationdelegate_task启动独立的子代理实例以实现并行工作。
feishu_docfeishu_doc_read读取飞书/Lark 文档内容。由飞书文档评论智能回复处理器使用。
feishu_drivefeishu_drive_add_comment, feishu_drive_list_comments, feishu_drive_list_comment_replies, feishu_drive_reply_comment飞书/Lark 云盘评论操作。限定在评论代理范围内;未在 hermes-cli 或其他消息工具集中暴露。
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仅网络搜索(不包含内容提取)。
session_searchsession_search搜索过往对话会话。
skillsskill_manage, skill_view, skills_list技能 CRUD 浏览。
terminalprocess, terminalShell 命令执行和后台进程管理。
todotodo会话内的任务列表管理。
ttstext_to_speech文本转语音音频生成。
visionvision_analyze通过具备视觉能力的模型分析图像。
webweb_extract, web_search网络搜索和页面内容提取。

复合工具集

这些工具集会展开为多个核心工具集,为常见场景提供便捷的简写形式:

工具集展开内容用例
debuggingweb + file + process, terminal(通过 includes)— 实际上是 patch, process, read_file, search_files, terminal, web_extract, web_search, write_file调试会话 — 无需浏览器或委托开销即可访问文件、终端和网络研究。
safeimage_generate, vision_analyze, web_extract, web_search只读研究和媒体生成。无文件写入、无终端访问、无代码执行。适用于不信任或受限的环境。

平台工具集

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

工具集hermes-cli 的区别
hermes-cli完整工具集 — 包含所有 36 个核心工具,包括 clarify。交互式命令行会话的默认设置。
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 工具集仅由文档评论处理器使用,而不是常规飞书聊天适配器。
hermes-qqbothermes-cli 相同。
hermes-wecomhermes-cli 相同。
hermes-wecom-callbackhermes-cli 相同。
hermes-weixinhermes-cli 相同。
hermes-homeassistanthermes-cli 相同,并始终启用 homeassistant 工具集。
hermes-webhookhermes-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。即使其工具集被启用,被禁用的工具也会被过滤掉。

另见:工具参考 获取所有单个工具及其参数的完整列表。