AI 编程教程中文版
官方教程中文版使用手册

配置工具系统和终端后端

理解 Hermes tools、toolsets、Nous Tool Gateway、terminal backends、后台进程和权限边界。

打开工具后,Hermes Agent 就不只是聊天。它可以搜索网页、抽取页面、读写文件、运行命令、操作浏览器、写记忆、检索历史 session、创建 cron、发消息、调 Home Assistant、接 MCP(模型上下文协议),甚至启动子代理或 RL(强化学习)任务——能力越多,权限边界越需要刻意设计。

官方资料:Tools & ToolsetsToolsets ReferenceTools ReferenceSecurityDocker Backend

先给结论Toolset(工具集)决定 Hermes 能调用哪些能力terminal backend(终端后端)决定命令在哪里执行。先按任务开最小 toolset,再按风险选择 local / docker / ssh / 云 sandbox——两件事独立配置,互不替代。

三个核心概念

  • Tool(工具):单个外部能力,例如 terminal(执行 shell)、read_file(读文件)、patch(改文件)、web_search(搜网页)。
  • Toolset(工具集):按场景打包的一组 tools,例如 web(网页类)、terminal(执行类)、file(文件类)、browser(浏览器类)、memory(记忆类)。这是配置的最小单元,按 toolset 整体启停。
  • Terminal backend(终端后端)terminal / file / code execution 工具实际运行的环境——共 7 种:local(本机)、Docker(容器)、SSH(远程主机)、Daytona、Modal、Singularity、Vercel Sandbox。

不要把 toolset 和 backend 混在一起terminal toolset 打开后,命令依然可能跑在本机、容器、远程服务器或云环境里——这两件事得分别决策。一句"我开了 terminal" 不等于"我知道命令在哪跑"。

工具分类

Web

web_search、web_extract,用于外部事实核验和网页抽取。

Terminal & Files

terminal、process、read_file、patch,负责命令执行和文件修改。

Browser

browser_navigate、browser_snapshot、browser_vision,用于页面交互和视觉检查。

Media

vision_analyze、image_generate、text_to_speech,处理多模态输入输出。

Agent orchestration

todo、clarify、execute_code、delegate_task,用于计划、澄清、代码执行和子代理。

Memory & recall

memory、session_search,用于长期记忆和历史会话检索。

Automation & delivery

cronjob、send_message,用于定时任务和消息投递。

Integrations

Home Assistant、MCP、RL training 和其他插件扩展。

Honcho(AI 原生用户建模插件,Nous Research 推荐)的 cross-session memory(跨会话记忆)是 memory provider plugin(记忆插件),不是内置 toolset。需要 Honcho 时按 memory provider(记忆插件)路线安装和配置。

Nous Tool Gateway

官方文档说明,付费 Nous Portal 用户可以通过 Nous Tool Gateway 使用 web search、image generation、TTS 和 browser automation,而不需要分别配置每个第三方 API key。

这解决的是“工具供应商凭据”问题,不解决“工具权限边界”问题。即使工具来自 Gateway,你仍然要决定哪些平台能用 browser、terminal、file、cronjob、send_message。

按任务开 toolset

可以按这个顺序判断:

查外部资料      -> web/search
读写项目文件    -> file
跑测试或脚本    -> terminal
操作网页        -> browser
沉淀流程        -> skills
长期上下文      -> memory/session_search
周期任务        -> cronjob
跨平台发消息    -> messaging/send_message
并行任务        -> delegation

如果说不清为什么要开某个 toolset,先不要开。最小 toolset 的价值是让失败更容易定位。

Terminal backend 怎么选

local

可信个人项目、只读检查和低风险命令。最快,但没有隔离。

docker

不信任脚本、临时依赖、可复现环境。注意容器是进程内持久共享的。

ssh

远程服务器、隔离主机、VPS 或远程硬件。

singularity

HPC 和共享机器上的 rootless container 场景。

modal / daytona

云端 sandbox(隔离沙箱)、临时算力或远程持久 workspace(工作区);闲置免费、按需启动。

vercel_sandbox

Vercel microVM(微型虚拟机),支持 snapshot-backed(快照支持的)云端执行环境。

本机小任务用 local,不可信任务用 docker,远程资源用 ssh,长期云端执行再考虑 Modal、Daytona 或 Vercel Sandbox。

后台进程

Hermes 可以启动后台任务,并用 process tool 管理:

terminal(command="pytest -v tests/", background=true)
process(action="list")
process(action="poll", session_id="proc_abc123")
process(action="log", session_id="proc_abc123")
process(action="kill", session_id="proc_abc123")

适合后台化的任务:

  • 测试套件。
  • 本地 dev server。
  • 长时间日志观察。
  • 非破坏性批处理。

不适合直接后台化的任务:

  • 删除数据。
  • 数据库迁移。
  • 发布生产环境。
  • 账单、权限、用户数据相关命令。

后台不是降低风险,只是让任务离开当前交互视线。越是后台任务,越要有日志、停止方式和超时。

Sudo 和密钥

需要 sudo 时,Hermes 会提示输入密码并在当前 session 内缓存。消息平台上不要发送密码。长期自动化如果必须使用 SUDO_PASSWORD,只能放在本地 .env 或安全凭据系统里,并明确它会暴露给对应 session 的命令执行环境。

环境变量转发也要收窄。Docker、SSH、云 sandbox 里只转发当前任务真正需要的变量。不要把全量 .env 直接透传给 agent 命令。

最小验收

启用工具后,你应该能回答下面 7 个问题。任何一项答不上来,先停下排查再继续接 Gateway 或 cron

  • 当前启用了哪些 toolsets?(hermes config showtoolsets 字段)
  • 每个 toolset 为什么需要?(不能回答 = 应该关)
  • Terminal backend 是什么?(hermes config showterminal.backend 字段,或直接看 ~/.hermes/config.yaml
  • 命令实际在哪个环境执行?(让 Hermes 跑 pwd && hostname 验证)
  • 后台进程如何查看、等待、读日志和停止?(process(action="list/poll/log/kill")
  • 不需要的工具如何关闭?(编辑 yaml 或 hermes config set toolsets.<name> false
  • 哪些 secret 会进入这个 backend?(看 terminal.env_passthrough 配置)

常见坑

按事故频率从高到低:

  • 任务只需要读文件,却同时打开 terminal、browser、messaging —— 一旦出错,故障域比真正需要的大 5 倍
  • 不知道命令在本机、容器、远程服务器还是云 sandbox 执行 —— 删错文件后才发现是本机
  • Docker backend 共享同一个持久容器却按"每命令隔离"理解 —— 一个任务装的依赖污染另一个任务
  • 后台进程启动后没人 poll、log 或 kill —— 长跑任务静默成功 / 失败都没人看
  • 在消息平台里处理 sudo、密钥或高风险 shell —— 群里其他人能看到密码、能误触命令
  • Tool Gateway 可用后就默认把所有工具开放给所有平台 —— 开放性 ≠ 权限边界,Gateway 只解决凭据,不解决"谁能用"

官方资料

下一步

本页目录