💡阅读指南

Hermes 默认的行为模式有一些「臭毛病」:它会编造事实(这个是大模型的问题和 Hermes 无关)、会迎合你的观点、会在没有得到准确命令的情况下就直接动手。这一节我们聊聊怎么用 SOUL.md 把这些毛病治好。

1.1 为什么放在这里讲

如果你是从第一章读到这里的,可能会问:这三个准则这么重要,为什么不在最开头就讲?

答案是:刚装好 Hermes 的时候,你体会不到这些问题的严重性。

你刚开始用,觉得它挺聪明的,问什么都能答,让它干什么都干。这种"有求必应"的感觉会让你觉得这就是一个好 Agent 该有的样子。直到你用了一段时间,踩了坑:它编造了一个看起来很像真事的数据,你差点拿去用;它顺着你的思路说"你说得对",但你后来发现其实是你自己思路有问题,但它顺着你的思路;你只是和它讨论一个问题,但它直接就动手改代码了。

只有你使用了一段时间,才会发现这些问题,然后再修复它才会明白,哦,这样做真的解决了这些”臭毛病“。

1.2 三个行为准则

在你的 SOUL.md 里添加以下三个准则,Hermes 的行为会立刻变得靠谱很多:

code
## 行为准则(所有场景生效)

1. 诚实,不编造。
   知道就是知道,不知道就是不知道。引用名人原话、数据、事实必须有出处。
   不确定时直接说"不确定",不许冒充。

2. 有主见,不迎合。
   不同意用户时就直说,给出理由。不要为了顺着对方而放弃自己的判断。

3. 先答后做。
   用户只是问问题的时候,回答他的问题,不要自己就动手。需要执行操作时,
   先问一句,得到肯定再行动。

1.3 为什么需要这三条

第一条:诚实,不编造

这是大模型的幻觉问题,这里就不再展开赘述,几乎所有的同学都遇到过这个问题。但这里要说明,幻觉问题是模型内部的机制问题,这条准则未必能完全消除幻觉,只能在一定程度上约束大模型编造事实。

这里有一个建议,当你让大模型查找资料时,可以在 Prompt 里加一句:

请标注资料的来源,不要编造事实。

这在一定程度上可以减少幻觉,而且你可以通过标注的来源回溯。

第二条:有主见,不迎合

大模型的另一个毛病是过度迎合。

你说"我觉得这个方案不行",它会立刻说"你说得对,这个方案确实有问题",然后开始找理由支持你的观点。你说"我觉得 A 比 B 好",它会说"完全同意,A 的优势在于...",即使 B 其实更合适。

这是因为模型在训练时被优化为"让用户满意",而让用户满意的最简单方式就是顺着用户说。但这种方式在专业场景里很糟糕。你需要的不是一个应声虫,而是一个能给你真实反馈的助手。

加了这条准则后,Hermes 会在不同意你的时候直说,给出理由。它可能会说"我理解你的想法,但我认为 B 方案更合适,因为..."。这种反馈才是有价值的。

一个有主见的 Agent 比一个只会说"好的"的 Agent 更有用。它帮你避免了确认偏误,让你听到不同的声音。

第三条:先答后做

大模型的第三个毛病是过度主动。这个问题非常烦人。当你和它讨论一个方案时,明明只是想讨论,但大模型在自己分析出某个方案后,不经过你确认,就直接开始改代码了。

你只能 Ctrl+C 赶紧终止。

我遇到过很多 Agent 都有这个问题。但大多数情况下,我们希望的是,给我方案,由我决定是否要执行。

这是因为模型被训练为"尽可能帮助用户完成任务",而它的理解是"主动做比等着问更高效"。但在实际使用中,这种过度主动经常造成麻烦。

加了这条准则后,Hermes 会在你只是问问题时直接回答,不会自己就开始干活,等你给出明确的信号后再行动。

一个会先问再做的 Agent 比一个不问就动手的 Agent 更可控。它尊重你的决策权,不会在你不知道的情况下把事情搞砸。

💡实践建议

如果你发现 Hermes 还是有编造、迎合、过度主动的问题,检查一下你的 SOUL.md 里有没有这三条准则。如果没有,加上之后重启 Hermes,效果会很明显。

1.4 ■ 学点英语

中文 English 音标 说明
防护栏 Guardrail /ˈɡɑːrdreɪl/ 限制 Agent 行为边界、减少错误动作的规则
默认规则 Default Rule /dɪˈfɔːlt ruːl/ 没有额外说明时系统自动采用的规则
行为修正 Behavior Correction /bɪˈheɪvjər kəˈrekʃən/ 通过规则或反馈纠正 Agent 的坏习惯
失败模式 Failure Mode /ˈfeɪljər moʊd/ 系统经常出错或失效的典型方式