字
字节笔记本
2026年6月22日
hermes教程-工具集参考
API中转
¥120
工具集工作原理
工具集是命名的工具捆绑包,用于控制代理能做什么。它们是按平台、按会话或按任务配置工具可用性的主要机制。
每个工具恰好属于一个工具集。当你启用一个工具集时,该捆绑包中的所有工具都对代理可用。工具集分为三种类型:
- 核心(Core) — 一个单一的逻辑相关工具组(例如,
file捆绑了read_file、write_file、patch、search_files) - 复合(Composite) — 为常见场景组合多个核心工具集(例如,
debugging捆绑了文件、终端和网络工具) - 平台(Platform) — 针对特定部署上下文的完整工具配置(例如,
hermes-cli是交互式 CLI 会话的默认配置)
配置工具集
按会话(CLI)
bash
hermes chat --toolsets web,file,terminal
hermes chat --toolsets debugging # 复合 — 展开为 file + terminal + web
hermes chat --toolsets all # 全部按平台(config.yaml)
yaml
toolsets:
- hermes-cli # CLI 的默认配置
## - hermes-telegram # 覆盖 Telegram 网关的配置交互式管理
bash
hermes tools # 基于 curses 的 UI,用于按平台启用/禁用或在会话中:
text
/tools list
/tools disable browser
/tools enable homeassistant核心工具集
| 工具集 | 工具 | 用途 |
|---|---|---|
browser | browser_back, browser_cdp, browser_click, browser_console, browser_dialog, browser_get_images, browser_navigate, browser_press, browser_scroll, browser_snapshot, browser_type, browser_vision, web_search | 核心浏览器自动化。包含 web_search 作为快速查找的备用方案。browser_cdp 和 browser_dialog 在运行时受控——仅在会话启动时 CDP 端点可达时注册(通过 /browser connect、browser.cdp_url 配置、Browserbase 或 Camofox)。browser_dialog 与 browser_snapshot 在附加了 CDP 监管器时添加的 pending_dialogs 和 frame_tree 字段协同工作。 |
clarify | clarify | 当代理需要澄清时向用户提问。 |
code_execution | execute_code | 运行 Python 脚本,以编程方式调用 Hermes 工具。 |
cronjob | cronjob | 调度和管理重复性任务。 |
debugging | 复合(file + terminal + web) | 调试捆绑包——文件、进程/终端、网络提取/搜索。 |
delegation | delegate_task | 生成隔离的子代理实例以进行并行工作。 |
discord | discord | 核心 Discord 文本/嵌入/DM 操作(仅限网关)。在 hermes-discord 工具集上激活。 |
discord_admin | discord_admin | Discord 管理(封禁、角色变更、频道管理)。在 hermes-discord 工具集上激活;要求机器人拥有相关的 Discord 权限。 |
feishu_doc | feishu_doc_read | 读取飞书/Lark 文档内容。由飞书文档评论智能回复处理器使用。 |
feishu_drive | feishu_drive_add_comment, feishu_drive_list_comments, feishu_drive_list_comment_replies, feishu_drive_reply_comment | 飞书/Lark 云盘评论操作。限定在评论代理范围内;不在 hermes-cli 或其他消息工具集上暴露。 |
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 时可用。 |
computer_use | computer_use | 通过 cua-driver 进行后台 macOS 桌面控制——不会抢占光标/焦点。适用于任何支持工具的模型。仅限 macOS;需要 cua-driver 在 $PATH 中。 |
context_engine | (可变) | 由活跃的上下文引擎插件暴露的运行时工具(在插件填充之前为空)。 |
image_gen | image_generate | 通过 FAL.ai 进行文本到图像生成(可选择 OpenAI / xAI 后端)。 |
video_gen | video_generate | 通过插件注册的后端(xAI Grok-Imagine、FAL.ai Veo 3.1 / Pixverse v6 / Kling O3)进行文本到视频和图像到视频生成。传递 image_url 以动画化图像;省略则进行文本到视频。 |
kanban | kanban_block, kanban_comment, kanban_complete, kanban_create, kanban_heartbeat, kanban_link, kanban_list, kanban_show, kanban_unblock | 多代理协调工具。为调度器生成的任务工作器(HERMES_KANBAN_TASK)以及显式列出 kanban 工具集名称的配置文件注册(all/* 通配符不会启用它)。工作器标记任务完成、阻塞、心跳、评论以及创建/链接后续任务;编排器配置文件额外获得看板路由工具,如 list/unblock。 |
memory | memory | 跨会话持久化内存管理。 |
messaging | send_message | 从会话内向其他平台(Telegram、Discord 等)发送消息。 |
moa | mixture_of_agents | 通过混合代理实现多模型共识。 |
safe | image_generate, vision_analyze, web_extract, web_search(通过 includes) | 只读研究 + 媒体生成。无文件写入,无终端,无代码执行。 |
search | web_search | 仅网络搜索(无提取)。 |
session_search | session_search | 搜索过去的对话会话。 |
skills | skill_manage, skill_view, skills_list | 技能 CRUD 和浏览。 |
spotify | spotify_albums, spotify_devices, spotify_library, spotify_playback, spotify_playlists, spotify_queue, spotify_search | 原生 Spotify 控制(播放、队列、搜索、播放列表、专辑、库)。由捆绑的 spotify 插件注册。 |
terminal | process, terminal | Shell 命令执行和后台进程管理。 |
todo | todo | 会话内的任务列表管理。 |
tts | text_to_speech | 文本到语音音频生成。 |
vision | vision_analyze | 通过视觉能力模型进行图像分析。 |
video | video_analyze | 视频分析和理解工具(可选,不在默认工具集中——通过 --toolsets 显式添加)。 |
web | web_extract, web_search | 网络搜索和页面内容提取。 |
x_search | x_search | 通过 xAI 内置的 x_search Responses 工具搜索 X(Twitter)帖子和线程。默认关闭;通过 hermes tools 选择加入。仅当配置了 xAI 凭据(SuperGrok OAuth 或 XAI_API_KEY)时注册模式。 |
yuanbao | yb_query_group_info, yb_query_group_members, yb_search_sticker, yb_send_dm, yb_send_sticker | 元宝 DM/群组操作和贴纸搜索。仅在 hermes-yuanbao 上注册。 |
平台工具集
平台工具集定义了部署目标的完整工具配置。大多数消息平台使用与 hermes-cli 相同的集合:
| 工具集 | 与 hermes-cli 的差异 |
|---|---|
hermes-cli | 完整工具集——交互式 CLI 会话的默认配置。包含 file、terminal、web、browser、memory、skills、vision、image_gen、todo、tts、delegation、code_execution、cronjob、session_search、clarify 和 safe(只读)捆绑包,以及标准消息工具。 |
hermes-acp | 移除 clarify、cronjob、image_generate、send_message、text_to_speech 以及所有四个 Home Assistant 工具。专注于 IDE 上下文中的编码任务。 |
hermes-api-server | 移除 clarify、send_message 和 text_to_speech。保留其他所有内容——适用于无法进行用户交互的程序化访问。 |
hermes-cron | 与 hermes-cli 相同。 |
hermes-telegram | 与 hermes-cli 相同。 |
hermes-discord | 在 hermes-cli 基础上添加 discord 和 discord_admin。 |
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 | 添加五个 feishu_doc_* / feishu_drive_* 工具(仅由文档评论处理器使用,而非常规聊天适配器)。 |
hermes-qqbot | 与 hermes-cli 相同。 |
hermes-wecom | 与 hermes-cli 相同。 |
hermes-wecom-callback | 与 hermes-cli 相同。 |
hermes-weixin | 与 hermes-cli 相同。 |
hermes-yuanbao | 在 hermes-cli 基础上添加五个 yb_* 工具(DM/群组/贴纸)。 |
hermes-homeassistant | 与 hermes-cli 相同(Home Assistant 工具默认已存在,并在设置 HASS_TOKEN 时激活)。 |
hermes-webhook | 与 hermes-cli 相同。 |
hermes-gateway | 内部网关编排器工具集——所有 hermes-<platform> 工具集的并集;当网关需要接受任何消息源时使用。 |
动态工具集
MCP 服务器工具集
每个配置的 MCP 服务器在运行时生成一个 mcp-<server> 工具集。例如,如果你配置了一个 github MCP 服务器,则会创建一个 mcp-github 工具集,包含该服务器暴露的所有工具。
yaml
## config.yaml
mcp_servers:
github:
command: npx
args: ["-y", "@modelcontextprotocol/server-github"]这将创建一个 mcp-github 工具集,你可以在 --toolsets 或平台配置中引用它。
插件工具集
插件可以在初始化期间通过 ctx.register_tool() 注册自己的工具集。这些工具集与内置工具集一起出现,并且可以以相同的方式启用/禁用。
自定义工具集
在 config.yaml 中定义自定义工具集,以创建项目特定的捆绑包:
yaml
toolsets:
- hermes-cli
custom_toolsets:
data-science:
- file
- terminal
- code_execution
- web
- vision通配符
all或*— 展开为所有已注册的工具集(内置 + 动态 + 插件)
少数工具在工具集成员资格之外还有一个额外的可用性检查,并且不会仅通过 all/* 启用:
- 能力受限的工具(browser、
computer_use、code_execution、Feishu、Home Assistant、cronjob)仅在其后端/凭据前提条件配置后才会出现。 - 工作流受限的工具——
kanban工具集——是故意选择加入的。all/*不会启用 kanban;你必须显式列出kanban(或者是设置了HERMES_KANBAN_TASK的调度器生成的工作器)。Kanban 工具会改变共享看板状态,因此即使在all下也默认保持关闭。
与 hermes tools 的关系
hermes tools 命令提供了一个基于 curses 的 UI,用于按平台切换单个工具的开关。它在工具级别(比工具集更细粒度)操作,并持久化到 config.yaml。即使其工具集已启用,被禁用的工具也会被过滤掉。
另请参阅:工具参考 以获取单个工具及其参数的完整列表。
分享: