Skip to content

工具系统

Hermes Agent 内置了一套强大的工具系统,包含 47 个已注册工具,分布在 37 个工具集中,涵盖网页搜索、文件操作、浏览器自动化、媒体处理、智能体编排、记忆管理等多个领域。

工具概览

Web 工具

工具名说明
web_search在互联网上执行搜索查询,返回结构化结果
web_extract从指定 URL 提取网页正文内容,支持 Markdown 格式输出

Web 工具集适用于需要实时信息的场景,例如查询最新新闻、获取文档、抓取数据等。

yaml
# 启用 web 工具集
hermes chat --toolsets "web"

终端与文件工具

工具名说明
terminal在系统终端执行 shell 命令
process管理系统进程(列出、终止等)
read_file读取本地文件内容
patch对文件应用 diff 补丁,实现精确编辑

终端与文件工具赋予 Hermes 与本地操作系统交互的能力,可执行脚本、管理文件、调试程序等。

yaml
# 启用终端和文件工具集
hermes chat --toolsets "terminal,file"

浏览器工具

工具名说明
browser_navigate控制无头浏览器访问指定 URL
browser_snapshot截取当前浏览器页面的可访问性树快照
browser_vision对当前页面截图并进行视觉分析

浏览器工具适合需要与动态网页交互的任务,例如填写表单、提取 JavaScript 渲染内容、执行端到端测试等。

yaml
hermes chat --toolsets "browser"

媒体工具

工具名说明
vision_analyze分析图像内容,支持本地路径和 URL
image_generate调用图像生成模型创建图片
text_to_speech将文本转换为语音并播放或保存
yaml
hermes chat --toolsets "vision,image_gen,tts"

智能体编排工具

工具名说明
todo创建和管理任务列表,追踪多步骤计划
clarify向用户请求澄清信息,避免歧义操作
execute_code在沙箱环境中执行代码片段
delegate_task将子任务委派给其他智能体或会话

这些工具让 Hermes 具备复杂任务分解和并行处理的能力。

yaml
hermes chat --toolsets "todo,clarify,code_execution,delegation"

记忆工具

工具名说明
memory读写持久化记忆文件(MEMORY.md / USER.md)
session_search通过全文检索搜索历史会话内容
yaml
hermes chat --toolsets "memory,session_search"

自动化工具

工具名说明
cronjob使用自然语言创建定时任务
send_message通过配置的渠道(如 Telegram)发送消息
yaml
hermes chat --toolsets "cronjob"

Home Assistant 工具

ha_* 系列工具用于与 Home Assistant 智能家居平台集成:

工具名说明
ha_get_states获取所有实体的当前状态
ha_set_state设置指定实体的状态或属性
ha_call_service调用 Home Assistant 服务
ha_get_history获取实体的历史状态记录
yaml
hermes chat --toolsets "homeassistant"

MCP 工具

通过 MCP(Model Context Protocol)集成的外部工具以 mcp_<server>_<tool> 格式命名。详细配置请参阅 MCP 集成


工具集完整列表

以下是所有可用工具集的汇总:

工具集名称主要工具用途
webweb_search, web_extract网页搜索与内容提取
terminalterminal, process终端命令执行与进程管理
fileread_file, patch文件读取与编辑
browserbrowser_navigate, browser_snapshot, browser_vision浏览器自动化
visionvision_analyze图像理解与分析
image_genimage_generateAI 图像生成
ttstext_to_speech文字转语音
todotodo任务管理
memorymemory持久化记忆
session_searchsession_search历史会话检索
cronjobcronjob定时任务调度
code_executionexecute_code代码沙箱执行
delegationdelegate_task子任务委派
clarifyclarify用户确认与澄清
moa多智能体协作框架
skills技能系统集成
homeassistantha_*智能家居控制
rl强化学习反馈

平台预设

不同的部署平台提供不同的默认工具集组合:

hermes-cli(命令行界面)

适用于开发者日常工作,默认启用:

web, terminal, file, browser, vision, image_gen, tts, todo, memory, session_search, cronjob, code_execution, delegation, clarify, skills

hermes-telegram(Telegram 机器人)

适用于对话式助手场景,默认启用:

web, vision, tts, todo, memory, session_search, skills

注意:Telegram 平台出于安全考虑,默认不启用 terminalfile 工具集。


指定工具集

命令行方式

通过 --toolsets 参数指定工具集,多个工具集用逗号分隔:

bash
# 只启用 Web 和终端工具
hermes chat --toolsets "web,terminal"

# 启用完整工具集
hermes chat --toolsets "web,terminal,file,browser,vision,image_gen,tts,todo,memory,session_search,cronjob,code_execution,delegation,clarify,skills"

# 只进行对话,不使用任何工具
hermes chat --toolsets ""

配置文件方式

~/.hermes/config.yaml 中设置默认工具集:

yaml
toolsets:
  - web
  - terminal
  - file
  - browser
  - vision
  - memory
  - todo
  - skills

结合技能预加载

工具集可以与技能系统配合使用:

bash
# 预加载技能并指定工具集
hermes -s research,coding --toolsets "web,terminal,file,browser"

工具安全与权限

Hermes 在执行高风险操作前会通过 clarify 工具向用户请求确认:

  • 删除文件或目录
  • 执行不可逆的系统命令
  • 向外部服务发送数据

可以在配置中调整自动确认行为:

yaml
# config.yaml
auto_confirm:
  terminal: false    # 终端命令需要确认
  file_delete: false # 文件删除需要确认
  web_post: true     # 自动确认 POST 请求

自定义工具(通过 MCP)

通过 MCP 协议,您可以将任意外部服务作为工具注册到 Hermes:

yaml
# config.yaml
mcp_servers:
  my_tool:
    command: python
    args: ["/path/to/my_tool_server.py"]

注册后,该服务的工具将以 mcp_my_tool_<tool_name> 格式自动可用,无需重启。详见 MCP 集成

基于 MIT 许可发布 | 由 Nous Research 开发