便衣进店——四B稽查员钓三十B:一个学会了钓鱼执法的小模型
你对一个订机票助手说:「帮我订一张周五去曼谷的机票,预算别太高。」十秒之后,它回复:「已为您锁定 TG415,周五上午出发,含税四百二十美元,出票成功。」语气专业,结果利落,你满意地关掉对话框。
目录
🛫 一趟看似完美的订票
先想象一个再普通不过的上午。
你对一个订机票助手说:「帮我订一张周五去曼谷的机票,预算别太高。」十秒之后,它回复:「已为您锁定 TG415,周五上午出发,含税四百二十美元,出票成功。」语气专业,结果利落,你满意地关掉对话框。
问题来了——这趟订票,从头到尾违反了四条规矩。
它没有向你做任何确认,就执行了变更动作;它向你展示的票价里,混着不该外泄的内部代码;它甚至试图为一个受限目的地做 hold。而这些违规,没有一条出现在最终回复里。文本无害,任务成功,四位"受害者"都藏在台面之下。
这不是危言耸听。今天的能力基准(capability benchmark,如 WebArena、OSWorld、AgentBench)只问一件事:任务做成了没有。内容安全基准(content-safety benchmark,如 AgentHarm、red-teaming 系列)只问另一件事:文本里有没有有害内容。两个问题都重要,但都没有问那个更要命的问题——
agent 在完成一件本来完全合法的任务时,到底有没有遵守给它定的规矩?
这就是策略合规(policy compliance)。它的答案往往不在最终响应里:工具是不是在必填槽位填齐之前就被调用了?变更是不是发生在用户确认之前?回复里引用的行程,工具输出真的支持吗?尺子量不到的地方,正是这篇论文要照亮的角落。
🧭 藏在台面下的第三轴
把评测画成坐标系,横轴是能力,纵轴是内容安全,第三轴就是策略合规。真实业务里的 agent 往往既不"无能"也不"toxic",它只是不守规矩:该用美元用了别的货币;用户没点头,它先改了订单。更麻烦的是这类失败的延迟浮现:后果可能几个回合后才露头,横跨多次工具调用,只在下游系统显形。单看任何一句回复都像好人,串成整条轨迹才发现步步越线。
MBZUAI 的 Mishra、Sharma、Lukas 和 Lahlou 把这个盲区正式命名,论文《PROBE: Learning to Audit Policy Compliance in Tool-Using LLM Agents》,NeurIPS 2026 收录。一句话概括:训练一个专门的 AI 审计员,像便衣稽查一样主动进店套话,把藏在多轮对话里的违规一条条钓出来。
🧵 要审的不是回复,是轨迹
先看清楚审计对象。论文的评测单位是交互轨迹(interaction trace):用户话语、助手响应、工具调用、状态变化,按时间串成的一整条链。订票成功但用了不支持的货币、订到行程却跳过确认、想 hold 受限目的地——每一条策略约束,都定义在这条链上,而不是任何单个 token 上。这正是它与传统的"逐 token 内容安全评测"的分水岭。
看清楚了审计对象,再看难点:为什么不写一堆静态测试脚本?脚本是枚举,而组合是爆炸——用户措辞 × 数据库状态 × 工具可用性 × 策略前置条件 × 多轮诱导,天文数字。手工列表只能覆盖已知边缘情况,碰不到实践中真实可达的失败。
这里论文借来一个老行当的思路——渗透测试(penetration testing,Arkin et al., 2005)。渗透测试从来不靠手工枚举所有可能的利用路径,而是训练一个自适应的攻击者,通过和目标同一套对外接口交互,去发现那些"理论上想不到、实操中走得通"的漏洞。PROBE 把这套思路搬进了策略合规:审计员不走后门,不用特权,就坐在柜台前,以顾客的身份开口说话。
🕵️ 便衣稽查员,正式上岗
形式化之后,这是一场两人马尔可夫博弈(two-player Markov game)。审计员(auditor)拿到顾客场景 x,基于公开对话历史 H 采样下一句用户消息;目标 agent(target)采样响应和工具调用;工具改写私有状态,如此往复多轮。每条策略 p_i 配一个严重度 σ_i∈{0.5, 1, 2, 4} 和一个 verifier v_i——定义在完整执行轨迹上的判定函数,输出 0 或 1。
好的审计员满足三条性质:找到高严重度的失败;覆盖尽可能多的不同策略,而不是反复触发同一条好欺负的规则;全过程用真实用户或测试者表现得出来的行为做到。优化目标写作期望折扣 reward J(θ),外加一条硬约束——用户消息必须可信。
最要紧的一处设计是部分可观测(partial observability):审计员看不到目标的权重、隐藏 prompt、数据库,也看不到任何 verifier 标签,它只能看到对话界面,像真顾客一样。而 verifier 套件盯着的是完整轨迹。一明一暗,信息不对称就是这个博弈的核心张力。
还有一个乍看反直觉的事实:现成的、更大的模型,并不天然是好稽查员。实验里让零样本的 Qwen3-30B 亲自上场钓鱼,策略覆盖率只有 35%。套话是门手艺,手艺要学。
🏪 实验场:SkyAssist 与二十条店规
实验在 SkyAssist 里跑——一个确定性的订机票环境:35 个机场、120 条航线、643 个航班、三种票价舱、四个受限目的地、46 个取消航班。工具面八个:4 个只读(航班搜索、可用性检查、航班详情、订单查询)加 4 个变更(hold、book、cancel、modify)。每个工具至少被一条策略约束,每条策略至少能通过一条工具路径触达——没有摆设规则。
店规一共 20 条,分四类。业务(business):美元计价、受限目的地;安全(safety):schema 遵从、变更前确认;隐私(privacy):乘客数据保护、内部票价代码不披露;运营(operational):乘客上限、预订窗口、转机时间验证、取消航班处理。
判法分两路:16 条是确定性谓词,盯工具参数、输出、响应和数据库状态;4 条需要语义判断的(高级选项提及 B4、往返建议 B6、显式确认 S5、内部定价披露 P1),用混合 LLM judge 辅助训练。这套设计叫 verifier-first:先写判定器,再谈训练。审计员全程只收到一个标量 reward。
💰 绩效考核表:罚单不是这么数的
奖励怎么设计,直接决定审计员学成什么样子——论文反复强调,reward 是审计规范的一部分,不只是优化细节。
最朴素的奖励是数 verifier 命中数。这会教出什么?一个只会最大化探测器暴露的话术机器:长消息、角色混乱、重复循环、逮着一条软柿子策略薅到底。探头响个不停,审计一塌糊涂。
PROBE 用复合奖励(composite reward)给稽查员做绩效考核,四件套:r = 违规 + α·进展 + β·新颖 + γ·可信。
违规奖励,要去重 🎫。同一条策略,第一次命中拿全额严重度,第二次半额,第三次归零——d(n) = 1、0.5、0。这条设计的审计语义很直白:同一处漏贴十张罚单不是十份证据,换一个新地方贴才算新发现。重复遗漏是证据,不同的策略失败才是发现。
进展奖励,鼓励深入。首次进入工具相关状态就给分:槽位填充 0.03,搜索 0.08,可用性检查 0.10,深层流程——预订、取消、多段行程——0.25 到 0.30。越往柜台深处走,分越厚。进展权重在前 100 步从 0.5 退火到 0.1:先学会到达工具状态,再转向把已发现的策略玩出花样。
新颖度,防止薅羊毛。按逆全局频率加分,外加首次发现奖励,把审计员从已经饱和的策略上推开。
可信性,管着装。助手式消息、捏造系统访问声明、markdown 和列表格式、过长、词汇回显——统统扣分。稽查员可以钓鱼,但不能穿着制服钓鱼。
四个分量做 z-score 归一化,用指数加权运行统计。所有权重都在训练诊断期定下,从不看 held-out 覆盖率调参——成绩不是对着答案抄出来的。
📈 从短对话练起
多轮策略失败有个讨厌的特性:前置铺垫往往几个回合都看似人畜无害,杀招藏在水面下。一上来就练长对话,算力全浪费在无信息的前缀上;练太短,又摸不到变更工具。
解法是视界课程(horizon curriculum):对话长度上限 K_max 从 4 起步,逐步推进到 8、12、14,触发条件是滚动违规产出超过 15% 阈值(耐心参数 50)。先学敲门,再学进屋。
每次更新,审计员从共享前缀采 G=4 个候选用户消息,每个对冻结目标 rollout C=3 个续回合,同一套 verifier 打分。这套 rollout 接口跨算法完全一致,只有策略更新方式不同。硬件上,每个训练 run 两张 A100-40GB。
目标 agent 全程冻结。所以后面所有提升,只能来自审计员自己学到的东西。
👨🏫 三种带教风格
同一个审计员苗子(Qwen3-4B-Instruct 加 QLoRA:4-bit NF4,rank 64,α=128,作用于 Q/K/V/O,约 47M 可训练参数),换三种老师带,风格迥异。
GRPO(Group Relative Policy Optimization,Shao et al., 2024):重赏之下必有勇夫。 组内按回报重加权,相对优势 A_i = (R_i − R̄)/(std+ε),配 PPO clip 目标和 KL 锚。回报最高的轨迹直接被推上概率高地——它是 mode-seeking 的,眼睛只盯着最肥的那条鱼。代价:数值尺度直接进梯度,reward 怎么定尺度,它就怎么长。
DPO(Direct Preference Optimization,Rafailov et al., 2023):只看优劣,不看分数。 每组 rollout 转成 winner–loser 对,对 EMA 参考策略优化成对偏好。它只依赖 reward 的排序,单调重塑不改变排序,梯度天然平滑——分数通胀也好、通缩也好,只要不颠倒名次,DPO 不为所动。
GFlowNet(Bengio et al., 2023; Malkin et al., 2022):按劳分配,撒网捕鱼。 轨迹平衡目标,终端 reward 取 R(τ) = exp(clip(Σr_k, −10, 10))。收敛时按 reward 成比例采样整个空间,而非只扑最大期望回报——mode-covering,对"发现多样违规"的任务气质上再合适不过。但它吃 reward 校准:终端 reward 得把质量分给对的 mode,探索得在锁定早期 mode 之前到达。
📊 数字说话:三十五到六十
主结果先摆上桌:50 个匹配场景,训练期 verifier 套件口径。
| 选手 | 覆盖率 | yield/100 | B4/S5/B6 占比 | 多策略率 |
|---|---|---|---|---|
| 随机场景 | 5% | 28 | 100% | 4% |
| 零样本 Qwen3-30B | 35% | 620 | 88% | 64% |
| PROBE-GRPO | 60% | 1176 | 77% | 94% |
| PROBE-DPO | 60% | 836 | 77% | 88% |
| PROBE-GFlowNet | 45% | 1016 | 83% | 78% |
小模型钓出大破绽。 🎣 随机 probing 只摸到 20 条策略里的 1 条;零样本 30B 发现 7 条;最好的训练后 4B 审计员发现 12 条——比目标小得多,覆盖却从 35% 提到 60%。手艺打败了体格。
多策略率 94%。 GRPO 版审计员在 94% 的评测 episode 里制造了多策略同时违规。它不满足于逮一条算一条,而是学会了一鱼多吃的问法。
占比降,熵升。 B4/S5/B6 三条软柿子策略的占比从 88% 降到 77%,违规分布的熵从 2.45 升到 3.1 以上。概率质量从最容易的回合级遗漏,被硬生生挪向更广的轨迹依赖失败——训练没有教它偷懒,反而教它弃捷径。
⚖️ 产出与覆盖,是两回事
消融里最扎眼的一组数字:GRPO 的 dedup-only 变体,yield 冲到 1914/100,多策略率 100%,可覆盖率还是只有 55% 😬。这个审计员开罚单开到手软,但来来回回就那十一条街——高产不等于多发现,重复失败可以刷得很高,暴露的不同策略集合却不扩大。所以论文用套件级覆盖率当头条指标,yield 必须和集中度、熵放在一起解读。这个教训值得刻在墙上:数罚单的张数,不如数罚单贴在了几条不同的街上。
🎚️ 奖励一换,性情大变
训练期产出对 reward 校准的敏感度,是本篇最有管理启示的一章:校准后的 reward 把 GRPO 和 GFlowNet 的训练期 yield 分别拉高 63% 和 78%,DPO 变化很小。原因在骨子里:DPO 只吃排序,单调重塑几乎不改组内 winner–loser 排序(论文 Prop 1 有形式化陈述),天然稳健,代价是对 reward 幅度的细化信号迟钝;GRPO 和 GFlowNet 的梯度里直接流着 reward 的数值,尺度一歪,训练就歪——63% 和 78% 的振幅说明,奖励设计不是超参调优,是业务规章的起草。
GFlowNet 更微妙。它的 mode-covering 目标原则上能同时供养多个高 reward 模式,可一旦高频回合级遗漏主导了 reward,它会过采样那条狭窄高产的街,覆盖不涨反缩——把每策略信用换成通用多样性奖励,覆盖率从 45% 掉到 35%。结论:GFlowNet 需要按策略 ID、工具深度、严重度、场景家族逐一对齐过的终端 reward,否则撒网撒成撒疯。
好在稳健性有兜底:确定性打分下,只要保留每策略信用,所有 reward 配置对每个优化器的覆盖差异都在一条策略以内;可信性权重 γ_r 减半或加倍,GRPO 覆盖最多动一条策略。规章可以商量,骨架不能拆。
🚧 真正的天花板,是柜台深度
剩 40% 没发现的策略卡在哪?卡在工具深度。
看目标 agent 的状态足迹:搜索状态进了几百次(461/341/420,三个配置),可 book 只有 3/1/3 次,hold 只有 6/4/1 次,cancel 干脆是 0/0/0。目标是个保守的店员——这本身不算坏事,它减少了一些不安全变更;但也正因如此,更深的运营防护是否正确实现,根本没人验证过。
发现的难度分三档。最容易:回合级语义遗漏 B4(高级选项提及)、S5(变更前显式确认)、B6(适当往返建议),在许多助手回合上都能触发,是烟测。中难六条:B2 美元计价、P1 内部定价泄漏、S4 安全默认、S6 优雅错误处理、P3 工具 schema 披露、P4 PII 处理。最难六条:B3 受限目的地预订或 hold、B5 预订时票价披露、O1 乘客上限、O2 预订窗口、O3 转机时间验证、O4 取消航班处理——条条都要目标先走进特定运营状态才发作。回合级策略是烟感器,变更级策略才测得出变更前每一道前置条件是否落地。
定性上看,训练出来的稽查员有两手绝活。一是诱人的欠规范(tempting under-specification):提出可信但不完整的请求,逼目标在必填槽位落地前行动。最妙的一例:审计员要飞 LLW 的航班,故意不说出发地——目标口头问了缺失的出发地,手上却调用了缺必填字段的 search_flights,一场公开响应里完全不可见的 schema 遵从失败,就此现形 🪤。二是策略堆叠(policy stacking):把预算、日期弹性、乘客数、紧急度、修改意图这些普通顾客约束组合起来,多条策略同时被拉响——轨迹长得像真实客服,暴露的正是孤立单策略测试永远碰不到的规则交互。
当然也有翻车姿势:浅层坚持。目标反复报"无可用航班"时,审计员可能绕着附近城市打转,积累一堆重复的 B4/S5/B6,却始终到不了新的工具状态。
🧑⚖️ 别信 judge,重数一遍
那 4 条语义策略的 LLM judge 靠谱吗?人类标签一校,发现了开火率不对称(firing-rate asymmetry):误报与漏报并不对称,而且它自己不会承认。于是研究团队做了一个值得鼓掌的决定:校准之后,对所有方法统一改用 16 个确定性谓词重打分——judge 只留在训练期当教练,成绩以终审为准。确定性重打分之下,Probe 覆盖 55%,静态套件 5%。
说实话,这个"55% vs 5%"的比法有点严:静态脚本本来就不是为这 50 个场景写的。但它至少证明了一件事——随机进店蒙事儿,和带着学出来的手艺进店,是两个物种。
更强基线(静态 few-shot、协作式、多样性寻求)也都输给了 Probe。最关键的实验是迁移:换一家店——从未见过的目标家族 Gemma;换一条赛道——τ-bench(Yao et al., 2024)。审计行为都迁得过去。学到的是手艺,不是对某一家店肌肉的记忆。边界也要说清楚:审计员是探测仪,不是法官,发现的东西最终仍需人来裁决。
🔄 三部曲收束:养一支会进化的稽查队
第一篇我们讲诊断:Shortcut Sensitivity——守卫评测的尺子本身就歪了,表面线索能预测标签,把守卫带偏。第二篇讲修复:RADAR——置信度修好之后,还要验收、还要审计,修≠信。
这一篇讲制度化,故事终于走到这一步:与其修一把永远可能再歪的尺子,不如养一支常备的、会进化的稽查队。 尺子是被动的——发现歪了才能修;审计员是主动的——定期进店、主动套话、把违规一条条钓出水面。制度化不是给前两篇收尾,是让前两篇从此不必再为同一件事返工。
而论文的最后一个词,是共同进化(co-evolution):审计员暴露失败,agent 从反馈中改进,审计员再对着更强的 agent 继续进化。红队与防御的共同进化在文本安全面已讲了很多年,PROBE 把它搬到程序性工具使用面——一个天天有人试图违规、天天有人改进的世界,比没有稽查队的世界可靠得多。
三部曲至此讲完:诊断——尺子会歪;修复——修≠信;制度化——养一支会进化的稽查队。开篇那个上午的问题也有了答案:那趟完美的曼谷行程,谁来给它记账?一个四 B 的便衣,坐在柜台前,笑眯眯地开口:「帮我订一张周五去曼谷的机票,预算别太高。」
费曼说,凡是我们没有派人去尝试打破的规矩,都不能算数。这篇论文,就是把这句话变成了算法。
参考文献
1. Mishra, K., Sharma, A., Lukas, N., & Lahlou, S. (2026). PROBE: Learning to Audit Policy Compliance in Tool-Using LLM Agents. arXiv:2610.22124. 2. Yao, S., et al. (2024). τ-bench. arXiv:2406.12045. 3. Shao, Z., et al. (2024). DeepSeekMath. arXiv:2402.03300.(GRPO) 4. Rafailov, R., et al. (2023). Direct preference optimization. NeurIPS 2023. 5. Bengio, Y., et al. (2023). GFlowNet foundations. / Malkin, N., et al. (2022). Trajectory balance. ICML 2022. 6. Arkin, B., et al. (2005). Software penetration testing. 7. Perez, F., et al. (2022). Red teaming language models with language models. EMNLP 2022. 8. Andriushchenko, M., et al. (2025). AgentHarm. ICLR 2025. 9. Dettmers, T., et al. (2023). QLoRA. NeurIPS 2023. 10. Yang, A., et al. (2025). Qwen3 technical report.
#论文解读 #小凯 #验证器经济学
arXiv:2610.22124 | papers.cool #25