跳到主要内容

工具和工具集

工具是扩展 agent 能力的函数。它们被组织成逻辑工具集,可以按平台启用或禁用。

可用工具

Hermes 附带广泛的内置工具注册表,涵盖 Web 搜索、浏览器自动化、终端执行、文件编辑、内存、委托、RL 训练、消息传递交付、Home Assistant 等。

备注

Honcho 跨会话内存可作为内存 provider 插件使用(plugins/memory/honcho/),而非内置工具集。请参阅插件进行安装。

高级类别:

类别示例描述
Webweb_searchweb_extract搜索 Web 和提取页面内容。
终端和文件terminalprocessread_filepatch执行命令和操作文件。
浏览器browser_navigatebrowser_snapshotbrowser_vision带文本和视觉支持的交互式浏览器自动化。
媒体vision_analyzeimage_generatetext_to_speech多模态分析和生成。
Agent 编排todoclarifyexecute_codedelegate_task规划、澄清、代码执行和 subagent 委托。
内存和召回memorysession_search持久化内存和会话搜索。
自动化和交付cronjobsend_message带有 create/list/update/pause/resume/run/remove 操作的计划任务,加上出站消息交付。
集成ha_*、MCP 服务器工具、rl_*Home Assistant、MCP、RL 训练和其他集成。

有关权威的代码派生注册表,请参阅 内置工具参考工具集参考

使用工具集

# 使用特定工具集
hermes chat --toolsets "web,terminal"

# 查看所有可用工具
hermes tools

# 按平台配置工具(交互式)
hermes tools

常见工具集包括 webterminalfilebrowservisionimage_genmoaskillsttstodomemorysession_searchcronjobcode_executiondelegationclarifyhomeassistantrl

请参阅 工具集参考 获取完整集合,包括 hermes-clihermes-telegram 等平台预设以及 mcp-<server> 等动态 MCP 工具集。

终端后端

终端工具可以在不同环境中执行命令:

后端描述用例
local在您的机器上运行(默认)开发、受信任任务
docker隔离容器安全、可重现性
ssh远程服务器沙箱、使 agent 远离自己的代码
singularityHPC 容器集群计算、无根
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

Singularity/Apptainer

# 为并行 worker 预构建 SIF
apptainer build ~/python.sif docker://python:3.11-slim

# 配置
hermes config set terminal.backend singularity
hermes config set terminal.singularity_image ~/python.sif

Modal(无服务器云)

uv pip install modal
modal setup
hermes config set terminal.backend modal

容器资源

为所有容器后端配置 CPU、内存、磁盘和持久化:

terminal:
backend: docker # 或 singularity、modal、daytona
container_cpu: 1 # CPU 核心数(默认:1)
container_memory: 5120 # 内存 MB(默认:5GB)
container_disk: 51200 # 磁盘 MB(默认:50GB)
container_persistent: true # 跨会话持久化文件系统(默认:true)

container_persistent: true 时,安装的包、文件和配置在会话之间保留。

容器安全

所有容器后端都使用安全加固运行:

  • 只读根文件系统(Docker)
  • 删除所有 Linux capabilities
  • 无权限提升
  • PID 限制(256 个进程)
  • 完整命名空间隔离
  • 通过卷而非可写根层的持久化工作区

Docker 可以通过 terminal.docker_forward_env 选择性地接收显式 env 白名单,但转发的变量对容器内的命令可见,应被视为对该会话暴露。

后台进程管理

启动后台进程并管理它们:

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)为 Codex 和 Claude Code 等交互式 CLI 工具启用。

Sudo 支持

如果命令需要 sudo,系统会提示您输入密码(会话缓存)。或在 ~/.hermes/.env 中设置 SUDO_PASSWORD

注意

在消息平台上,如果 sudo 失败,输出包含在 ~/.hermes/.env 中添加 SUDO_PASSWORD 的提示。