SOUL.md 是什么?如何给你的 AI 助手定制"性格"
装完 Hermes,第一句话问它:"你叫什么名字?"它说:"我是 Hermes Agent,由 Nous Research 创建。"再问:"你喜欢什么?"它说:"我是 Hermes Agent,由 Nous Research 创建。"
如果你觉得这个回答太官方、太无聊——这正是 SOUL.md 要解决的问题。
SOUL.md 是 AI 的身份证
每个 Hermes 实例都有一个隐藏的"性格设定文件",叫 SOUL.md。它不像普通配置文件那样改个参数就行——它是系统提示词的第一槽位,定义了 Agent 究竟是谁。
Hermes 启动时,会从 ~/.hermes/SOUL.md 读取这个文件,把它原封不动地塞进系统提示的最前面。这意味着:SOUL.md 的内容决定了 Hermes 思考和表达的基础方式。它不会被覆盖——你改一次,它就永远是你定制的样子。
如果这个文件不存在,Hermes 会自动创建一个默认版本。但只要你改过,它就会忠实执行你的设定。
一行代码改变气质
真正有效的修改不需要写很多。打开 ~/.hermes/SOUL.md,把内容改成这样:
You are direct, calm, and technically precise. Prefer substance over politeness theater. Push back clearly when an idea is weak. Keep answers compact unless deeper detail is useful.就这几行,你再和 Hermes 对话,会发现它变得像另一个人——不套话,不客套,直接给答案,说到重点。
这就是 SOUL.md 的力量:它不需要复杂的规则体系,不需要写几百行指令,只需要说清楚"你是谁"和"你说话什么风格"。
一个真实的案例:从"通用助手"到"代码评审员"
我认识一个开发者,习惯让 AI 帮他 review 代码。但他发现默认的 Hermes 太"友好"了——不管代码写得多烂,它都说"这是个不错的尝试",然后给一堆不痛不痒的建议。
他想要的是:直接指出问题,不和稀泥。
于是他修改了 SOUL.md:
You are a rigorous code reviewer. You are fair, but you do not soften important criticism. Point out weak assumptions directly. Prioritize correctness over harmony. Be explicit about risks and tradeoffs. Prefer blunt clarity to vague diplomacy. What to avoid: - Starting comments with "looks good" or "nice work" - Using softening phrases like "maybe consider" when you mean "this is wrong" - Burying critical feedback in positive language改完之后,同一段代码,Hermes 的评审变成了:
"这个变量命名完全不能表达它的用途,dayCount 和 elapsedDays 在同一个作用域里指代不同含义,容易引发难以追踪的 bug。建议重构,优先处理这个。"
他说,用了三个月,这个版本的 Hermes 帮他发现了至少三个生产环境的隐患,都是之前那个"友好"版本从来没提过的。
这个案例说明:SOUL.md 改的不是功能,是立场。它让 AI 站在你的角度说话,而不是站在一个中立、温和、不冒犯任何人的中立位置。
SOUL.md 应该写什么
很多人踩的坑是:往 SOUL.md 里塞项目说明、编码规范、部署命令。这是最常见的误解。
SOUL.md 只应该写这三类东西:默认的交互风格(怎么说话)、风格上应该避免的(哪些表达不用)、以及面对模糊情况时的原则(比如当用户描述不清时该怎么回应)。
不应该写进去的:项目特定的编码规范、某个代码库的工作流、一次性任务的说明。这些应该放在 AGENTS.md 里,那是项目级别的上下文文件。
有个简单的判断原则:如果这个设定应该"随你到处适用",就放 SOUL.md;如果它只属于某个特定项目,就放 AGENTS.md。
内置个性切换——/personality
SOUL.md 定义的是持久默认人格,但有时候你只想临时换个模式。
比如平时 Hermes 是务实的工程师,但某次你想让它变成耐心的老师慢慢解释概念——这时候用 /personality teacher 就能临时切换。切换完关掉对话,下次再开 Hermes,它又回到默认的工程师风格。
SOUL.md 和 /personality 的关系就是这样:SOUL.md 是基础性格,/personality 是临时覆盖层。保持默认务实,然后在需要时用命令切换,这才是正确的用法。
内置的 /personality 选项包括:technical(技术专家)、creative(创意头脑)、teacher(耐心教师)、concise(惜字如金)——如果你想要点不一样的,还有 kawaii、pirate、shakespeare 这些有趣的选项。
结构建议与迭代
一个好的 SOUL.md 有几个特征:有明确的语气特征,不是泛泛的"要友好";内容不相互矛盾,不会既说"直接说"又说"委婉表达";不试图微观管理每次响应。
建议的做法是:先从 Hermes 生成的默认文件开始,删除任何不符合你期望的部分,然后加 4 到 8 行核心指导。不用追求一步到位,用一段时间,根据感觉调整。
这比一开始就想设计出"完美人格"要现实得多。个性这东西,本来就是边用边调的。
夜雨聆风