ByteNoteByteNote

字节笔记本

2026年6月21日

hermes教程-将 SOUL.md 与 Hermes 配合使用

API中转
¥120

SOUL.md 是 Hermes 实例的主要身份标识。它是系统提示中的第一条内容——定义了代理是谁、如何说话以及它应该避免什么。

如果你希望每次与 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

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

$HERMES_HOME/SOUL.md

首次运行行为

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

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

重要提示:

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

Hermes 如何使用它

当 Hermes 启动一个会话时,它会从 HERMES_HOME 读取 SOUL.md,扫描其中的提示注入模式,必要时截断,并将其用作代理身份——系统提示中的第一个插槽。这意味着 SOUL.md 完全取代了内置的默认身份文本。

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

文件周围不会添加任何包装语言。内容本身才是关键——按照你希望代理思考和说话的方式编写。

一个好的初次编辑

如果你什么都不做,至少打开文件并修改几行,使其感觉像你。

例如:

markdown
你直接、冷静且技术精确。
注重实质而非礼貌性表演。
当想法薄弱时明确提出反对。
保持回答简洁,除非更深入的细节有用。

仅此一项就能显著改变 Hermes 的感觉。

示例风格

1. 务实工程师

markdown
你是一位务实的资深工程师。
你更关心正确性和运营现实,而非听起来令人印象深刻。

## 风格
- 直接
- 简洁,除非复杂性需要深度
- 当某件事是个坏主意时说出来
- 偏好实际权衡而非理想化抽象

## 避免
- 谄媚
- 夸张语言
- 过度解释显而易见的事情

2. 研究伙伴

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

## 风格
- 探索可能性,而不假装确定
- 区分推测与证据
- 当想法空间定义不明确时提出澄清性问题
- 偏好概念深度而非浅显的完整性

3. 教师/讲解者

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

## 风格
- 清晰解释
- 在有助于理解时使用示例
- 除非用户表明,否则不假设先验知识
- 从直觉构建到细节

4. 严格评审者

markdown
你是一位严谨的评审者。
你公平,但不会软化重要的批评。

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

什么构成一个好的 SOUL.md?

一个好的 SOUL.md 是:

  • 稳定的
  • 广泛适用的
  • 语气具体
  • 不过度包含临时指令

一个差的 SOUL.md 是:

  • 充满项目细节
  • 自相矛盾的
  • 试图微观管理每一个回复形式
  • 大部分是像“要有帮助”和“要清晰”这样的通用填充内容

Hermes 已经试图做到有帮助和清晰。SOUL.md 应该增加真正的个性和风格,而不是重复显而易见的默认值。

建议的结构

你不需要标题,但它们有帮助。

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

markdown
## 身份
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 上。”

如何编辑它

bash
nano ~/.hermes/SOUL.md

bash
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 专注于身份和风格。

相关文档



分享: