【AI 工具】Hermes Agent 配置指南
本文主要介绍博主认为常用的 Hermes Agent 的核心配置项(重要的配置会标注 ⭐️):
- 目录结构与配置优先级、上下文文件(SOUL.md 等)
- 显示与流式传输设置
- 群聊会话隔离
- 智能审批机制
- 终端后端(local / docker / ssh / modal 等)
- 上下文压缩
- 快速命令
- 检查点
本文未介绍但会在其他文章单独介绍的配置:
- 技能相关: skills
- 模型相关: model, providers, fallback_providers, custom_providers
本文未介绍的配置(博主认为不重要):
- 管理配置、环境变量替换、内存配置、文件读取安全、工具输出截断限制、全局工具集禁用、Git Worktree 隔离、上下文引擎、迭代预算压力、上下文压力警告、凭据池策略、Prompt 缓存、辅助模型、推理努力程度、工具使用强制、TTS 配置、隐私、语音转文字(STT)、语音模式(CLI)、未授权 DM 行为、人类延迟、代码执行、Web 搜索后端、浏览器、时区、Discord、安全、网站黑名单、委托、澄清、工作目录
配置目录结构
所有配置存储在 ~/.hermes/ 目录下:
1 | ~/.hermes/ |
配置优先级
设置按以下顺序解析(优先级从高到低):
- CLI 参数 —— 例如
hermes chat --model anthropic/claude-sonnet-4(单次调用覆盖) ~/.hermes/config.yaml—— 所有非机密设置的主配置文件~/.hermes/.env—— 环境变量的回退;机密(API 密钥、token、密码)必须放这里- 内置默认值 —— 未设置任何内容时的硬编码安全默认值
.env:放置机密(API 密钥、bot token、密码)config.yaml:其他所有内容(模型、终端后端、压缩设置、内存限制、工具集等)
上下文文件
| 文件 | 用途 | 范围 |
|---|---|---|
SOUL.md |
Agent 人格(系统提示词第 1 槽位) | ~/.hermes/SOUL.md |
.hermes.md / HERMES.md |
项目特定指令(最高优先级) | 向上走到 git 根目录 |
AGENTS.md |
项目编码规范 | 递归目录遍历 |
- SOUL.md 是 agent 的主要身份。它占据系统提示词的第 #1 槽位,完全替换内置的默认身份。编辑它以完全自定义 agent 是谁。
- 如果 SOUL.md 缺失、为空或无法加载,Hermes 回退到内置默认身份。
- 项目上下文文件使用优先级系统 —— 仅加载一种类型(第一个匹配优先):
.hermes.md/HERMES.md→AGENTS.md→CLAUDE.md→.cursorrules。 - SOUL.md 始终独立加载。
- AGENTS.md 是分层的:如果子目录也有 AGENTS.md,所有都会合并。
- 如果 SOUL.md 不存在,Hermes 会自动生成默认的 SOUL.md。
- 所有加载的上下文文件上限为 20,000 字符,并进行智能截断。
display: 显示设置
1 | display: |
streaming: Gateway 流式传输
CLI 流式传输
通过 display.streaming 设置,见上:
1 | display: |
Gateway 流式传输
1 | streaming: |
不支持消息编辑的平台(Signal、Email)自动禁用流式传输。
group_sessions_per_user: 群聊会话隔离
1 | group_sessions_per_user: true # ⭐️ 群组中每用户隔离会话 |
true = 群组中每用户独立对话,false = 每个聊天一个共享会话。
true是默认和推荐设置。在 Discord 频道、Telegram 群组、Slack 频道和类似共享上下文中,当平台提供用户 ID 时,每个发送者获得自己的会话。false恢复到旧的共享房间行为。如果您明确希望 Hermes 将频道视为一个协作对话,这可能有用,但这也意味着用户共享上下文、token 成本和中断状态。- 私信不受影响。Hermes 仍然像往常一样通过聊天/DM ID 键入 DM。
- 线程与其父频道保持隔离;使用 true 时,每个参与者在线程内也获得自己的会话。
approvals: 智能审批
1 | approvals: |
| 模式 | 行为 |
|---|---|
manual(默认) |
在执行任何被标记的命令之前提示用户。在 CLI 中显示交互式审批对话框。在消息中排队待处理的审批请求。 |
smart |
使用辅助 LLM 评估被标记的命令是否真正危险。低风险命令以会话级持久性自动批准。真正有风险的命令升级给用户。 |
off |
- 智能模式对于减少审批疲劳特别有用 —— 它让 agent 在安全操作上更自主地工作,同时仍然捕获真正破坏性的命令。
terminal: 终端后端
Hermes 支持六种终端后端,每种决定 agent 的 shell 命令实际执行位置:
| 后端 | 执行位置 | 隔离性 | 适用场景 |
|---|---|---|---|
| local | 本机 | 无 | 开发、个人使用 |
| docker | 单个持久 Docker 容器 | 完全隔离 | 安全沙箱、CI/CD |
| ssh | 远程服务器(SSH) | 网络边界 | 远程开发、高性能硬件 |
| modal | Modal 云沙箱 | 完全隔离 | 临时云计算、评估 |
| daytona | Daytona 工作区 | 完全隔离 | 托管云开发环境 |
| singularity | Singularity/Apptainer 容器 | 命名空间隔离 | HPC 集群、共享机器 |
基础配置:
1 | terminal: |
Docker 后端
Hermes 在首次使用时启动单个长期运行的容器,所有终端、文件和 execute_code 调用通过 docker exec 路由到同一容器中,跨会话、/new、/reset 和子 agent 共享。工作目录更改、已安装的包以及 /workspace 中的文件会延续。
1 | terminal: |
| 参数 | 说明 |
|---|---|
docker_mount_cwd_to_workspace |
将启动目录挂载到 /workspace,默认 false |
docker_run_as_host_user |
附加 --user $(id -u):$(id -g),使文件归宿主用户所有而非 root,默认 false |
docker_forward_env |
转发到容器的环境变量,先从 shell 环境解析,回退到 .env |
docker_volumes |
标准 Docker -v 语法:host:container[:options] |
docker_extra_args |
附加到 docker run 的额外标志 |
容器在 Hermes 关闭时停止并删除。如遇问题,先切回 local 验证命令可正常运行:
1 | hermes config set terminal.backend local |
SSH 后端
通过 SSH 在远程服务器运行命令,使用 ControlMaster 连接复用(5 分钟空闲保活)。默认启用持久 shell,状态(cwd、环境变量)在命令之间保持。
1 | terminal: |
必需环境变量:
1 | export TERMINAL_SSH_HOST=my-server.example.com |
可选变量:
| 变量 | 默认值 | 说明 |
|---|---|---|
TERMINAL_SSH_PORT |
22 |
SSH 端口 |
TERMINAL_SSH_KEY |
系统默认 | SSH 私钥路径 |
TERMINAL_SSH_PERSISTENT |
true |
持久 shell |
Modal 后端
在 Modal 云沙箱中运行命令,每个任务获得隔离 VM。启用 container_persistent 后,文件系统在清理时快照、下次会话恢复。
1 | terminal: |
需要 MODAL_TOKEN_ID + MODAL_TOKEN_SECRET 环境变量,或 ~/.modal.toml 配置文件。
Singularity 后端
专为 Docker 不可用的 HPC 集群设计。Docker URL(docker://...)自动转换为 SIF 并缓存。
1 | terminal: |
需要 $PATH 中有 apptainer 或 singularity 二进制文件。
compression: 上下文压缩
当对话接近模型 token 限制时,Hermes 自动压缩旧消息以保留上下文窗口。
1 | compression: |
压缩摘要由独立 LLM 调用完成,模型配置在 auxiliary.compression 下。编辑 config.yaml 中的 model.context_length 或 compression.* 后无需重启 gateway,下一条消息自动生效。
摘要模型的上下文窗口必须不小于主模型。若小于主模型,中间轮次会在无摘要的情况下被丢弃,导致对话上下文静默丢失。
quick_commands: 快速命令
1 | quick_commands: |
- 用法:在 CLI 或任何消息平台中输入
/status、/disk、/update、/gpu或/restart。 exec命令在宿主本地运行并直接返回输出 —— 无 LLM 调用,不消耗 token。alias命令重写为配置的斜杠命令目标。
checkpoints: 检查点
破坏性文件操作前的自动快照:
1 | checkpoints: |
参考
- Hermes Agent 官方配置文档: https://hermes-agent.nousresearch.com/docs/zh-Hans/user-guide/configuration

