跳到主要内容

将 SOUL.md 与 Hermes 配合使用

SOUL.md 是你的 Hermes 实例的主要身份定义。它位于系统提示的最前面,用来规定 agent 是谁、如何说话,以及应当避免什么。

如果你希望每次与 Hermes 对话时,它都像同一个助手;或者你想完全用自己的风格替代 Hermes 的默认人格,那么就该用这个文件。

SOUL.md 适合放什么

SOUL.md 适合定义:

  • 语气
  • 性格
  • 沟通风格
  • Hermes 应该多直接,或多温和
  • Hermes 在风格上应该避免什么
  • Hermes 应该如何面对不确定性、分歧和模糊性

一句话概括:

  • SOUL.md 关心的是 Hermes 是谁,以及 Hermes 如何表达

SOUL.md 不适合放什么

不要把下面这些内容放进去:

  • 仓库专属的编码规范
  • 文件路径
  • 命令
  • 服务端口
  • 架构说明
  • 项目工作流指令

这些都应该放在 AGENTS.md 里。

一个简单判断标准是:

  • 如果应该在任何地方都生效,就放进 SOUL.md
  • 如果只属于某个项目,就放进 AGENTS.md

文件位置

Hermes 现在只使用当前实例的全局 SOUL 文件:

~/.hermes/SOUL.md

如果你用的是自定义 home 目录,那么位置会变成:

$HERMES_HOME/SOUL.md

首次运行时的行为

如果 SOUL.md 还不存在,Hermes 会自动为你生成一个起始版本。

这意味着大多数用户现在一开始就会拥有一个真实存在、可以立刻阅读和编辑的文件。

需要注意:

  • 如果你已经有 SOUL.md,Hermes 不会覆盖它
  • 如果文件存在但为空,Hermes 不会把其中任何内容加入提示

Hermes 如何使用它

当 Hermes 启动一个会话时,它会从 HERMES_HOME 读取 SOUL.md,扫描其中是否有提示注入模式,如有必要会截断内容,然后把它作为agent identity 使用,也就是系统提示中的第 1 个槽位。这意味着 SOUL.md 会完整替换内置的默认身份文本。

如果 SOUL.md 缺失、为空,或者无法加载,Hermes 就会回退到内置默认身份。

文件外面不会再包一层解释文字。真正起作用的是文件本身的内容,所以请直接按你希望 agent 如何思考、如何表达的方式来写。

一个很好的第一步修改

如果你暂时不想做太多改动,只要打开文件,改上几行,让它更像你希望的样子就足够了。

例如:

You are direct, calm, and technically precise.
Prefer substance over politeness theater.
Push back clearly when an idea is weak.
Keep answers compact unless deeper detail is useful.

仅仅这样,就足以明显改变 Hermes 的整体感觉。

风格示例

1. 务实工程师

You are a pragmatic senior engineer.
You care more about correctness and operational reality than sounding impressive.

## Style
- Be direct
- Be concise unless complexity requires depth
- Say when something is a bad idea
- Prefer practical tradeoffs over idealized abstractions

## Avoid
- Sycophancy
- Hype language
- Overexplaining obvious things

2. 研究伙伴

You are a thoughtful research collaborator.
You are curious, honest about uncertainty, and excited by unusual ideas.

## Style
- Explore possibilities without pretending certainty
- Distinguish speculation from evidence
- Ask clarifying questions when the idea space is underspecified
- Prefer conceptual depth over shallow completeness

3. 教师 / 讲解者

You are a patient technical teacher.
You care about understanding, not performance.

## Style
- Explain clearly
- Use examples when they help
- Do not assume prior knowledge unless the user signals it
- Build from intuition to details

4. 严厉审阅者

You are a rigorous reviewer.
You are fair, but you do not soften important criticism.

## Style
- Point out weak assumptions directly
- Prioritize correctness over harmony
- Be explicit about risks and tradeoffs
- Prefer blunt clarity to vague diplomacy

什么样的 SOUL.md 才算强

一个强的 SOUL.md 通常具备这些特征:

  • 稳定
  • 可广泛适用
  • 风格具体
  • 不塞满临时指令

一个弱的 SOUL.md 通常会:

  • 充满项目细节
  • 自相矛盾
  • 试图微观管理每一种回复形式
  • 大多只是“要有帮助”“要清晰”这类泛泛而谈的填充语

Hermes 本来就会尽量做到有帮助、清晰。SOUL.md 的价值在于补充真正的人格和风格,而不是重复显而易见的默认行为。

建议结构

你不一定非要写标题,但加标题通常会更清楚。

一个很好用的简单结构如下:

# Identity
Who Hermes is.

# Style
How Hermes should sound.

# Avoid
What Hermes should not do.

# Defaults
How Hermes should behave when ambiguity appears.

SOUL.md 与 /personality

这两者是互补关系。

SOUL.md 用来定义长期稳定的基线。 /personality 用来做临时模式切换。

例如:

  • 你的默认 SOUL 是务实而直接的
  • 某一场会话里你切换到 /personality teacher
  • 之后你再切回去,而无需修改基础语气文件

SOUL.md 与 AGENTS.md

这是最常见的混淆点。

这些放进 SOUL.md

  • “请直接一点。”
  • “避免使用夸张话术。”
  • “除非更深入的细节真的有帮助,否则优先简短回答。”
  • “当用户错了时,要明确指出来。”

这些放进 AGENTS.md

  • “使用 pytest,不要用 unittest。”
  • “前端代码在 frontend/。”
  • “不要直接编辑 migration。”
  • “API 运行在 8000 端口。”

如何编辑

nano ~/.hermes/SOUL.md

或者

vim ~/.hermes/SOUL.md

然后重启 Hermes,或开启一个新会话。

一个实用工作流

  1. 先从自动生成的默认文件开始
  2. 删掉那些不像你想要风格的内容
  3. 补上 4 到 8 行,清楚定义语气和默认行为
  4. 和 Hermes 聊一阵子
  5. 根据仍然不对劲的地方继续调整

这种迭代式做法,通常比试图一次性设计出“完美人格”效果更好。

故障排除

我改了 SOUL.md,但 Hermes 听起来还是一样

检查这些点:

  • 你编辑的是 ~/.hermes/SOUL.md$HERMES_HOME/SOUL.md
  • 而不是某个仓库本地的 SOUL.md
  • 文件不是空的
  • 编辑后已经重启会话
  • 没有被 /personality 的临时覆盖层主导结果

Hermes 忽略了我 SOUL.md 的一部分

可能原因包括:

  • 更高优先级的指令覆盖了它
  • 文件里存在互相冲突的引导
  • 文件太长,被截断了
  • 某些内容看起来像提示注入文本,被扫描器拦截或改写了

我的 SOUL.md 变得太项目化了

把项目指令移到 AGENTS.md,让 SOUL.md 只保留身份与风格相关内容。

相关文档