主题
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.md | Hermes 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: denycron_mode: deny 适合无人值守任务:遇到危险命令时拒绝执行,而不是等待一个不会到来的人工确认。
MCP 最小授权
- 不向不可信 MCP 传递完整环境变量。
- Token 只授予 MCP 实际需要的范围。
- 默认先开放读取,再开放创建或修改。
- 删除、发布、付款、生产部署必须保留人工确认。
- 不可信 MCP 关闭 server-initiated sampling。
IMPORTANT
Profile 隔离配置、凭据、会话、Skill 和记忆,但不是文件系统沙箱。使用本地终端后端时,Agent 仍继承当前 Windows 用户可访问的文件;真正隔离应使用 Docker 或远程执行后端。
五、工具与上下文控制
工具不是越多越好。每个工具都会增加模型可选动作和上下文复杂度。
建议按用途启用:
| 场景 | Toolsets |
|---|---|
| 笔记维护 | file、search、terminal、web、skills |
| 软件开发 | 上述 + delegation、todo、必要的 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桌面版底层配置变更后:
- 完全退出应用和托盘进程;
- 重新启动;
- 新建会话;
- 运行最小真实任务;
- 检查工具输出和日志,而不是只看配置文件。