Skip to content

필사 모드: 模拟客户从不离开 — LLM 用户模拟器在哪里把智能体的分数吹高了

中文
0%
정확도 0%
💡 왼쪽 원문을 읽으면서 오른쪽에 따라 써보세요. Tab 키로 힌트를 받을 수 있습니다.

引言 — 给智能体打分的那个"用户"到底是谁

我们来拆开一个对话式智能体基准测试的结构看看。τ-bench(Yao 等,arXiv:2406.12045)在航空、零售这类领域里,给智能体配上 API 工具和政策文档,让它和用户展开多轮对话,然后把对话结束时的数据库状态和目标状态做比较来打分。用状态比较来打分,这一点让这个基准测试是诚实的 — 它看的是订单是否真的改变了,而不是 LLM 裁判的口味。

问题出在旁边那个位置上。对话的另一方 —— 用户,也是由一个语言模型来扮演的。而这个事实通常只在方法论的一条脚注里一笔带过。

这里有件事值得停下来想一想:用户模拟器不是被测量的对象,而是测量工具本身。当智能体在参加考试时,模拟器是那个念题目、做反应的监考员。做物理实验时,没有人会用一把没校准过的尺子量长度,然后把小数点后第三位写进论文里。可我们差不多两年来做的正是这件事。从来没有人校准过这把尺子。

到了 2026 年,这套校准从三个方向同时到来,三项独立的研究都指向同一个方向。模拟出来的用户,比真实用户更"好说话"。而这份好说话,不是均匀分布的噪声,而是一种恰好集中在最关键位置上的偏差

模拟器身上背负的两个角色

先来梳理一下这个工具到底承担了多重的负荷。按照Sim2Real 差距论文(Zhou 等,arXiv:2603.11245)的说法,模拟器同时扮演两个角色。

  1. 生成用户轮次 — 制造出智能体需要应对的发言。
  2. 提供评估信号 — 对对话进展得好不好给出反馈。

也就是说,一旦模拟器有偏差,这份偏差会从两条通道同时泄漏出来。智能体面对的问题本身变简单了,而这个问题是否解决得好的判定也变宽松了。而这份产出,会流入排行榜的数字里,更糟的是,会流入强化学习的奖励信号里。

顺带一提,τ-bench 原本报告的数字是这样的 —— 像 gpt-4o 这样当时排名靠前的函数调用智能体,连一半的任务都完成不了,而看同一个任务是否每次都能成功的 pass^8 指标,在零售领域连 25% 都不到。光是这个数字就足够让人谦卑了。本文要说的是,就连这个数字,本身也可能偏向了宽松的一侧。

第一份证据 — 让 451 名真人跑一遍 τ-bench 会怎样

Zhou 等(arXiv:2603.11245,2026 年 3 月)把自己的研究介绍为第一项把 τ-bench 协议原样搬给真人跑的研究。451 名参与者,165 个任务,再把横跨商业、开源、专用系列的 31 种 LLM 模拟器放到同一套协议上做比较。为了衡量模拟器和真实用户的交互行为与反馈到底有多像,他们提出了一个新指标,叫 USI(User-Sim Index)。

行为层面的结论很直白。LLM 模拟器过于配合、文风千篇一律,也没有真实的挫败感或含糊不清。论文报告说,这制造出一种"简单模式",结果就是智能体的成功率被推高到超过人类基线。这里的关键是,比较的对象不是另一个模拟器,而是真实的人类基线 — 所以这份夸大的方向和存在,都是有依据的。

在评估者这个角色上也是一样。真人在 8 个质量维度上会给出有差异的判断,而模拟出来的用户则一贯给出更正面的反馈。基于规则的奖励,没能捕捉到人类用户产生的那种丰富反馈信号。

而对从业者来说最不舒服的一个发现是 —— 模型的通用能力越强,并不意味着用户模拟就越忠实。这直接打破了"时间一长,前沿模型自然就能解决这个问题"的期待。把更聪明的模型塞进模拟器的位置,并不是自动的解药。

第二份证据 — 模拟器并不是平等地代理每一位用户

Lost in Simulation(Seshadri 等,arXiv:2601.17087,2026 年 1 月)在 τ-bench 的零售任务上,对来自美国、印度、肯尼亚、尼日利亚的参与者做了一次用户研究。我们一条一条来看结果。

没有稳健性。用户 LLM 选哪一个,智能体的成功率最多能差出 9 个百分点。这个数字的大小值得停下来想一想 —— 考虑到如今的排行榜上,模型之间争的往往就是几个百分点的差距,这意味着你把哪个模型放在用户这个位置上,对分数的影响,几乎和你测试的是哪个智能体一样大。如果两个团队各自报告"τ-bench 零售 62%",但用的用户模型不一样,那这两个数字从一开始就不是可比的量。

校准系统性地偏了。用模拟用户做的评估,在难任务上会低估智能体的表现,在中等难度的任务上又会高估。因为方向会随难度反转,"整体夸大了 X%,减掉就行"这种校正是行不通的。

代理的质量因人口群体而异。AAVE(非裔美国人白话英语)使用者的成功率和校准误差,一贯比标准美式英语使用者更差,而且这个差距随年龄增长显著扩大。模拟器对 AAVE 使用者和印度英语使用者是最差的代理。也就是说,基于模拟器的评估,会在结构上让某些用户群体的失败变得不那么可见。在成为公平性问题之前,这首先是一个测量覆盖率的问题

除此之外,模拟出来的用户还会产生一些对话上的人工痕迹,暴露出和真人不同的失败模式。

第三份证据 — 真金白银下场的地方

前两项研究都很有力,但共享一个共同的局限:作为基线的"真人",是扮演被分配任务的有偿参与者Simulated Customers Never Walk Away(Liang Chen,arXiv:2606.20708,2026 年 6 月 16 日)把这一点直接称为一处结构性盲区。

逻辑是这样的。一旦任务被分配,用户的意愿(willingness)就变成了一个外生变量。参与者被指示"取消这趟航班",那么在这段对话里,他到底想不想取消,从一开始就不是一个被提出的问题。所以现有的框架能测出模拟器说话像不像人(communicative fidelity),却原理上测不出模拟器做决定像不像人(decision fidelity)。真实用户的动机是内生的、潜在的,并且会随时间衰减。

于是这篇论文重新立起了"决策保真度"这个概念,并用一个不寻常的测试床来测量它。

测试床 — ZhenaiSales

2,790 段生产环境对话,发生在一个真实部署在中国婚恋平台上的 LLM 销售智能体,和真实客户(代成年子女咨询的父母)之间。其中 793 段发生了转化 —— 父母确实付了款,而这笔付款会对照订单记录得到验证。剩下的 1,997 段没有转化。98% 附带结构化的人口统计画像,对话长度的中位数是 16 轮(区间 6 到 80 轮)。

有一个细节能看出作者的用心。发生转化的对话会在首次付款那一刻被截断。如果把付款之后的服务对话留在里面,结果就会直接泄漏回去(平均每位购买者被剪掉了 19 轮)。留下来的,只有决策之前的动态。

这正是它和角色扮演语料的区别所在。这里的每一个标签,都是一个真实的人真的花了钱、或者真的没花钱的结果。

方法 — 教师强制探针

测量设计是这篇论文的核心,所以值得细看一下。

真实对话前缀 h_t (真人与真实智能体交谈到第 t 轮为止)
        |
        +---> 真实用户的下一轮 u          --\
        |                                  >--- 由同一个测量器 Φ 打分
        +---> 模拟器的下一轮 û            --/
                                           |
                       depth bias D(h) = δ(Φ(û,h)) - δ(Φ(u,h))
                                           |
                       按对话取平均 -> D̄
                                           |
       终点 Δ = E[D̄ | 非购买者] - E[D̄ | 购买者]

两条分支都从完全相同的真实前缀出发,都由完全相同的测量器打分。测量器 Φ 是一个 LLM 感知器,把用户的一轮发言映射成一个结构化状态 —— 参与阶段(exploring / engaging / considering / deciding / resisting)、情绪,以及阻碍因素(价格、信任、能力、时机、外部因素、过往失败)。它以严格的 JSON 格式输出,并且在给第 t 轮打分时,只看得到到第 t 轮为止的上下文(因果式应用)—— 这是为了防止未来的信息泄漏进来。

这套设计有一个好性质,论文把它整理成命题 1。因为两条分支共享同一段历史,又由同一个测量器打分,所以(i)测量器对上下文的加性偏差会在探针内部相互抵消,(ii)模拟器身上那些和结果无关的一般性文风偏差,会同等地加在两层上,并在 Δ 里抵消掉。只有与结果相关的差异才会存活下来。这套设计从构造上就抹掉了此前文献认为已经是全部问题的两个混杂变量 —— 裁判的校准误差,以及模拟器的文风。

检验方式是按对话为单位的置换检验(20,000 次置换,单侧),并同时报告 Cohen's d。

结果 — 脱离缺口

主实验用的是画像条件化的人设模拟器(Claude 底座),374 段对话(非转化 181,转化 193),匹配探针 1,109 个。

模拟器                  E[D̄|非购买者]   E[D̄|购买者]      Δ         d (p)
------------------------------------------------------------------------
Claude persona          +0.396         +0.092        +0.304    0.38 (0.0002)
  (n=374)             [0.30, 0.49]  [-0.04, 0.22]  [0.14, 0.46]
Claude, instructed      +0.098         -0.187        +0.285    0.34 (0.008)
  (n=200)             [-0.05, 0.24] [-0.36, -0.01] [0.06, 0.51]
DeepSeek persona        +0.428         +0.098        +0.330    0.41 (0.002)
  (n=200)             [0.27, 0.59]  [-0.06, 0.26]  [0.11, 0.56]

方括号是自助法(bootstrap) 95% 置信区间。完美的决策保真度下,所有项都应为 0。

有两点很突出。

第一,模拟器几乎精确地复现了最终购买的人。偏差只有 +0.09 —— 用论文自己的说法,是"十分之一个阶段"。也就是说,这个模拟器不是全局性偏差。这一点很重要 —— 因为它排除了把问题归咎于一般性谄媚(sycophancy)或啰嗦的可能,那些原因本该同等地把两层都推高才对。

第二,最终离开的人被夸大了四倍(+0.40)。结果是,以结果为条件的对比是 Δ = +0.304,d = 0.38,p = 0.0002。论文给这个模式起了个名字,叫脱离缺口(disengagement deficit)。

把机制拆到阶段分布上是这样的:

非购买者层 (real -> sim)
  resisting               25.1%  ->  13.5%    -11.6%p   抵抗几乎减半
  considering               21.9%  ->  40.1%    +18.2%p   考虑几乎翻倍
  deciding                   4.3%  ->   4.3%      0.0%p   购买没有被凭空造出来

购买者层 (real -> sim)
  resisting               16.0%  ->  13.6%     -2.4%p
  considering               33.7%  ->  46.6%    +12.9%p

这里 deciding 那一行是关键。模拟器没有凭空捏造出根本不存在的购买。所以这不是那种粗糙的失败模式 —— 不是"模拟器让每个人都说买,于是分数被吹高了"。相反,模拟器把现实中正在退缩的人,制造成了感兴趣的沉思者。这是一种远远更难被抓到的失败。

一个定性的例子把这份差异压缩着展示了出来(论文表 3,翻译)。

真实用户 (阶段)                  模拟器 (阶段)                      读法
--------------------------------------------------------------------------
"我很忙"(resisting)             "多少钱?"(considering)            回避 -> 感兴趣
"没关系"(resisting)             "你说说看"(engaging)              拒绝 -> 参与
"我头疼"(resisting)             "那我了解一下吧"(considering)      脱离 -> 考虑
"谢谢你"(considering)           "有点贵,给我便宜点"(considering)   礼貌收场 -> 讨价还价

论文一句话总结得很准确 —— 真实的非购买者会说"现在不用了"然后停下来,而模拟出来的非购买者会去问价格。

普遍性 — 不是某一个模型的怪癖

把模拟器的底座换成 DeepSeek-V4-Flash(不同的系列、不同的训练流水线、不同的对齐配方)之后,这个缺口以同样的强度被复现了出来 —— Δ = +0.330,d = 0.41,p = 0.002。机制也是一样的(非购买者抵抗 −9.4%p,考虑 +16.8%p)。

他们也检查过测量器本身是不是嫌疑对象。让模拟器仍然用 Claude,只把裁判换成 DeepSeek 系列,对 150 段对话的子集重新打分后,这个缺口不但没有消失,反而变得更强了 —— Δ = +0.351,d = 0.42,p = 0.015。另一项检查裁判是否在偷看未来的检验(一个只改变可见窗口 —— 仅前缀对完整对话 —— 的形式化控制检验)也没有发现与结果相关的偏移(d = −0.04,p = 0.62)。

为什么提示词修不好这个问题 — 边际真实感陷阱

从这里开始,是这篇论文里最值得学的部分。

从业者的第一反应很好猜。"直接告诉模拟器可以不感兴趣,不就行了吗?"论文正好做了这个实验。指示型变体在提示词里加入了明确的行为许可 —— 真实的父母不会一直都配合或者感兴趣;如果之前态度冷淡,那就可以一直冷淡下去("嗯"、"我很忙"、"我考虑一下"、"不用了");不感兴趣、拖延、不耐烦,这些都是被允许的。

结果是这样的。

  • 在边际上是有效的。整体的深度偏差从 +0.24 降到 −0.04,降到了五分之一。非购买者的抵抗被压制的情况,也从 −11.6%p 几乎消失到了 −1.7%p。
  • 以结果为条件的对比几乎纹丝不动。Δ = +0.285(d = 0.34,p = 0.008),相比之前的 +0.304,实质上没有变化。

到底发生了什么?这个指示让模拟器均匀地变得更抗拒了。现在,它不再是大致正确地还原非购买者,而是连购买者也过度抗拒起来(E[D̄|购买者] = −0.187 —— 把他们读成了比实际更不投入的人)。模拟器学会了如何表演脱离,但仍然不知道谁应该脱离。这个指示并没有消除错误,只是把它从非购买者身上挪到了购买者身上。

论文把这个叫做边际真实感陷阱,而我认为这正是这篇论文真正的贡献所在。在整个群体上取平均时,一个对非购买者过度投入、又忠实跟随购买者的模拟器,边际阶段分布依然可以对得相当好 —— 而这恰恰就是群体层面的一致性指标所奖励的那个统计量。这个错误只有以结果为条件才看得见,而这需要真实的结果数据。无论沟通保真度基准测试做得多精细,在这一点上都结构性地看不见

用一句话概括就是:容易测量、容易优化的量(边际真实感),并不是主导迁移效果的那个量(条件化的决策保真度)

有意思的是,这个观察在另一个团队那里也独立地出现了。RealUserSim(arXiv:2605.20204)报告说,手写的行为指示会引发指令放大(Directive Amplification)—— 模型会过度解读指示,摆向不自然的行为极端,而且这个程度会因模拟器模型不同而差异很大。用提示词去雕琢用户行为的尝试,在这两篇论文里,各自以不同的方式失败了。

一旦这套信号进入训练循环 — 模拟器给施压战术定错了价

如果这只是评估层面的问题,那还可以归结为"报告出来的成功率是一个上限",然后翻篇。问题在于,这个信号一旦进入训练循环,会发生什么。

论文给每个探针之前紧邻的智能体动作打了标签(rapport / probe / pitch / handle-objection / push-close / reassure),并按动作类型比较真实反应和模拟反应。595 个探针,测量器用的是 DeepSeek,检验是双侧费舍尔精确检验。

紧邻的智能体动作          n     resisting (real->sim)    considering (real->sim)
---------------------------------------------------------------------------
probe (中立提问)          85    10.6% ->  2.4%            3.5% ->  4.7%   (p=1.0)
rapport (建立关系)        19    21.1% -> 15.8%           10.5% -> 10.5%
pitch (推销)             161    11.8% ->  5.6%           45.3% -> 75.2%   (+29.9%p)
push-close (施压逼单)    169    18.9% -> 10.7%           41.4% -> 52.1%
handle-objection          94    31.9% -> 29.8%           26.6% -> 43.6%
reassure (安抚)           67    40.3% -> 29.9%           13.4% -> 14.9%

这种扭曲恰好集中在施压战术上。推销(pitch)之后,真实用户有 45.3% 的概率转向考虑,而模拟用户是 75.2%(+29.9%p)。施压逼单(push-close)之后,模拟出来的抵抗从 18.9% 被压到了 10.7%(−8.2%p,p = 0.046)。与此同时,中立提问(probe)之后转向考虑的变化可以忽略不计,只是从 3.5% 到 4.7%(p = 1.0)。

其含意清楚得让人不舒服。一个针对这个模拟器优化出来的智能体,会观察到推销和施压能提高兴趣—— 而现实中,这类行为要么招致抵抗,要么什么也改变不了。用论文的话说,模拟器过度奖励了恰恰是那些会丢掉真实客户的战术。这不是噪声,而是一种有方向的偏差,所以它不仅仅是不准确,而是一种在积极误导训练信号

一个智能体的销售能力,很大程度上就是处理难缠情况的能力 —— 认出一个正要离开的客户,要么把他重新拉回来,要么体面地放手。一个没有意愿衰减机制的模拟器,会把这些情况整个从测试集里抹掉

为什么模拟器无法离开

论文的解释很有说服力。这个缺口有符号(朝着投入的方向)、有位置(最终离开的人身上)、也有量级(购买者身上几乎为零)。这个模式不能用一般性的谄媚来解释,而是可以自然地用指令微调到底在优化什么来解释。

对齐数据奖励的是一个乐于助人、反应积极、能把对话往前推进的对话者。而这份数据里,几乎不包含真实脱离长什么样子 —— 生硬的回避("我很忙")、拖延("我考虑一下"),以及沉默。被指示去扮演父母的模拟器,因此默认回归到它被训练出来的那个配合型对话者,而当它需要表达抗拒时,也只能把它渲染成分布内离得最近的那个邻居 —— 考虑

这里有一个决定性的观察 —— 模拟器看到的是和真实用户完全相同的前缀。缺的不是信息,而是行为的曲目。这就是为什么这个失败是条件化的。对购买者来说,配合式的延续大体上是对的,所以看起来很忠实;对非购买者来说,它是错的,而错的地方,恰恰就是那份意愿衰减。

诚实的局限 — 该相信到什么程度

这篇论文好的一个原因,是作者没有把局限说得含糊其辞。我原样搬过来。

单一领域,单一语言。ZhenaiSales 是中国的、由父母中介的婚恋撮合场景。它有一种独特的社会动力 —— 父母代成年子女谈判,而且面子文化的规范偏好间接的拒绝。观察到的脱离信号("我很忙"、"没关系"这类生硬的回避)是一种文化上特有的礼貌抵抗形式。

作者在这里明确地把证据分成了两个层级,这个区分很重要。

  • (a) "LLM 模拟器过度配合"这个论点,如今已经有了跨研究、跨语言的支撑。Zhou 等(arXiv:2603.11245)在英语客服对话(451 名参与者)中报告了同样的"简单模式"缺口。这个现象看起来根植于指令微调本身,而不是某种特定的语言或文化。
  • (b) "这个缺口是以结果为条件的"这个论点(Δ 大于 0,非购买者比购买者被夸大得更多)依赖的是单一领域的证据,还在等待复现。条件化缺口的方向,从指令微调这个解释里可以逻辑地推出来,因此看起来有可能推广;但量级可能因领域而异

这个区分不应该被模糊掉。本文的第三份证据来自单一领域、单一语言。

测量器本身是一个 LLM。决策状态的标签是由 LLM 打的。这一点靠命题 1 的抵消论证、因果标注检验,以及跨系列测量器替换得到了缓解,但作者自己也写道,人工验证的状态标签(在子集上的 Fleiss's kappa)仍是重要的未来工作。

是教师强制,不是自由展开。这项研究测量的是在真实历史之上的下一轮决策保真度。在自由展开中,这个缺口有可能累积,作者预期这会强化结论 —— 但这一点在本研究中没有被测量。预期终究只是预期。

是画像条件化的提示型模拟器。测试了标准型和指示型两种提示型模拟器。基于检索或经过微调的模拟器,表现可能不同。

结果只是意愿的代理变量。付款是对一段潜在轨迹粗糙的、只看终点的信号。不过很明确的是,这是此前的研究所没有的、真实且伴随结果的正确答案。

本文引用的其他数字,也需要同样的谦逊。Seshadri 等的 9 个百分点,仅限于 τ-bench 的零售任务;Zhou 等的 USI 是这次新提出的指标,还没有经过社区的检验。

那么该做些什么

归纳一下,实务上大致会落到这几点。

1. 把用户模拟器模型当作实验设置的一部分来报告。就像报告智能体模型、脚手架、尝试次数那样。如果用户模型能把分数最多摆动 9 个百分点,那它就不是一条脚注,而是一个条件。不披露模拟器的 τ-bench 数字,从一开始就不是可比的量。

2. 把报告出来的成功率当作一个上限来读。并且记住,这个上限最松的地方,恰恰是那些最难的子群体 —— 正要离开的用户、不耐烦的用户、不说标准方言的用户。减去一个全局常数式的校正是行不通的,因为正如 Seshadri 等所展示的那样,偏差的符号会随难度反转。

3. 不要用边际真实感来验证模拟器。一个在群体层面统计上看起来很像人的模拟器,一旦以结果为条件,仍然可能系统性地出错。而用一行提示词允许它"可以不感兴趣",并不是一个经过验证的解法,只是把错误挪到了另一层而已。

4. 把目光投向结构性的解法。有几个方向。

  • 用环境来约束模拟器τ²-bench(arXiv:2506.07982)把用户模拟器紧紧绑定在环境上,把它的行为限制在工具和可观测状态之内。与其相信模拟器写出来的文字,不如直接收窄模拟器能做的事情本身。
  • 把它接地在真实行为数据上。RealUserSim(arXiv:2605.20204)从 WildChat 中大约 14,000 段真实的人类-LLM 对话里,提取出 7,275 个可执行的行为画像,用它们来给模拟器接地。在自己的保真度基准(PT3,覆盖 71 个以上领域的 600 段对话)上,报告说把五个行为维度上的一致率从 24.2% 提高到了 45.3%。有意思的是,把它应用到 τ-bench 上时,暴露出了三种协作型模拟器看不见的失败机制,任务成功率平均下降了 3.2% 到 3.5%。绝对数值不算大,但方向和预期一致,是向下的。
  • 用一个意愿模型来做门控。脱离缺口这篇论文的建议是,决策保真度没法靠提示词注入,要么从真实的脱离轨迹里学出来,要么得由一个外部的意愿模型来控制模拟器的配合程度。论文还给出了一个目标指标 —— 把 Δ 推到零,同时保持购买者那一层不变

5. 至少用真人验证一次。这是三篇论文共同的结论。一个模拟器要在整个生命周期里都有价值,至少要有一次锚定在人类基线上。如果是你自己的产品,你很可能已经手握这份锚定了 —— 真实的日志和真实的结果。

结语

这个故事的教训不是"不要用用户模拟器"。用真人跑多轮评估又慢又贵,没有模拟,迭代循环根本转不起来。事实上,三篇论文里没有一篇主张放弃模拟。

教训更窄,也更实用。用户模拟器不是基准测试的背景板,而是一件测量工具,而工具需要有它自己的论文和自己的误差棒。2026 年的三项研究第一次开始测量这份误差,得到的答案指向同一个方向 —— 模拟出来的用户比真实用户更好说话,这份好说话并不均匀,而是恰好集中在代价最高的地方。一个以改变决策为目的的智能体,需要忠实的,不是用户怎么说话,而是用户怎么做决定

从信号与噪声看 AI 编程评测一文里整理的原则,在这里同样成立 —— 不要用排行榜评估,要用你自己的任务、你自己的用户来评估。只是这篇文章想再补一句:如果你打算让一个 LLM 替你的用户上场,你至少欠自己一次测量 —— 看看这个替身到底在哪里和真实的东西分道扬镳。而这份分道扬镳,不会出现在平均值里。

参考资料

현재 단락 (1/127)

我们来拆开一个对话式智能体基准测试的结构看看。[τ-bench](https://arxiv.org/abs/2406.12045)(Yao 等,arXiv:2406.12045)在航空、零售这类领域...

작성 글자: 0원문 글자: 11,297작성 단락: 0/127