Hermes disabled_toolsets 对照表
(鲸鱼是哺乳动物,不是鱼)
最近在折腾hermes配置时频繁地在hermes工具使用上栽跟头,主要是这个默认的
disabled_toolsets禁用的东西太多了,还会出现交叉禁用的情况(比如coding项禁用了terminal,然后terminal项也禁用了terminal,光在配置项设置没用,还得关闭禁用项,然后关闭禁用项又得关全(比如我之前删了terminal项,还是死活没用,官方文档又从来不提这件事,问AI也东拉西扯找不到重点。结果排查了一个多小时才发现coding项也会禁用,太坑了)。所以我觉得非常有必要把这个坑给填了,直接列出所有项及其对应关系,到时候就好找了(丢给AI看也方面)
本表来自 hermes-agent/toolsets.py 与工具注册源码,用来解释 ~/.hermes/config.yaml 里的:
agent:
disabled_toolsets:
- web
- search
到底会屏蔽哪些工具。
1. 理清机制
Hermes 的工具集启用流程大致是:
platform_toolsets / toolsets 先展开成具体工具
↓
agent.disabled_toolsets 再按 toolset 展开,并做减法
↓
剩下的工具才注册给模型
所以 disabled_toolsets 是最后一道全局减法。它可以把已经通过 platform_toolsets 启用的工具再扣掉。
这就是为什么可能会遇到:
platform_toolsets:
cli:
- web
agent:
disabled_toolsets:
- search
最终结果却是:
web_extract 有
web_search 没有
因为:
web -> web_search + web_extract
search -> web_search
先启用 web,再禁用 search,最后就只剩 web_extract。
2. 最容易踩坑的项
| disabled 项 | 会屏蔽 | 容易误伤 |
|---|---|---|
search |
web_search |
会把 web 和 browser 里附带的 web_search 也扣掉 |
web |
web_search, web_extract |
Web 搜索和网页抽取都没了 |
browser |
所有 browser_* 工具,以及 web_search |
即使 web 开着,也可能影响 web_search 的来源组合 |
terminal |
terminal, process |
终端执行和进程管理都没了 |
file |
read_file, write_file, patch, search_files |
文件读写和搜索全没 |
vision |
vision_analyze |
图片理解没了 |
image_gen |
image_generate |
图片生成没了 |
code_execution |
execute_code |
Python 工具编排没了 |
delegation |
delegate_task |
子代理没了 |
memory |
memory |
记忆工具没了 |
session_search |
session_search |
不能搜历史会话 |
clarify |
clarify |
Agent 不能用工具形式问澄清问题 |
3. 基础工具集对照表
这些是 toolsets.py 里直接定义的 leaf toolsets。禁用它们会直接移除对应工具。
| disabled 项 | 会屏蔽的工具 | 说明 |
|---|---|---|
web |
web_search, web_extract |
Web 搜索与网页抽取 |
search |
web_search |
只屏蔽 Web 搜索,不屏蔽 web_extract |
x_search |
x_search |
X / Twitter 搜索 |
vision |
vision_analyze |
图片分析 |
video |
video_analyze |
视频分析 |
image_gen |
image_generate |
图片生成 |
video_gen |
video_generate |
视频生成 |
computer_use |
computer_use |
桌面控制 / Computer Use |
terminal |
terminal, process |
命令执行与进程管理 |
skills |
skills_list, skill_view, skill_manage |
Skills 列表、查看、管理 |
browser |
browser_navigate, browser_snapshot, browser_click, browser_type, browser_scroll, browser_back, browser_press, browser_get_images, browser_vision, browser_console, browser_cdp, browser_dialog, web_search |
浏览器自动化;注意它也包含 web_search |
cronjob |
cronjob |
定时任务管理 |
file |
read_file, write_file, patch, search_files |
文件读写、补丁、搜索 |
tts |
text_to_speech |
文本转语音 |
todo |
todo |
任务计划 |
memory |
memory |
记忆 |
context_engine |
无静态工具 | 运行时 context engine 工具入口;具体取决于 active context engine |
session_search |
session_search |
历史会话搜索 |
project |
project_list, project_create, project_switch |
桌面 Projects,通常只在 GUI 有意义 |
clarify |
clarify |
澄清问题 |
code_execution |
execute_code |
Python 代码执行 / 工具编排 |
delegation |
delegate_task |
子代理委派 |
homeassistant |
ha_list_entities, ha_get_state, ha_list_services, ha_call_service |
Home Assistant |
kanban |
kanban_show, kanban_list, kanban_complete, kanban_block, kanban_heartbeat, kanban_comment, kanban_create, kanban_link, kanban_unblock |
Kanban 多代理协作 |
discord |
discord |
Discord 普通读写参与工具 |
discord_admin |
discord_admin |
Discord 管理工具 |
yuanbao |
yb_query_group_info, yb_query_group_members, yb_send_dm, yb_search_sticker, yb_send_sticker |
Yuanbao 平台工具 |
feishu_doc |
feishu_doc_read |
飞书 / Lark 文档读取 |
feishu_drive |
feishu_drive_list_comments, feishu_drive_list_comment_replies, feishu_drive_reply_comment, feishu_drive_add_comment |
飞书 / Lark 云文档评论操作 |
spotify |
spotify_playback, spotify_devices, spotify_queue, spotify_search, spotify_playlists, spotify_albums, spotify_library |
Spotify |
4. 组合工具集对照表
组合工具集会展开自身工具和 includes 的工具。禁用组合工具集时,会把展开后的工具都扣掉。
| disabled 项 | 会屏蔽的工具 | 说明 |
|---|---|---|
debugging |
terminal, process, web_search, web_extract, read_file, write_file, patch, search_files |
包含 terminal + web + file |
safe |
web_search, web_extract, vision_analyze, image_generate |
包含 web + vision + image_gen |
coding |
web_search, web_extract, terminal, process, read_terminal, read_file, write_file, patch, search_files, vision_analyze, skills_list, skill_view, skill_manage, browser_navigate, browser_snapshot, browser_click, browser_type, browser_scroll, browser_back, browser_press, browser_get_images, browser_vision, browser_console, browser_cdp, browser_dialog, todo, memory, session_search, clarify, execute_code, delegate_task |
Coding posture 工具集,禁用它会扣一大批开发常用工具 |
通常不建议把组合工具集写进 disabled_toolsets,除非你很明确知道它会展开扣掉什么。
5. 平台 bundle 特例
hermes-cli、hermes-telegram、hermes-discord 等是平台 bundle。它们通常用于 toolsets 或 platform_toolsets,不太应该放进 disabled_toolsets。
源码里对 hermes-* 有特殊保护:禁用 platform bundle 时,不会直接把所有核心工具都扣光,而是只扣该 bundle 相对核心工具的“额外差集”。
| disabled 项 | 特殊行为 |
|---|---|
hermes-cli |
核心工具会被保护,通常不会像普通组合那样全扣 |
hermes-cron |
同上 |
hermes-telegram |
同上 |
hermes-discord |
主要会扣 Discord 额外工具:discord, discord_admin |
hermes-feishu |
主要会扣 Feishu 额外工具:feishu_doc_read, feishu_drive_* |
hermes-yuanbao |
主要会扣 Yuanbao 额外工具:yb_* |
其他 hermes-* 平台 bundle |
同样按“非核心差集”处理 |
建议:不要用 disabled_toolsets 禁用 hermes-*。如果要控制平台工具,优先改:
platform_toolsets:
cli:
- browser
- file
- terminal
- web
6. 运行时注册 / 插件工具集
有些工具集不是静态写在 TOOLSETS 主表里,而是由工具或插件运行时注册。禁用它们也可能有效,但是否出现取决于插件、平台、依赖和环境。
当前源码里能看到的典型项:
| disabled 项 | 会屏蔽的工具 | 来源 |
|---|---|---|
browser-cdp |
browser_cdp, browser_dialog |
tools/browser_cdp_tool.py, tools/browser_dialog_tool.py 注册时使用 |
google_meet |
Google Meet 插件工具 | plugins/google_meet 插件启用后注册 |
| MCP server 名称 | 对应 MCP server 暴露的工具 | MCP 运行时注册,名字取决于 mcp_servers 配置 |
| 插件 toolset 名 | 插件注册的工具 | 用户安装或内置插件决定 |
注意:browser 静态工具集里已经包含 browser_cdp 和 browser_dialog,但工具注册本身也标了 browser-cdp。实际是否暴露还会受 CDP 可用性 check_fn 影响。