工具系统
Hermes Agent 内置 47 种工具,分为 19 个核心工具集,覆盖文件操作、终端执行、网络浏览、搜索、图像生成等全部功能领域。
47
内置工具
19
核心工具集
5
终端后端
2
复合工具集
19 个核心工具集
| 工具集 | 说明 | 包含工具 |
|---|---|---|
browser | 网页浏览和自动化 | 网页访问、截图、DOM 交互 |
clarify | 澄清和确认 | 向用户提问、确认理解 |
code_execution | 代码执行 | 运行 Python/JS 代码片段 |
cronjob | 定时任务 | 创建/管理 cron 任务 |
delegation | 任务委派 | 子代理委派、并行执行 |
file | 文件操作 | 读写文件、目录管理 |
homeassistant | 智能家居 | Home Assistant 设备控制 |
image_gen | 图像生成 | AI 图像创建和编辑 |
memory | 记忆管理 | 读写持久化记忆 |
messaging | 消息发送 | 跨平台消息发送 |
moa | 多代理编排 | MOA(Mixture of Agents)编排 |
rl | 强化学习 | 学习循环、自我改进 |
search | 网络搜索 | 网页搜索、信息检索 |
session_search | 会话搜索 | FTS5 全文搜索历史会话 |
skills | 技能管理 | 安装/卸载/执行技能 |
terminal | 终端执行 | Shell 命令执行 |
todo | 待办事项 | 任务列表管理 |
tts | 文本转语音 | 语音合成输出 |
vision | 视觉识别 | 图像分析和理解 |
web | Web 工具 | 网页提取、API 调用 |
复合工具集
复合工具集是预定义的工具组合,简化常用场景的配置:
| 工具集 | 包含 | 说明 |
|---|---|---|
debugging | file + terminal + web | 调试场景:文件读写、命令执行、网络访问 |
safe | 只读研究/媒体工具 | 安全模式:仅限读取操作,无法修改系统 |
终端后端
Hermes Agent 支持 5 种终端后端,可根据安全需求和环境选择:
| 后端 | 说明 | 适用场景 |
|---|---|---|
local | 本地 Shell 执行 | 开发环境、桌面使用 |
docker | Docker 容器隔离执行 | 生产环境、需要沙箱隔离 |
ssh | SSH 远程执行 | 远程服务器管理 |
modal | Modal 云端执行 | 云端无服务器计算 |
daytona | Daytona 开发环境 | 远程开发工作区 |
singularity | Singularity 容器 | HPC/超级计算环境 |
Docker 容器安全配置
使用 Docker 后端时,Hermes 会应用以下安全加固措施:
yaml
# config.yaml 中的 Docker 配置
terminal:
backend: docker
docker:
image: ubuntu:22.04
security:
read_only_root: true
no_new_privileges: true
resource_limits:
memory: "512m"
cpu: "1.0"
network_mode: none # 禁止网络访问
allowed_commands: # 白名单命令
- python3
- node
- npm
- git
生产环境建议:始终使用 Docker 容器隔离来执行终端命令。启用 read_only_root、设置资源限制、使用命令白名单,最大限度降低安全风险。
后台进程
Hermes Agent 支持在后台运行长时间任务:
- 非阻塞执行:长时间运行的命令不会阻塞主对话
- 结果推送:任务完成后自动推送结果到当前会话
- 独立会话:后台任务在独立线程中运行,拥有相同的配置
- 超时控制:可配置任务超时时间
Sudo 支持
终端工具支持 sudo 权限提升,可通过配置控制:
yaml
terminal:
sudo:
enabled: true
password_env: SUDO_PASSWORD # 从环境变量读取密码
allowed_commands: # 允许 sudo 的命令
- apt install
- systemctl
- service
工具管理命令
| 命令 | 说明 |
|---|---|
/tools | 查看当前可用工具列表 |
/tools enable <name> | 启用指定工具 |
/tools disable <name> | 禁用指定工具 |
/tools list <toolset> | 列出工具集中的所有工具 |
完整的工具集参考(包括平台工具集和动态工具集)请查看 工具集参考 页面。