跳到主要内容

与 Hermes 一起使用 SOUL.md

SOUL.md 是您的 Hermes 实例的主要身份标识。它是系统提示中的首要部分——定义了智能体的身份、交流方式以及它应避免的行为。

如果您希望 Hermes 在每次对话时都保持相同的助手风格,或者您想用自己的风格完全替换 Hermes 的默认人格,那么这个文件就是您需要编辑的地方。

SOUL.md 的用途

SOUL.md 用于定义:

  • 语调
  • 人格特质
  • 沟通风格
  • Hermes 应该有多直接或多热情
  • Hermes 在风格上应避免什么
  • Hermes 如何应对不确定性、分歧和模糊性

简而言之:

  • SOUL.md 关乎 Hermes 是谁以及它如何表达

SOUL.md 不应用于

请勿用于:

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

这些内容应放在 AGENTS.md 中。

一条好的规则:

  • 如果设置应全局适用,请放入 SOUL.md
  • 如果只属于特定项目,请放入 AGENTS.md

文件位置

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

~/.hermes/SOUL.md

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

$HERMES_HOME/SOUL.md

首次运行行为

如果尚不存在 SOUL.md 文件,Hermes 会自动为您生成一个初始版本。

这意味着大多数用户现在可以从一个真实的、可立即读取和编辑的文件开始。

重要提示:

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

Hermes 如何使用它

当 Hermes 开始一个会话时,它会从 HERMES_HOME 读取 SOUL.md,扫描其中的提示注入模式,必要时进行截断,并将其用作智能体身份——即系统提示中的第一项。这意味着 SOUL.md 会完全替换内置的默认身份文本。

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

文件内容本身不会被包裹在任何额外的语言中。内容本身才是关键——请按照您希望智能体思考和表达的方式来书写。

一个好的初始编辑

即使您什么都不做,也请打开这个文件,仅仅修改几行,让它看起来更像您自己的风格。

例如:

你为人直接、冷静且技术精确。
注重实质内容,而非礼貌的客套。
当某个想法薄弱时,清晰地提出反对。
除非需要更深入的细节,否则保持回答简洁。

仅此一点就能明显改变 Hermes 的感觉。

示例风格

1. 务实的工程师

你是一位务实的高级工程师。
比起听起来厉害,你更关心正确性和实际运维。

## 风格
- 直接了当
- 除非问题复杂需要深度探讨,否则保持简洁
- 当某个想法不好时直言不讳
- 偏好实际的权衡,而非理想化的抽象

## 避免
- 阿谀奉承
- 炒作性语言
- 过度解释显而易见的事情

2. 研究伙伴

你是一个深思熟虑的研究合作者。
你充满好奇,对不确定性坦诚,并对新颖的想法感到兴奋。

## 风格
- 探索可能性,但不假装确定
- 区分推测和证据
- 当想法领域定义不清时,提出澄清问题
- 偏好概念深度,而非肤浅的全面

3. 教师 / 讲解者

你是一位有耐心的技术教师。
你关注的是理解,而非表现。

## 风格
- 清晰地解释
- 在需要时使用例子
- 除非用户表现出已有知识,否则不假设
- 从直觉到细节,逐步构建

4. 严格的审查者

你是一位严格的审查员。
你是公正的,但不会软化重要的批评。

## 风格
- 直接指出薄弱的假设
- 优先考虑正确性而非和谐
- 明确指出风险和权衡
- 偏好直白的清晰,而非模糊的外交辞令

什么是一个好的 SOUL.md?

一个好的 SOUL.md 应该是:

  • 稳定的
  • 普遍适用的
  • 声音风格具体的
  • 不包含过多的临时性指令

一个差的 SOUL.md 是:

  • 充满项目细节
  • 存在矛盾
  • 试图微管理每一个回答的形式
  • 大部分是诸如“乐于助人”和“表达清晰”这样的通用填充语

Hermes 本身就会努力做到乐于助人和表达清晰。SOUL.md 应该增加真实的人格和风格,而不是重复显而易见的默认设置。

建议的结构

您不需要使用标题,但它们很有帮助。

一个效果良好的简单结构:

# 身份
Hermes 是谁。

# 风格
Hermes 应该听起来怎样。

# 避免
Hermes 不应该做什么。

# 默认行为
当出现歧义时,Hermes 应该如何行动。

SOUL.md 与 /personality 命令

它们是互补的。 使用 SOUL.md 来定义您持久的基础风格。 使用 /personality 来进行临时的模式切换。

例如:

  • 您的默认 SOUL 是务实且直接的
  • 然后在某个会话中,您使用 /personality teacher
  • 之后您可以切换回来,而无需更改您的基础声音文件

SOUL.md 与 AGENTS.md

这是最常见的混淆点。

请将这些内容放入 SOUL.md

  • “要直接了当。”
  • “避免炒作性语言。”
  • “除非需要深度,否则偏好简短回答。”
  • “当用户犯错时要提出反对。”

请将这些内容放入 AGENTS.md

  • “使用 pytest,而不是 unittest。”
  • “前端代码位于 frontend/ 目录。”
  • “永远不要直接编辑迁移文件。”
  • “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 专注于身份和风格。

相关文档