与 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 或开启一个新会话。
一个实用的工作流程
- 从生成的默认文件开始
- 删除任何不符合您期望风格的语句
- 添加 4-8 行能清晰定义语调和默认行为的内容
- 与 Hermes 交谈一段时间
- 根据仍有不适感的地方进行调整
这种迭代式的方法,比试图一次性设计出完美人格要更有效。
故障排除
我编辑了 SOUL.md,但 Hermes 听起来还是一样
请检查:
- 您编辑的是
~/.hermes/SOUL.md或$HERMES_HOME/SOUL.md - 而不是某个仓库本地的
SOUL.md - 文件不为空
- 您在编辑后重启了会话
- 是否有
/personality覆盖命令主导了结果
Hermes 忽略了我的 SOUL.md 的部分内容
可能的原因:
- 有更高优先级的指令覆盖了它
- 文件包含相互矛盾的指导
- 文件太长并被截断
- 部分文本类似于提示注入内容,可能被扫描器阻止或修改
我的 SOUL.md 变得过于项目特定
将项目相关的指令移至 AGENTS.md,并保持 SOUL.md 专注于身份和风格。