跳转到内容

Hermes 配置分层与安全

结论

稳定的 Hermes 环境应把四类内容分开:

内容存放位置是否可提交
模型、工具、压缩、安全等设置config.yaml通常不提交个人配置
API Key、Token、密码.env 或外部 Secret Store
项目规则与验收命令.hermes.md / AGENTS.md可以
可复用流程skills/<name>/SKILL.md视内容而定,不能含密钥

Hermes 官方配置优先级为:CLI 参数 → config.yaml.env/环境变量 → 内置默认值。配置中的环境变量使用 ${VAR_NAME},不是裸 $VAR

一、关键路径

Windows Desktop 的实际路径应先检查,不要从通用教程猜测。本机当前 Hermes Home:

text
D:\software\hermes\Hermes Agent CN Desktop\data\hermes-home

常用文件:

text
hermes-home/
├── config.yaml
├── .env
├── skills/
├── plugins/
├── sessions/
├── logs/
└── state.db

命名 Profile 使用独立目录:

text
hermes-home/profiles/<name>/

二、项目上下文文件

Hermes 支持多种项目规则文件,但发现规则不同:

文件发现方式建议用途
.hermes.md / HERMES.md向父目录查找,到 Git 根停止Hermes 专属、需要层级继承
AGENTS.md当前工作目录跨 Agent 通用项目规则
CLAUDE.md当前工作目录已有 Claude 风格项目
SOUL.mdHermes Home助手身份,不放项目构建规则

项目规则避免写成长篇教程,只保留:

  • 项目结构;
  • 构建、测试和验收命令;
  • 不能做的事;
  • 命名和风格约定;
  • 高风险操作的确认边界。

三、Profile 的使用边界

当以下内容需要隔离时创建 Profile:

  • 公司与个人模型/凭据;
  • 不同消息平台;
  • 不同记忆库和 Skill;
  • 高权限运维与普通写作;
  • 稳定生产环境与实验环境。

推荐结构:

text
default      日常桌面使用
work         公司系统与内部 MCP
research     联网研究、论文和长上下文
ops          运维工具,严格审批

不要仅为了切换模型就创建大量 Profile;模型可在会话内切换,Profile 更适合安全和数据边界。

四、安全基线

Secret redaction

保持开启:

yaml
security:
  redact_secrets: true

该设置和命令审批相互独立。开启 YOLO 不代表关闭 Secret redaction。

命令审批

模式行为建议
manual危险命令人工确认高风险运维
smart低风险自动批准,高风险询问日常推荐
off跳过审批只用于明确隔离的实验环境
yaml
approvals:
  mode: smart
  cron_mode: deny

cron_mode: deny 适合无人值守任务:遇到危险命令时拒绝执行,而不是等待一个不会到来的人工确认。

MCP 最小授权

  • 不向不可信 MCP 传递完整环境变量。
  • Token 只授予 MCP 实际需要的范围。
  • 默认先开放读取,再开放创建或修改。
  • 删除、发布、付款、生产部署必须保留人工确认。
  • 不可信 MCP 关闭 server-initiated sampling。

IMPORTANT

Profile 隔离配置、凭据、会话、Skill 和记忆,但不是文件系统沙箱。使用本地终端后端时,Agent 仍继承当前 Windows 用户可访问的文件;真正隔离应使用 Docker 或远程执行后端。

五、工具与上下文控制

工具不是越多越好。每个工具都会增加模型可选动作和上下文复杂度。

建议按用途启用:

场景Toolsets
笔记维护filesearchterminalwebskills
软件开发上述 + delegationtodo、必要的 GitHub 工具
定时任务cronjob + 任务所需的最小工具
桌面操作仅需要时启用 computer_use

工具变更后创建新会话,避免旧会话仍使用启动时的工具清单。

六、变更后验证

powershell
$hermes = "D:\software\hermes\Hermes Agent CN Desktop\data\desktop-bin\hermes.bat"

& $hermes --version
& $hermes config check
& $hermes doctor
& $hermes tools list
& $hermes mcp list

桌面版底层配置变更后:

  1. 完全退出应用和托盘进程;
  2. 重新启动;
  3. 新建会话;
  4. 运行最小真实任务;
  5. 检查工具输出和日志,而不是只看配置文件。

参考资料

基于 MIT 许可发布