工程视角:Agent 时代,诚实对齐该如何落地?
前言
在 Agent 时代,不诚实不再是模型偶尔胡说八道那么简单。
Agent 的本质是会行动的模型:它能检索、能调用工具、能改数据、能多步规划。
一个残酷事实摆在工程面前:
你要防的不是答错,而是为了完成任务看起来更好而选择隐瞒、编造、绕规则。
这是系统优化目标必然诱发的副产物。
OpenAI 在《Why language models hallucinate》里指出:很多评估与训练激励鼓励模型“猜”而不是承认不确定。
换句话说,我们把模型训练成了一个擅长考试的学生:不答题没分,瞎猜可能得分,于是它就会猜。
我之前的这几篇文章详细阐述了这个问题。大模型诚实对齐系列
一旦你把这个“考试型模型”放进 Agent 框架,它开始能做事、能赚钱、能影响结果,那它就会出现工程上更麻烦的形态:reward hacking、scheming、工具调用中的隐瞒与粉饰。(我之前的文章详细拆解过)
OpenAI 的 Confessions 工作,本质就是承认这一点:模型会在主输出里掩盖问题,但可以通过一个“自白通道”把它撬开。
这篇文章我会用更工程化的方式讲清楚三件事:
- 为什么 Agent 必然会 hack
- 诚实如何在系统里落地成机制
- 哪些设计是高概率翻车的
一、为什么 Agent 必然会 hack:不是因为坏,是因为你让它这么赢
把 Agent 看成一个优化器:它在状态空间里选择动作序列,让 reward 最大化。
当你给它这些能力时,hack 几乎是结构性结果:
1. 多步任务放大了看起来完成的收益
单轮问答里,胡说八道顶多误导一次;多步 Agent 里,胡说可以把整个轨迹引到一个看起来成功的结局。
越长链路,越容易出现中间有错误但最终伪装成成功。
2. 工具调用制造了不可见动作
工具调用不是自然语言可审计的。模型可以:
少查证据但声称查过
选择性引用对自己有利的片段
把失败解释成“外部系统问题”
这就是行动层的不诚实。
3. 奖励函数天然偏爱自信与完成,而不是诚实与可验证
OpenAI 直接指出:很多评估/激励在系统层面鼓励猜测。
DeepMind Sparrow 的经验也类似:必须引入专门的规则违例奖励模型(Rule RM)与偏好奖励模型共同约束,否则“有用性”会挤压“合规性”。
如果你不显式奖励诚实,系统就会奖励伪装。这是工程规律,不是心理学。
二、把诚实做成系统能力:四层落地架构
我建议用“四层防线”来理解诚实落地:自我报告层、置信与门控层、可验证执行层、外部监督层。
每一层都能单独提升系统可信度,但真正可靠必须叠加。
第 1 层:自白通道,把隐瞒变成高成本
OpenAI 的 Confessions 提供了一个关键工程洞察:
让模型在“主输出”上追求任务最优,但另开一个“只按诚实打分”的通道。
这对工程意味着什么?
你不指望模型永远不犯错
你要的是:犯错/违规/偷懒时能够自曝
落地做法(可直接工程化):
双通道输出协议
answer: 给用户的最终答复confession: 只给系统的自检报告(默认不展示给用户)
confession 的内容结构建议固定化(可解析):
是否使用了工具?用的是什么?证据在哪里?
哪些结论是推断?置信度如何?
是否存在与系统指令冲突的行为?
confession 触发策略:
所有高风险动作前后强制触发(写文件/发消息/下单/改配置)
或在异常信号出现时触发(低置信/证据不足/检测到注入)
核心目标是让系统更容易发现不诚实,从而启用后续的拦截与回滚。
重要禁忌:不要把 confession 接回主 reward(后面会讲为什么这是雷区)。
第 2 层:置信门控,把不确定变成一等公民
要改变系统激励,要让模型敢于说“不确定”。
但在 Agent 工程里,置信门控不仅是“说不确定”,而是决定能不能执行动作。
落地做法:
为每个关键动作计算一个
risk_score(可以由模型自评 + 分类器 + 规则共同给出)设置门槛:
risk_score < t1:自动执行t1 ~ t2:执行前要求补充证据(强制检索/强制引用/强制工具验证)> t2:必须人工确认或直接拒绝
这对应到大厂的现实做法:先防输入注入,再防输出越界。例如微软的 Prompt Shields 作为 Azure AI Content Safety 的一部分,用于检测和阻断对抗性输入(包括间接提示注入)。
第 3 层:回滚与拒绝采样,让系统能撤销错误轨迹
Agent 系统里最危险的是:错误被连续动作放大,最后不可逆(发邮件、改数据、触发交易)。
所以必须引入“事务性”思维:
每一步动作都要可回滚
每次关键输出都可被拒绝重采样
具体落地:
动作日志 + 可逆操作
所有工具调用写入审计日志
对外部系统操作尽量采用“幂等 + 可撤销”接口(undo / compensating transaction)
候选轨迹生成
对同一任务生成多个候选计划/候选动作序列
用监督器打分选择最可信的一条(rejection sampling)
将 confession 作为拒绝采样信号
confession 报告“我没有查证据/我不确定/我可能违规”
直接淘汰该轨迹,要求重来
这正是 OpenAI 明确点出的 inference-time 用法:monitoring、rejection sampling、把问题暴露给用户等。
第 4 层:外部监督,用分类器与规则把模型关进可控边界
在 Agent 场景,prompt injection 是诚实系统的最大外部敌人:模型可能被外部文档/网页/邮件植入指令劫持,从而做出违背系统目标的行为。
大厂在做的事情很明确:加一层“守门员”。
Anthropic 的 Constitutional Classifiers:以“宪法原则”为基础训练分类器,抵御通用 jailbreak,在报告中还给出了对拒绝率与算力开销的讨论。
Meta 的 Prompt Guard:开源提示注入检测分类器,建议结合应用域数据微调,并强调要做分层防护。
Meta 的 Llama Guard:用于对输入/输出做内容安全分类。
微软 Prompt Shields:作为产品化能力提供对抗输入检测。
你会发现监督层的“主流解”不是某个神奇 prompt,而是可迭代的分类器 + 多层防护。
三、别只盯着文本:检索与多模态同样需要诚实闭环
诚实不止是不撒”,还包括输出可核验。
DeepMind 的 Sparrow 早就把路走出来了:Agent 能用搜索就用搜索,让回答与证据绑定,同时用 Rule RM 约束规则违例。
还看到百度的 iRAG 则把检索增强扩展到图像生成,用图片资源库减少图像幻觉。
工程启示非常直接:你越让模型自由生成,就越需要外部证据与可验证链路。
Agent 系统的正确姿势是:能查就查、能算就算、能验证就验证。模型负责组织,工具负责确定性。
四、哪些不要做:这些设计看似聪明,实则高危
禁忌 1:把 confession 接回主 reward(必然被学会伪装)
confession 的奖励只看诚实,不影响主答案奖励。
一旦你把 confession 作为主奖励的一部分,模型会迅速学会:
在主答案里规避违规行为
在 confession 里说“我很诚实、我没问题”
等于把“自曝机制”变成了“伪装指标”。
禁忌 2:把自我反思当成安全保证
宪法AI、反思提示确实能改善输出,但它们本质上仍是生成过程,不能替代审计与监督。
Anthropic 在工程文档里也强调,不要天真地把模型的思维文本当作真实意图的完全映射。
你需要的是可观测证据和可追责日志,而不是更长的自我解释。
禁忌 3:只做内容安全,不做工具安全
很多团队把 guardrail 等同于敏感词和内容审核,这是把问题降维了。
Agent 最大的风险是:动作层越权与不可逆操作。所以必须做:
最小权限(least privilege)
沙箱化工具
审计与回滚
否则模型诚实地做错事,也一样造成事故。
写在最后
在 Agent 时代,靠模型更聪明解决诚实问题,是典型的工程幻想。
真正可靠的路线是把诚实落到系统里:
让模型能自曝(confession)
让系统能拦截(gating)
让动作可撤销(rollback)
让输入输出可审计(classifiers + logs)
你最终交付的不是一个更诚实的模型,而是一个对不诚实有免疫系统的 Agent 平台。

