内置工具参考
本文档记录了 Hermes 工具注册表中的全部 47 个内置工具,按工具集分组。可用性因平台、凭证和启用的工具集而异。
快速统计: 10 个浏览器工具,4 个文件工具,10 个强化学习(RL)工具,4 个 Home Assistant 工具,2 个终端工具,2 个网络工具,以及其他工具集中共 15 个独立工具。
MCP 工具
除了内置工具外,Hermes 还可从 MCP 服务器动态加载工具。MCP 工具会以服务器名称为前缀显示(例如 github_create_issue 表示来自 github MCP 服务器的工具)。有关配置,请参阅 MCP 集成。
browser 工具集
| 工具 | 描述 | 所需环境 |
|---|---|---|
browser_back | 返回浏览器历史中的上一页。需先调用 browser_navigate。 | — |
browser_click | 点击由快照中引用 ID(如 '@e5')标识的元素。引用 ID 会在快照输出的方括号中显示。需先调用 browser_navigate 和 browser_snapshot。 | — |
browser_console | 获取当前页面的浏览器控制台输出和 JavaScript 错误。返回 console.log/warn/error/info 消息以及未捕获的 JS 异常。可用于检测静默的 JavaScript 错误、失败的 API 调用和应用警告。要求…… | — |
browser_get_images | 获取当前页面所有图片的列表及其 URL 和替代文本。有助于发现可使用视觉工具分析的图片。需先调用 browser_navigate。 | — |
browser_navigate | 在浏览器中导航至指定 URL。初始化会话并加载页面。在调用其他浏览器工具前必须先调用此工具。对于简单的信息检索,建议优先使用 web_search 或 web_extract(更快、更便宜)。当需要…… | — |
browser_press | 按下键盘上的某个键。适用于提交表单(回车键)、导航(Tab 键)或快捷键操作。需先调用 browser_navigate。 | — |
browser_scroll | 向某个方向滚动页面。用于显示当前视口下方或上方的内容。需先调用 browser_navigate。 | — |
browser_snapshot | 获取当前页面的可访问性树的文本快照。返回带有引用 ID(如 @e1, @e2)的可交互元素,供 browser_click 和 browser_type 使用。full=false(默认):紧凑视图,仅包含可交互元素;full=true:完整…… | — |
browser_type | 将文本输入到由引用 ID 标识的输入框中。先清空字段,再输入新内容。需先调用 browser_navigate 和 browser_snapshot。 | — |
browser_vision | 对当前页面进行截图,并使用视觉 AI 进行分析。当需要直观理解页面内容时使用——尤其适用于验证码、视觉验证挑战、复杂布局,或文本快照无法充分表达的情况。 | — |
clarify 工具集
| 工具 | 描述 | 所需环境 |
|---|---|---|
clarify | 在需要澄清、反馈或决策时向用户提问。支持两种模式:1. 多选题 — 提供最多 4 个选项。用户可选择其一,或通过第 5 个“其他”选项自行输入答案。2.… | — |
code_execution 工具集
| 工具 | 描述 | 所需环境 |
|---|---|---|
execute_code | 运行可程序化调用 Hermes 工具的 Python 脚本。当需要执行 3 次以上工具调用,并在调用之间进行逻辑处理,或需要在进入上下文前对大量工具输出进行过滤/归约,或需要条件分支(… | — |
cronjob 工具集
| 工具 | 描述 | 所需环境 |
|---|---|---|
cronjob | 统一的任务调度管理器。使用 action="create"、"list"、"update"、"pause"、"resume"、"run" 或 "remove" 来管理任务。支持带有技能绑定的任务,一个任务可附加一个或多个技能,且 skills=[] 在更新时会清除已附加的技能。Cron 任务在全新会话中运行,不保留当前聊天上下文。 | — |
delegation 工具集
| 工具 | 描述 | 所需环境 |
|---|---|---|
delegate_task | 启动一个或多个子代理,在隔离环境中协作完成任务。每个子代理拥有独立的对话、终端会话和工具集。最终仅返回总结结果——中间工具结果不会进入你的上下文窗口。注意:两个子代理同时运行时,系统将自动分配资源。 | — |
file 工具集
| 工具 | 描述 | 所需环境 |
|---|---|---|
patch | 对文件进行目标化的查找与替换编辑。应替代终端中的 sed/awk。采用模糊匹配(9 种策略),即使存在微小的空白或缩进差异也不会失败。返回统一格式的补丁(diff)。编辑后自动运行语法检查…… | — |
read_file | 以带行号和分页的方式读取文本文件。应替代终端中的 cat/head/tail。输出格式:'LINE_NUM|CONTENT'。若文件未找到,会建议相似名称的文件。对大文件可使用 offset 和 limit。注意:无法读取图像等二进制文件…… | — |
search_files | 搜索文件内容或按名称查找文件。应替代终端中的 grep/rg/find/ls。基于 Ripgrep,比 shell 命令更快。内容搜索(target='content'):在文件内进行正则表达式搜索。输出模式:完整匹配及行号…… | — |
write_file | 将内容写入文件,完全覆盖原有内容。应替代终端中的 echo/cat heredoc。自动创建父目录。会完全覆盖整个文件——如需局部修改,请使用 patch 工具。 | — |
homeassistant 工具集
| 工具 | 描述 | 所需环境 |
|---|---|---|
ha_call_service | 调用 Home Assistant 服务以控制设备。使用 ha_list_services 查看各域的可用服务及其参数。 | — |
ha_get_state | 获取单个 Home Assistant 实体的详细状态,包括所有属性(亮度、颜色、温度设定点、传感器读数等)。 | — |
ha_list_entities | 列出 Home Assistant 中的所有实体。可选择按域(light、switch、climate、sensor、binary_sensor、cover、fan 等)或区域名称(客厅、厨房、卧室等)过滤。 | — |
ha_list_services | 列出可用的 Home Assistant 服务(设备控制动作)。展示每种设备类型可执行的操作及其接受的参数。用于发现通过 ha_list_entities 找到的设备的控制方式。 | — |
note
Honcho 工具(honcho_conclude、honcho_context、honcho_profile、honcho_search)已不再作为内置工具提供。它们可通过 Honcho 内存提供者插件在 plugins/memory/honcho/ 获取。详见 插件 的安装与使用说明。
image_gen 工具集
| 工具 | 描述 | 所需环境 |
|---|---|---|
image_generate | 使用 FLUX 2 Pro 模型生成高质量图像,支持自动 2x 上采样。生成细节丰富、具有艺术性的图像,并自动提升分辨率以获得高清晰度效果。返回单一的上采样图像 URL。使用…… | FAL_KEY |
memory 工具集
| 工具 | 描述 | 所需环境 |
|---|---|---|
memory | 将重要信息保存到持久内存中,可在会话间持续保留。你的记忆会在每次会话开始时出现在系统提示中——这是你跨对话记住用户和环境信息的方式。何时应保存?…… | — |
messaging 工具集| 工具 | 描述 | 需要的环境变量 |
|------|-------------|----------------------|
| send_message | 向已连接的消息平台发送消息,或列出可用的目标。重要提示:当用户要求向特定频道或人员发送消息(而非仅平台名称)时,请先调用 send_message(action='list') 以查看可用目标。 | — |
moa 工具集
| 工具 | 描述 | 需要的环境变量 |
|---|---|---|
mixture_of_agents | 通过多个前沿大模型协作路由复杂问题。执行最多5次API调用(4个参考模型 + 1个聚合模型),具有最大推理能力——仅在真正困难的问题上谨慎使用。适用于:复杂数学、高级算法、多步推理等场景。 | OPENROUTER_API_KEY |
rl 工具集
| 工具 | 描述 | 需要的环境变量 |
|---|---|---|
rl_check_status | 获取训练任务的状态与指标。限速机制:同一任务两次检查之间至少需间隔30分钟。返回WandB指标:step、state、reward_mean、loss、percent_correct。 | TINKER_API_KEY, WANDB_API_KEY |
rl_edit_config | 更新配置项。请先使用 rl_get_current_config() 查看当前环境的所有可配置字段。每个环境有不同的可调参数。包括基础设施设置(tokenizer、URLs、lora_rank、learning_rate等)。 | TINKER_API_KEY, WANDB_API_KEY |
rl_get_current_config | 获取当前环境的配置信息。仅返回可修改的字段:group_size、max_token_length、total_steps、steps_per_eval、use_wandb、wandb_name、max_num_workers。 | TINKER_API_KEY, WANDB_API_KEY |
rl_get_results | 获取已完成训练任务的最终结果与指标。返回最终指标及训练权重路径。 | TINKER_API_KEY, WANDB_API_KEY |
rl_list_environments | 列出所有可用的强化学习环境。返回环境名称、路径和描述。提示:使用文件工具读取 file_path 可了解各环境的工作方式(验证器、数据加载、奖励机制等)。 | TINKER_API_KEY, WANDB_API_KEY |
rl_list_runs | 列出所有训练任务(正在进行和已完成)及其状态。 | TINKER_API_KEY, WANDB_API_KEY |
rl_select_environment | 选择一个强化学习环境用于训练。加载该环境的默认配置。选定后,请使用 rl_get_current_config() 查看设置,并使用 rl_edit_config() 进行修改。 | TINKER_API_KEY, WANDB_API_KEY |
rl_start_training | 使用当前环境和配置启动新的强化学习训练任务。大多数训练参数(如 lora_rank、learning_rate 等)为固定值。请在开始前使用 rl_edit_config() 设置 group_size、batch_size、wandb_project。警告:训练一旦开始将无法中断,除非手动停止。 | TINKER_API_KEY, WANDB_API_KEY |
rl_stop_training | 停止正在运行的训练任务。若指标表现不佳、训练停滞不前,或希望尝试不同设置时使用。 | TINKER_API_KEY, WANDB_API_KEY |
rl_test_inference | 快速推理测试任意环境。使用 OpenRouter 执行几轮推理+评分。默认:3步 × 每模型16次生成 = 每模型48次推演,测试3个模型 = 共计144次推演。用于测试环境加载、提示构造、推理流程、奖励计算等功能是否正常。 | TINKER_API_KEY, WANDB_API_KEY |
session_search 工具集
| 工具 | 描述 | 需要的环境变量 |
|---|---|---|
session_search | 搜索你长期记忆中的过往对话记录。这是你的回忆功能——每次会话历史均可检索并摘要。主动使用此工具的情况包括:- 用户说“我们之前做过这个”、“记得上次吗”、“上次的时候”等。 | — |
skills 工具集
| 工具 | 描述 | 需要的环境变量 |
|---|---|---|
skill_manage | 管理技能(创建、更新、删除)。技能是你的情境记忆——可重复使用的任务处理方法。新技能保存至 ~/.hermes/skills/;已有技能可在任意位置修改。操作包括:create(完整 SKILL.md 内容)、update(修改现有内容)、delete(移除)。 | — |
skill_view | 技能可用于加载特定任务与工作流的信息,以及脚本和模板。可加载技能的完整内容,或访问其关联文件(参考资料、模板、脚本)。首次调用返回 SKILL.md 内容及链接文件列表。 | — |
skills_list | 列出所有可用技能(名称 + 描述)。使用 skill_view(name) 加载完整内容。 | — |
terminal 工具集
| 工具 | 描述 | 需要的环境变量 |
|---|---|---|
process | 管理由 terminal(background=true) 启动的后台进程。操作包括:'list'(显示全部)、'poll'(检查状态 + 新输出)、'log'(分页显示完整输出)、'wait'(阻塞直到完成或超时)、'kill'(终止)、'write'(发送输入)。 | — |
terminal | 在 Linux 环境中执行 shell 命令。文件系统在调用间保持持久。设置 background=true 以支持长时间运行的服务。设置 notify_on_complete=true(搭配 background=true)可实现任务完成后自动通知——无需轮询。禁止使用 cat/head/tail —— 请改用 read_file。禁止使用 grep/rg/find —— 请改用 search_files。 | — |
todo 工具集
| 工具 | 描述 | 需要的环境变量 |
|---|---|---|
todo | 管理当前会话的任务清单。适用于包含3个以上步骤的复杂任务,或用户一次性提供多个任务时。不带参数调用可读取当前列表。写入方式:- 提供 'todos' 数组以创建或更新项目 - merge=... 可合并更新 | — |
vision 工具集
| 工具 | 描述 | 需要的环境变量 |
|---|---|---|
vision_analyze | 使用 AI 视觉分析图像。提供全面的图像描述,并回答关于图像内容的具体问题。 | — |
web 工具集
| 工具 | 描述 | 需要的环境变量 |
|---|---|---|
web_search | 在任何主题上搜索网络信息。返回最多5条相关结果,包含标题、URL 和摘要。 | EXA_API_KEY 或 PARALLEL_API_KEY 或 FIRECRAWL_API_KEY 或 TAVILY_API_KEY |
web_extract | 从网页 URL 中提取内容。返回 Markdown 格式的内容。也支持 PDF 链接——直接传入 PDF 链接即可转换为 Markdown 文本。小于5000字符的页面返回完整 Markdown;较大页面由 LLM 摘要。 | EXA_API_KEY 或 PARALLEL_API_KEY 或 FIRECRAWL_API_KEY 或 TAVILY_API_KEY |
tts 工具集
| 工具 | 描述 | 需要的环境变量 |
|---|---|---|
text_to_speech | 将文本转换为语音音频。返回一个 MEDIA: 路径,平台会将其作为语音消息传递。在 Telegram 上以语音气泡播放,在 Discord/WhatsApp 上作为音频附件展示。在 CLI 模式下,保存至 ~/voice-memos/。支持多种语音和提供商选项。 | — |