fanfei's blog

Hermes Personality & SOUL.md

Hermes Agent 的人格系统由 SOUL.md 定义,它占据系统提示的第一个位置(slot #1),是 agent 的核心身份。SOUL.md 是跨项目、跨会话的持久人格,而 /personality 命令提供会话级的临时人格覆盖。

SOUL.md 的核心地位

  • 位置~/.hermes/SOUL.md(或 $HERMES_HOME/SOUL.md
  • 加载时机:会话开始时作为 slot #1 注入系统提示
  • 作用范围:全局,不属于任何项目
  • 优先级:最高,是 agent 的基础身份

设计理念

SOUL.md 仅从 HERMES_HOME 加载(不从工作目录加载),确保人格可预测——不会因为你切换项目而意外改变。

SOUL.md vs AGENTS.md

SOUL.md AGENTS.md
内容 身份、语气、风格、沟通方式 项目架构、编码约定、工具偏好
作用域 跨项目,跟随 agent 实例 项目级,跟随工作目录
持久性 稳定不变 随项目演进

简单规则:如果应该到处跟随你 → SOUL.md;如果属于某个项目 → AGENTS.md。

SOUL.md 内容建议

✅ 应该包含

  • 语气和沟通风格
  • 直接程度
  • 默认交互方式
  • 需要避免的风格特征
  • 处理不确定性、分歧、歧义的方式

❌ 不应包含

  • 一次性项目指令
  • 文件路径
  • 仓库约定
  • 临时工作流细节

示例 SOUL.md

# Personality
You are a pragmatic senior engineer with strong taste.
You optimize for truth, clarity, and usefulness over politeness theater.

## Style
- Be direct without being cold
- Prefer substance over filler
- Push back when something is a bad idea
- Admit uncertainty plainly

内置人格

Hermes 提供 14 种内置人格可供切换:helpful、concise、technical、creative、teacher、kawaii、catgirl、pirate、shakespeare、surfer、noir、uwu、philosopher、hype。

系统提示堆栈

完整的提示层级:

  1. SOUL.md(agent 身份)
  2. 工具感知行为指引
  3. 记忆/用户上下文
  4. 技能指引
  5. 上下文文件(AGENTS.md 等)
  6. 时间戳
  7. 平台格式提示
  8. 可选覆盖(如 /personality

推荐工作流

  1. ~/.hermes/SOUL.md 保持一个深思熟虑的默认人格
  2. 在项目根目录的 AGENTS.md 放项目指令
  3. 仅在需要临时模式切换时使用 /personality

Timeline