工具是扩展智能体能力的函数。它们被组织成逻辑上的工具集,可以在每个平台上启用或禁用。
Hermes Agent 附带了一个广泛的内置工具注册表,涵盖网页搜索、浏览器自动化、终端执行、文件编辑、记忆、委托、RL 训练、消息投递、Home Assistant 等。
可用工具
工具分类
| 类别 | 示例 | 说明 |
|---|---|---|
| 网页 | web_search, web_extract |
搜索网页和提取页面内容 |
| 终端和文件 | terminal, process, read_file, patch |
执行命令和操作文件 |
| 浏览器 | browser_navigate, browser_snapshot, browser_vision |
交互式浏览器自动化,支持文本和视觉 |
| 媒体 | vision_analyze, image_generate, text_to_speech |
多模态分析和生成 |
| 智能体编排 | todo, clarify, execute_code, delegate_task |
规划、澄清、代码执行和子智能体委托 |
| 记忆和召回 | memory, session_search |
持久化记忆和会话搜索 |
| 自动化和投递 | cronjob, send_message |
定时任务(创建/列表/更新/暂停/恢复/运行/删除),以及出站消息投递 |
| 集成 | ha_*, MCP 服务器工具, rl_* |
Home Assistant、MCP、RL 训练和其他集成 |
使用工具集
# 使用特定工具集
hermes chat --toolsets "web,terminal"
# 查看所有可用工具
hermes tools
# 配置每个平台的工具(交互式)
hermes tools
常用工具集包括:
web--- 网页搜索和提取terminal--- 终端命令执行file--- 文件操作browser--- 浏览器自动化vision--- 图像分析image_gen--- 图像生成skills--- 技能系统tts--- 文本转语音todo--- 任务管理memory--- 记忆系统session_search--- 会话搜索cronjob--- 定时任务code_execution--- 代码执行delegation--- 任务委托clarify--- 澄清问题homeassistant--- Home Assistant 集成rl--- 强化学习训练
平台预设: 工具集还包括平台预设,如 hermes-cli、hermes-telegram 以及动态 MCP 工具集如 mcp-<server>。
终端后端
终端工具可以在不同的环境中执行命令:
| 后端 | 说明 | 适用场景 |
|---|---|---|
local |
在本地机器运行(默认) | 开发、可信任务 |
docker |
隔离容器 | 安全、可重现性 |
ssh |
远程服务器 | 沙盒、保持 agent 远离自己的代码 |
singularity |
HPC 容器 | 集群计算、无 root |
modal |
云端执行 | 无服务器、弹性扩展 |
daytona |
云沙盒工作区 | 持久远程开发环境 |
配置
# ~/.hermes/config.yaml
terminal:
backend: local # 或: docker, ssh, singularity, modal, daytona
cwd: "." # 工作目录
timeout: 180 # 命令超时时间(秒)
Docker 后端
terminal:
backend: docker
docker_image: python:3.11-slim
SSH 后端
推荐用于安全场景------agent 无法修改自己的代码:
terminal:
backend: ssh
# 在 ~/.hermes/.env 中设置凭据
TERMINAL_SSH_HOST=my-server.example.com
TERMINAL_SSH_USER=myuser
TERMINAL_SSH_KEY=~/.ssh/id_rsa
Modal(无服务器云)
uv pip install modal
modal setup
hermes config set terminal.backend modal
容器资源
terminal:
backend: docker
container_cpu: 1 # CPU 核心数
container_memory: 5120 # 内存 MB(默认 5GB)
container_disk: 51200 # 磁盘 MB(默认 50GB)
container_persistent: true # 跨会话持久化
容器安全
所有容器后端都使用安全加固运行:
- 只读根文件系统(Docker)
- 删除所有 Linux 能力
- 无权限提升
- PID 限制(256 个进程)
- 完整命名空间隔离
- 通过卷实现持久工作区,而非可写根层
后台进程管理
启动后台进程并管理它们:
terminal(command="pytest -v tests/", background=true)
# 返回: {"session_id": "proc_abc123", "pid": 12345}
# 然后使用 process 工具管理:
process(action="list") # 显示所有运行中的进程
process(action="poll", session_id="proc_abc123") # 检查状态
process(action="wait", session_id="proc_abc123") # 阻塞直到完成
process(action="log", session_id="proc_abc123") # 完整输出
process(action="kill", session_id="proc_abc123") # 终止
process(action="write", session_id="proc_abc123", data="y") # 发送输入
PTY 模式(pty=true)启用交互式 CLI 工具如 Codex 和 Claude Code。
Sudo 支持
如果命令需要 sudo,系统会提示您输入密码(为会话缓存)。或设置 SUDO_PASSWORD 在 ~/.hermes/.env 中。
警告: 在消息平台上,如果 sudo 失败,输出会包含添加到 ~/.hermes/.env 的提示。
提示: 使用
hermes tools命令可以交互式配置每个平台启用的工具。