工具系统
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 集成。
工具集完整列表
以下是所有可用工具集的汇总:
| 工具集名称 | 主要工具 | 用途 |
|---|---|---|
web | web_search, web_extract | 网页搜索与内容提取 |
terminal | terminal, process | 终端命令执行与进程管理 |
file | read_file, patch | 文件读取与编辑 |
browser | browser_navigate, browser_snapshot, browser_vision | 浏览器自动化 |
vision | vision_analyze | 图像理解与分析 |
image_gen | image_generate | AI 图像生成 |
tts | text_to_speech | 文字转语音 |
todo | todo | 任务管理 |
memory | memory | 持久化记忆 |
session_search | session_search | 历史会话检索 |
cronjob | cronjob | 定时任务调度 |
code_execution | execute_code | 代码沙箱执行 |
delegation | delegate_task | 子任务委派 |
clarify | clarify | 用户确认与澄清 |
moa | — | 多智能体协作框架 |
skills | — | 技能系统集成 |
homeassistant | ha_* | 智能家居控制 |
rl | — | 强化学习反馈 |
平台预设
不同的部署平台提供不同的默认工具集组合:
hermes-cli(命令行界面)
适用于开发者日常工作,默认启用:
web, terminal, file, browser, vision, image_gen, tts, todo, memory, session_search, cronjob, code_execution, delegation, clarify, skillshermes-telegram(Telegram 机器人)
适用于对话式助手场景,默认启用:
web, vision, tts, todo, memory, session_search, skills注意:Telegram 平台出于安全考虑,默认不启用
terminal和file工具集。
指定工具集
命令行方式
通过 --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 集成。