用结构化规则文件(ALWAYS/NEVER/ON FAILURE/ON NUMBERS)替代聊天式 prompt,解决会话无版本控制的问题。
你修复了一个错误。明天,新的会话又把同样的错误重犯了一遍。不是因为模型笨——而是因为你的纠正存在于一段对话中,而对话会蒸发。每次会话都是从零开始。
提示词就是说话。说话没有版本控制、没有 diff、无法在周四知道你在周一告诉过它什么。如果你与 agent 的工作约定只存在于聊天记录中,那你什么也没训练好——你只是叙述了一遍。
我们用一份书面规则文件,在每个会话启动时加载,无需任何重新解释。它恰好有四类规则行:
ALWAYS — agent 无需请求就执行的操作,每次都执行(打开文件前先读索引;每个操作都要有证据地记录)。
NEVER — 在任何指令下都不容逾越的硬边界(永不操作账户或金钱;永不将个人数据发送出去;永不调用他人依赖的限速 API)。
ON FAILURE — 记录原因,然后继续下一件事。留有日志的失败有价值;无声的重试循环没有价值。编造答案来填补空白是唯一不可原谅的失败模式。
ON NUMBERS — 数字离开家门时必须带着它的方法:它计算的是什么,以及是如何计算的。未经测量的数字被标注为未确认,绝不作为事实呈现。
提示词是一次性说出的东西。契约是可版本化、可 diff、可审计的东西。由此产生两个特性:
纠错变得永久。 当 agent 犯错且原因是规则缺失或规则太宽泛时,你修改规则——一次——该错误类别就永远消失了。修改对话中的提示词,同样的错误第二天就会卷土重来。(我们的规则自带出生证明:每条规则都引用了造成它的真实事件。)
你不再是不停重复的领导,而成为审计的领导。 审查的问题从"你按我说的做了吗?"变成"哪条规则失效了?"——这个问题小得多,而且可以由第二个 agent 来回答。
常见的反对意见是:"规则最终变成无人阅读的官僚主义。"这在规则是绝对的时候才会发生。我们的规则是按风险等级调整的:简单问题快速回答;任何成为决策基础的东西都要经过对抗性审查,明确任务就是拒绝这项工作。契约不会给所有事情增加繁文缛节——它按比例增加仪式感,这是唯一能存活下来的方式。
任何你纠正过两次的东西都要变成书面规则,否则你还会第三次去纠正它。
Agent 可能会失败,但必须失败在明面上——原因要记录、空白要命名、不许编造。
每个数字出门都要带着它的方法,否则就别出门。
完整披露:这是我销售的一个 15 美元一次性模板的工作方法的一部分——一个第二大脑保险库启动器,包含 agent 规则文件、派生的索引和搜索工具,外加一本关于不该做什么的简短电子书。这个契约理念只需要一个文本文件就能运作。
Second Brain Starter — US$15 one-time
如果你在书面规则下运行 agent,我真的很想听听哪条规则物有所值——哪条最终成了摆设。
转载自 Oroboro Labs——这篇文章是权威版本;原文包含完整的方法笔记。