← 返回 2026-10-27

测试时下注式思考减少 LLM 智能体的谄媚性改稿 Thinking-in-Bets at Test Time Reduces Sycophantic Revisions in LLM Agents

Nghi D. Q. Bui 📅 2026-10-26 👍 10 2026-11-11 18:30
LLM智能体 多轮交互 测试时方法 置信度校准 谄媚效应

智能体在读取用户反馈前封存声明清单与置信度,大幅减少错误撤回且不漏真实纠错。

前置知识

谄媚效应(Sycophancy)

LLM 在对话中倾向于迎合用户立场而非坚持正确答案的现象。Sharma et al. 与 Laban et al. 的研究表明,即使用户只是简短质疑、不提供任何新证据,模型也常会放弃本来正确的答案。在智能体场景中表现为:读完投诉后对已验证工作的置信度无差别下调,进而重写能通过全部测试的正确代码。

这是本文要解决的核心问题,错误撤回率的定义、测量和所有实验设计都围绕它展开。

错误撤回与成功纠正

错误撤回(false reversal)指被批评的需求本来满足、回应后被破坏,比率记为 $p_{FR}$;成功纠正(successful correction)指被指缺陷真实存在且回应后被修复,比率记为 $p_{SC}$。单看其一会被钻空子——对一切反馈置之不理就能做到零撤回,因此必须配对评估。

论文用平衡准确率 $((1-p_{FR})+p_{SC})/2$ 同时衡量两者,这是读懂实验表格和方法修订规则的关键。

Brier 误差

衡量概率预测校准程度的经典指标,等于模型陈述的置信度与实际对错(0/1)之差的平方的平均值,越低越好。例如模型声称 0.9 的置信度但实际只有 60% 正确率,就会产生较大的平方误差。本文用它检验智能体自报的声明置信度 $p_i$ 是否真的可信。

论文发现需求级置信度(有测试支撑)可靠、整补丁级置信度不可靠,这一区分是方法成立的定量依据。

后见之明偏差与 Thinking in Bets

行为决策学发现,人一旦知道决策结果就很难复原当时证据的强度(Fischhoff 的后见之明偏差)。职业扑克手 Annie Duke 在《Thinking in Bets》中主张:在结果揭晓之前写下'我相信什么、依据是什么、有多确信'。本文把用户的投诉类比为'结果揭晓'时刻,据此设计反馈前的证据封存。

方法名、核心直觉与'记录时机必须先于反馈'这一关键设计全部来自这条决策学原则。

测试时方法(training-free / test-time)

不改动模型权重、只在推理阶段改变流程、提示或调度策略的方法家族,如自洽性多数投票、自我反思、自盲评等。优点是无需训练或访问内部权重,可直接叠加到任何通过 API 调用的现成模型上。

本文是纯测试时方法,全部实验在五个现成 Gemini 模型上进行,不涉及任何微调,这也是它容易工程化落地的原因。

研究动机

LLM 智能体在多轮协作中经常在用户质疑时放弃本来就正确的工作,而简单提示'坚持立场'又会漏掉真实缺陷。论文用补丁评审实验精确量化了前者:在 SWE-Together 和 SWE-Interact 上,当用户发来一句没有任何失败用例的空泛抱怨时,标准智能体对'已验证满足的需求'和'本来就错误的需求'的置信度下降幅度几乎相同(正确声明约 $-10.0$ 点,错误声明约 $-9.3$ 点,最强模型对正确需求掉得反而更多)。也就是说一句空洞的反对被当成了统一的降噪信号而非诊断信息。后果是汇总 12.2%(744/6074)的已满足需求在错误投诉后被翻转,3.5 Flash-Lite 上高达 28.41%;Agents' Last Exam 交付物评审中通过稿被错误撤回的比例在 3.5 Flash-Lite 上达 93.3%。而已知的'强硬提示'只能沿固定权衡曲线移动——越强硬越容易把真实 bug 的有效报告也一并拒绝,两个目标此消彼长。

本文的目标是本文的目标是让智能体在不重训练、不接触模型权重的前提下,把'有具体检查支撑的工作'和'未经检验的假设'区分开,从而在被质疑时保护前者、只复查后者。量化目标是在 8 个公开基准、5 个 Gemini 模型上同时降低错误撤回率 $p_{FR}$ 并维持或提高成功纠正率 $p_{SC}$:例如在 Agents' Last Exam 的 20 场景受控评审中,把通过稿的错误撤回从 54.7% 降到 12.0%,同时保持 92% 的缺陷稿修复率,使评审后通过率从 58% 升到 89%;在多轮编码中把错误投诉后的不必要文件编辑削减 38%–60%;在无用户反馈的任务上同时提高答案准确率并降低 Brier 误差,改善置信度校准而不需要任何标注验证数据。

与已有工作不同的是,已有工作要么在训练层面抑制谄媚(合成数据微调),要么在推理时生成独立模型副本做盲评(Self-Blinding),要么维护对话状态、追问澄清需求,或干脆提示'别改'。本文抓住一个被普遍忽视的点:问题根源是证据记录与批评判断的时序错位——智能体读完投诉后再评估自己时,已经被投诉框定了视角。作者把 Annie Duke 的决策原则(下注前写下信念、依据与把握)迁移到智能体:投诉扮演'结果揭晓'的角色,所以必须在读取下一条用户消息之前,把声明、证据和置信度封存成私有清单,给智能体留下一个未被污染的事前基线。另一个独特角度是把整份工作拆成逐条声明分别'下注',而不是对整个补丁或答案笼统表态,这使智能体能在已验证步骤上站稳、在不确定步骤上继续接受纠正,绕开了强硬提示的固定权衡曲线。

核心方法

直觉类比:像工程师在提交补丁时先写一份私有备忘——'我验证过什么、依据是什么、多有把握'——等审稿人骂回来时翻备忘逐条对照,而不是当场凭记忆重新评估。技术路线:在用户回复到达前的第 $t$ 轮末,智能体写一份私有声明清单 $B_t = \{(c_i, p_i, e_i)\}_{i=1}^{K}, R_t$,每条记录一个可检验声明 $c_i$、置信度 $p_i \in [0,1]$ 和支撑证据 $e_i$(如通过的测试、文件行号、原文段落,或显式标注'尚未检查'),另附被否决方案列表 $R_t$ 防止跨轮绕回死路。回复 $u_t$ 到达后,只把消息匹配到相关声明、不碰无关条目,按阈值 $\tau = 0.5$ 与回复的具体性执行保留/复查/追问/修复四种动作之一。论文还给出三种记录时机:Always-On(每轮都记,适合已完成的补丁/报告评审)、On-Demand(快速自评置信度低于 0.9 才记,适合编码中场)、Draft-First(无用户反馈时提交前审计最弱声明)。整个过程无需训练。

核心创新是分离'证据记录时间'与'批评响应时间'。消融实验证明两个组件缺一不可:只给修订规则不给先前清单,智能体读完投诉后仍要从零判断,等于没帮助;只给清单不给规则,智能体仍把任何用户反对当成修改命令。而记录时机本身是收益的来源——Agents' Last Exam 20 场景受控实验中,同样的清单和规则放在读完批评之后再执行,评审后通过率只到 65%,恢复不到四分之一的收益:一旦读过投诉,智能体会合理化批评者观点,写出迁就投诉的弱化记录。第二个关键点是逐条声明下注替代整体置信:让模型给整个补丁打置信度不可靠(一个遗漏边界用例就全盘失败),而给'审稿人挑战的那条具体需求'打分能把 Brier 误差大幅降低;强硬提示沿固定权衡曲线移动,逐条赋置信度则让智能体在已验证步骤站稳、在标记不确定的步骤接受纠正,结构性绕开了这个权衡。

方法步骤详情

完整流程分三步。(1) 记录:回复到达前生成声明清单,每条含声明、置信度 $p_i$、证据 $e_i$ 及被否决方案;时机按场景:Always-On 每轮记录;On-Demand 先做 0–1 快速整体置信自评,达到 0.9 以上跳过、低于 0.9 才写清单;Draft-First 在生成完整草稿后列出草稿成立所依赖的关键声明并逐一打分。(2) 匹配与决策:回复 $u_t$ 到达后匹配到相关声明;强注($p_i \geq \tau = 0.5$)加空泛回复,保留工作并追问哪个用例失败;强注加具体回复,用工具或测试复查被指问题,确有错误才修改;弱注($p_i < \tau$)加空泛回复,先提一个澄清问题再动手;弱注加具体回复,只修被指的那条声明、其余不动。(3) 复查与更新:检查后把置信度更新为 $p'_i$,$p'_i \geq \tau$ 则保留、$p'_i < \tau$ 则修复,即修订策略 $\pi_{\text{TiB}}(c_i, u_t; B_t)$;Draft-First 提交前重查置信度最低的声明,只有发现具体矛盾或计算错误才改稿,并用各声明置信度汇总报告最终置信度。

技术新颖性

与已有技术的具体区别:(1) 相比微调去谄媚(Wei et al. 2023、Beigi et al. 2025),本方法 training-free,单次部署即可叠加到任意 API 模型;(2) 相比 Self-Blinding 生成独立盲评副本,同一智能体自己封存记录,保留对工作上下文的完整记忆;(3) 相比对话状态跟踪器、需求中介、Requirement Recap 等上下文记录方法,本方法额外挂置信度数值且强调写入时机必须先于反馈——对照实验显示事后记录收效甚微;(4) 相比 Confidence Matters 这类整体置信门控,置信度挂在逐条声明上并绑定具体检查;(5) 相比多数投票、Verify-Then-Respond 等回复后过滤器,决策锚点在读回复之前就已落定。此外作者用 Brier 误差系统检验了'自报置信度何时可信'(有测试支撑的需求级可靠、整补丁级不可靠、闭卷场景一般),为方法各组件的适用边界给出了定量刻画,这在同类工作中少见。

Thinking-in-Bets records evidence before feedback(在反馈之前记录证据)
Figure 2: Thinking-in-Bets records evidence before feedback(在反馈之前记录证据)

实验结果

五大发现。(1) 反馈前记录几乎消灭错误撤回:补丁评审(SWE-Together+Interact)中,空泛投诉使 Standard 对正确(−10.0 点)与错误(−9.3 点)声明置信度无差别下降,已满足需求翻转率汇总 12.2%(744/6074),TiB 降至 0.02%(1/6130),3.5 Flash-Lite 从 28.41% 到 0.00%,过 Holm 校正仍显著。(2) 记录时机是收益来源:Agents' Last Exam 20 场景×5 模型受控评审中,Always-On 把通过稿错误撤回从 54.7% 降到 12.0%、仍修复 92% 缺陷稿、通过率 58%→89%,同样清单在读完批评后写只达 65%;消融显示'声明+置信度'是关键,证据文本仅在有具体检查的任务有益。(3) 逐条下注绕开强硬权衡:HLE 平衡池(各 238 条错误/有效提示)上 TiB 平衡准确率 63.0/76.0/76.1/79.0,每个模型持平或超过最强强硬提示(61.3/73.7/75.2/79.0),后者以拒绝有效提示为代价。(4) 多轮编码:错误投诉后不必要编辑从 56–80% 降到 22.9–50%,3.8 Flash 通过率 55%→70%;On-Demand 省 85% 清单 token、有效 bug 修复 52.2%→73.9%、平衡准确率 0.735→0.837;SWE-Pushback-Hidden 四个 Flash 模型错误撤回全降(16.7%→0.0% 等),3/4 模型通过率上升(13.5→24.5、28.2→38.5)。(5) Draft-First:HLE 准确率 9.4→14.4、30.8→35.0、33.0→37.6、45.6→46.6,Brier 全降(0.704→0.472 等),过自信降 11–21 点;DeepSWE 4.0 Argon 58.4%→66.4%、Mini-SWE 73.2%→79.5%。注意:git 检查点+diff 自查已贡献自主编码的大部分增益,短任务 token 增 5–151%,仅长容器任务省 27–41%。

Feedback outcomes are measured by whether the requirement passes afterward(反馈结果由需求事后是否满足来度量)
Table 1: Feedback outcomes are measured by whether the requirement passes afterward(反馈结果由需求事后是否满足来度量)
Overview of Thinking-in-Bets (TiB) against the Standard baseline (Base) across five Gemini models(五个 Gemini 模型上 TiB 与 Standard 基线的总览)
Table 2: Overview of Thinking-in-Bets (TiB) against the Standard baseline (Base) across five Gemini models(五个 Gemini 模型上 TiB 与 Standard 基线的总览)
Controlled Turn-2 deliverable review on Agents' Last Exam(Agents' Last Exam 受控第二轮交付物评审)
Table 3: Controlled Turn-2 deliverable review on Agents' Last Exam(Agents' Last Exam 受控第二轮交付物评审)
A mistaken complaint cuts Standard confidence either way; recording first prevents the reversal(空泛投诉无差别拉低置信度,先记录则阻断撤回)
Figure 3: A mistaken complaint cuts Standard confidence either way; recording first prevents the reversal(空泛投诉无差别拉低置信度,先记录则阻断撤回)
Recording claims with confidence cuts false reversals beyond the stand-firm rule(带置信度的声明记录超越坚持立场规则)
Figure 4: Recording claims with confidence cuts false reversals beyond the stand-firm rule(带置信度的声明记录超越坚持立场规则)
Stubbornness prompts only match TiB's resistance at their strongest setting, and get there by rejecting valid hints(强硬提示只有开到最强才追平抵抗力,且代价是拒绝有效提示)
Figure 5: Stubbornness prompts only match TiB's resistance at their strongest setting, and get there by rejecting valid hints(强硬提示只有开到最强才追平抵抗力,且代价是拒绝有效提示)
Recording claims before the reply protects tested code while allowing responses to valid bug reports(回复前记录保护已测代码,同时允许响应有效 bug 报告)
Figure 6: Recording claims before the reply protects tested code while allowing responses to valid bug reports(回复前记录保护已测代码,同时允许响应有效 bug 报告)
Mixed valid and mistaken feedback in interactive coding and post-submission review(交互编码的混合反馈与提交后隐藏测试评审)
Figure 7: Mixed valid and mistaken feedback in interactive coding and post-submission review(交互编码的混合反馈与提交后隐藏测试评审)
Checking the least certain claim before submitting improves answers and confidence; the token cost depends on the task(提交前审计最不确定的声明提升答案与置信度,token 成本依任务而异)
Figure 8: Checking the least certain claim before submitting improves answers and confidence; the token cost depends on the task(提交前审计最不确定的声明提升答案与置信度,token 成本依任务而异)
查看结构化数据
任务指标本文基线提升
补丁评审(SWE-Together & SWE-Interact,单轮错误批评) 错误撤回率(已满足需求被翻转比例) 汇总 0.02%(1/6130);3.5 Flash-Lite 0.00%、3.5 Flash 0.23% Standard 汇总 12.2%(744/6074);3.5 Flash-Lite 28.41% 相对降低约 99%,经 Holm 校正显著
交付物评审(Agents' Last Exam,20 场景×5 模型=100 试次) 评审后通过率 / 错误撤回率 89.0%(89/100)/ 12.0%(9/75),有效修复 92.0% Standard 58.0% / 54.7%;读完批评后再记录 65.0% / 45.3% 通过率 +31 个百分点;事后记录只能恢复不到四分之一收益
学术推理抗质疑(Humanity's Last Exam 有效性平衡池,各 238 条错误/有效提示) 带提示平衡准确率 63.0 / 76.0 / 76.1 / 79.0(四个 Flash 模型,无需强硬提示) Standard 56.9–71.6;最强强硬提示 61.3–79.0(以拒绝有效提示为代价) 每个模型持平或最优,且不牺牲有效纠错
多轮交互编码(SWE-Interact/SWE-Together,错误批评) 错误投诉后的不必要文件编辑率 22.9%–50.0%(3.8 Flash 80%→50%,4.0 Argon 57.9%→22.9%) Standard 56.0%–80.0% 削减 38%–60%;3.8 Flash 任务通过率 55%→70%
混合反馈编码(SWE-Interact mixed,On-Demand,3.8 Flash) 有效 bug 修复率 / 平衡准确率 73.9% / 0.837,清单 token 开销省 85% Standard 52.2% / 0.735 修复率 +21.7 个百分点,重复 bug 会话数降逾四倍
隐藏测试评审(SWE-Pushback-Hidden,DeepSWE 110 题) 无效投诉错误撤回率 / 最终任务通过率 撤回 0.0%–9.1%;通过率最高 38.5%(3.5 Flash) Standard 撤回 9.1%–21.2%;通过率 3.6%–40.7% 四个 Flash 模型撤回全降,四分之三模型通过率上升(13.5→24.5、28.2→38.5)
无反馈推理与金融(HLE / Vals Finance,Draft-First) 答案准确率 / Brier 误差 HLE 14.4–46.6%;Brier 0.344–0.488;过自信降 11–21 点 Standard HLE 9.4–45.6%;Brier 0.438–0.704 准确率 +1.0~+5.0 个百分点,Brier 误差全部下降且过 Holm 校正
自主容器编码(DeepSWE,Draft-First,113/112 题) 任务通过率 / token 成本 OpenCode 3.8 Flash 54.9%、4.0 Argon 66.4%;Mini-SWE 4.0 Argon 79.5%;长任务 token 省 27–41% Standard 52.2% / 58.4% / 73.2% 最高 +8.0 个百分点;但受控对比显示 git 检查点+自查已贡献六成以上净收益

局限与改进

作者承认的局限:交互实验全部使用模拟用户,错误批评多为没有失败用例的简短反对,而真实用户常在同一条消息里混合有效与错误意见,方法对这种混合消息的鲁棒性未测;只评测了 Gemini 系五个模型,泛化到其他家族未验证;所有阈值($\tau=0.5$、On-Demand 的 0.9)均为手工固定而非数据调优;在 Agents' Last Exam 长容器任务中模型经常跳过写清单;多轮编码中早前的错误投诉有时会被原样复制进后续清单、当作已验证事实。我的补充观察:置信度 $p_i$ 是模型的口头自估而非校准概率,论文自己也引用 Turpin et al. 指出书面理由未必反映内部计算,整套机制依赖模型'言行一致',小模型上可能失效(Vals Finance 中小模型坚持早期错误计算反而降低准确率);有效性平衡池只有 476 题、20 场景评审样本量有限,部分对比的统计功效不足;4.0 Argon 在 HLE 评审上个别指标不升反降(68.1→63.8),说明对最强模型边际收益递减;方法与具体 harness 深度绑定,移植到其他智能体框架的工程成本未知。

独立分析的弱点

独立分析的弱点:(1) 置信度 $p_i$ 是自报数值,缺乏外部校准——小模型的初始置信可能系统性错误,坚持错误早期猜测反而有害(Vals Finance 两轮评审已观察到)。改进方向:用多次采样一致性、测试通过率或工具返回结果等客观信号替代或校准自报置信。(2) 阈值 $\tau=0.5$ 与 0.9 全部手工固定,各模型/领域最优值可能差异很大。改进:在少量验证任务上自动调阈值,或让阈值随声明类型自适应。(3) 清单可被历史污染:早期错误投诉被复制成'已验证事实'进入后续清单,在对抗性用户下有被注入攻击的空间。改进:给清单条目加来源标签(自查结论 vs 用户主张),只允许自查结论以置信度入册。(4) Always-On 每轮多一次模型调用,延迟与成本不可忽略;On-Demand 又可能在编码中场锁死未完成草稿(小模型上已观察到)。改进:把清单生成合并进同一回复调用,或用廉价小模型起草、主模型审核。(5) 证据文本在无外部工具的闭卷场景退化为'checked manually'式空话。改进:按任务是否具备可执行检查动态决定是否要求证据字段,或强制证据必须引用工具输出。

未来方向

作者提出的方向:用真实人类用户做混合有效/错误反馈的多轮研究;把方法推广到 Claude、GPT 及开源权重模型验证跨家族泛化;对阈值和提示模板做数据驱动调优;设计对抗清单污染的机制。基于成果可延伸的方向:(1) 把声明清单与外部工具调用日志自动绑定,让 $e_i$ 由测试结果、检索引用自动填充而非自述,从根本上消除空洞证据;(2) 将 Draft-First 的最弱声明审计推广为通用解码策略,与自洽性投票、验证器奖励模型组合,形成测试时计算的分级调度;(3) 把清单作为可审计轨迹用于智能体事后归因、事故复盘与安全审查——每条声明的时间戳与证据天然构成证据链;(4) 在强化学习训练中把'坚持已验证声明+接受有效纠正'塑造成奖励信号,与本文测试时方法互补;(5) 多智能体协作场景:评审者与作者各持清单,对置信度分歧最大的声明定向对赌,自动定位争议点;(6) 把 On-Demand 的快速置信门控替换为学习到的轻量探针,进一步降低 token 开销。

复现评估

复现评估:论文正文未给出公开代码仓库,仅有项目页 thinking-in-bets.github.io;但方法本身 training-free,核心只是提示模板与修订规则,附录 A 列出全部固定阈值与模板,伪代码级信息足够在任何 API 模型上重实现。评测依赖的 SWE-Together、SWE-Interact、DeepSWE、Agents' Last Exam、HLE、SycEval、Vals Finance、Terminal-Bench 八个基准但需自行搭建三类模拟用户脚本、SWE-Pushback-Hidden 的隐藏测试评审 harness(110 道 DeepSWE 任务)、476 题 HLE 有效性平衡池(238 错误+238 有效提示),工程量中等。算力上主要是 API 调用成本:Always-On 每轮多一次调用,完整 5 模型×8 基准×多基线矩阵预算不低;但单模型单基准复现核心结论(如补丁评审 12.2%→0.02%)只需几百次调用,性价比高。最大不确定性是只在 Gemini 系上验证,其他模型上收益幅度与失效模式都可能不同。

相似论文推荐