使用 SOUL.md 塑造 Agent 人格
SOUL.md 是你的 Hermes 实例的主要身份定义。它是系统提示中的第一项内容 — 定义 Agent 是谁、如何说话、避免什么。
如果你希望 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,扫描其中的提示注入模式,必要时截断,并将其作为 Agent 身份 — 系统提示的第 1 槽位。这意味着 SOUL.md 完全替换内置的默认身份文本。
如果 SOUL.md 缺失、为空或无法加载,Hermes 会回退到内置的默认身份。
文件周围不添加任何包装语言。内容本身很重要 — 用你希望 Agent 思考和说话的方式来写。
一个好的首次编辑
如果你什么都不做,至少打开文件改几行,让它感觉像你。
例如:
你直接、冷静、技术上精确。
重实质而非客套。
当想法不好时明确反驳。
保持回答简洁,除非深入细节更有用。
仅此一项就能明显改变 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 专注于身份和风格。
相关文档
📝 本文由 AI 翻译,如有疑问请参考英文原版