Skip to main content

使用 SOUL.md 配置 Hermes

SOUL.md 是 Hermes 的全局人格文件。它决定 Hermes 默认“像谁”、如何说话、如何表达判断,以及在不确定时倾向于采用什么沟通方式。

如果你希望 Hermes 每次打开都像同一个稳定的助手,而不是每个会话都重新说明风格,那么最值得先配置的通常就是 SOUL.md

SOUL.md 适合放什么

SOUL.md 适合写那些跨项目、跨会话都成立的默认设定,例如:

  • 语气和表达风格
  • 回答偏好:简洁、详细、偏技术、偏解释型
  • 对不确定性的处理方式
  • 是否主动指出风险和坏主意
  • 希望代理保持的价值观或沟通边界

一个简单记法是:

  • SOUL.md 关心的是“Hermes 是谁,以及它怎么表达”

SOUL.md 不适合放什么

下面这些内容通常不应该放进 SOUL.md

  • 项目专属的编码规范
  • 仓库目录结构
  • 文件路径和命令流程
  • 某个项目的架构约束
  • 临时任务要求
  • 只对单个仓库生效的规则

这些内容更适合写进 AGENTS.md

一个实用判断标准:

  • 如果这条规则对所有对话都成立,放进 SOUL.md
  • 如果它只属于某个项目,放进 AGENTS.md

文件位置

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

~/.hermes/SOUL.md

如果你使用自定义主目录运行 Hermes,则路径为:

$HERMES_HOME/SOUL.md

首次运行时会发生什么

如果文件还不存在,Hermes 会自动为你生成一个初始的 SOUL.md

这意味着大多数情况下,你不需要手动新建文件,只需要直接打开它并开始修改即可。

需要注意的是:

  • 如果你已经有一个 SOUL.md,Hermes 不会覆盖它
  • 如果文件存在但为空,Hermes 不会从中注入任何内容

Hermes 如何使用它

在启动会话时,Hermes 会读取 SOUL.md,并把它作为系统提示中的第一部分,也就是代理身份的起点。

这意味着:

  • SOUL.md 会直接影响 Hermes 的默认人格
  • 它不是一个“补充说明”,而是默认身份本身的一部分
  • 如果 SOUL.md 缺失、为空或无法加载,Hermes 才会回退到内置默认人格

真正重要的是内容本身,所以请用你希望代理真实呈现出来的方式来写,而不是把它当成一份营销文案。

第一次修改可以怎么写

如果你不知道该从哪里开始,最简单的方法通常不是写很长,而是先改成几条明确、稳定的默认偏好。

例如:

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 的默认风格。

示例风格

务实工程师

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

研究伙伴

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

教师 / 解释者

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

怎样的 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 act when context is ambiguous.

重点不是形式,而是让你以后回来看时还能一眼改得动。

SOUL.md、AGENTS.md 和 /personality 的区别

项目作用适用范围最适合放什么
SOUL.md定义 Hermes 的默认人格和语气全局 / 当前实例长期稳定的默认风格
AGENTS.md约束某个项目里的工作方式项目级编码规范、目录约定、流程要求
/personality在当前会话切换人格预设会话级临时切换工作风格或角色

可以把它们理解为:

  • SOUL.md:默认人格底座
  • AGENTS.md:项目现场规则
  • /personality:会话级快速切换

实用建议

  • 先从短版本开始,不要一上来写成几百行
  • 写你真正想长期保持的风格,不要写当天情绪
  • 改完后实际聊几轮,感受是否稳定
  • 如果你发现某条规则只在一个仓库里成立,就把它移到 AGENTS.md
  • 如果你只想临时切换工作状态,优先用 /personality

一个好用的工作流

一个常见而稳定的用法是:

  1. SOUL.md 里定义长期默认人格
  2. 在每个项目里用 AGENTS.md 写本地规则
  3. 在特殊会话里再用 /personality 做临时切换

这样通常比把所有东西都堆进同一个文件里更清晰,也更不容易互相打架。