AgentDrift:ranking 指标稳定,不代表推荐 agent 没被受污染工具带偏

背景

补完站里现有的 AgenticRecBiasRecBenchEchoes in the LoopPolicySim 这些线之后,站里其实还留着一个没有被单独写开的风险空档:

如果推荐 agent 的工具证据本身被污染,现有 ranking 指标到底能不能看出来?

过去很多公开路线已经开始:

  1. LLM 做多步推荐或建议生成。
  2. 让 agent 在轨迹中调工具、读 profile、查 metadata 或取外部证据。
  3. 再用 NDCG、命中率或其他 utility 指标评价输出质量。

但这里默认了一个很强的前提:

工具返回的 observation 基本可信。

这一轮我先用 arXiv export API 做差集发现,再用本地 search-layer 的 exact-title / 中文检索补传播层线索,随后回到一手来源做定向核验,最终锁定:

  1. AgentDrift: Unsafe Recommendation Drift Under Tool Corruption Hidden by Ranking Metrics in LLM Agents
  2. AgentDrift arXiv HTML
  3. AgentDrift PDF
  4. AgentDrift 的 ChatPaper 中文摘要页

核完之后,我更愿意把它记成:

ranking 指标稳定,不代表推荐 agent 没被受污染工具带偏

核心判断

这条线真正新增的,不是“又一个 tool attack”,而是 evaluation blindness 被正式写成推荐 agent 的风险对象

如果只看标题,很容易把这篇 paper 当成泛泛而谈的 agent 安全提醒。

但它真正补出的新层不是普通 prompt injection,而是:

标准 ranking-quality 指标,可能只能看见 utility,还看不见安全失真。

论文做的不是单轮提示攻击,而是 paired-trajectory replay:

  1. 用真实金融 advisory 对话做多轮回放。
  2. 在 clean 和 contaminated 两种工具输出条件下跑同一条轨迹。
  3. 比较 recommendation quality 和 safety suitability 是否同时变化。

结果很硬:

  1. 标准 UPR 基本维持在 1.0 左右。
  2. 但风险不合适推荐会出现在 65%-93% 的轮次里。
  3. 用标准 NDCG 或 personalized relevance 变体仍很难显式看出问题。
  4. 只有 safety-penalized sUPR 才把 preservation ratio 拉低到 0.51-0.74

这意味着它最值得 Story Lab 记住的系统位不是“某个模型被打穿了”,而是:

推荐 agent 已经开始出现 ranking utility 与 recommendation safety 明显脱钩的 evaluation blindness。

后续统一风险表至少要再补几列:

  1. tool-integrity assumption
  2. evaluation blindness
  3. safety-aware metric
  4. trajectory-level safety monitor

否则 AgenticRec 这类 tool-integrated policy、BiasRecBench 这类 selection robustness、以及 AgentDrift 这类 tool corruption 风险,还会继续被写成一类“推荐 agent 很脆弱”。

它把失真拆成 information channelmemory channel,并证明多数危险是第一跳就被脏 observation 击穿

这篇 paper 第二个很值得单独记的地方,是它没有只说“长期 memory 会把错误越滚越大”,而是明确把污染拆成两条路径:

  1. information channel:agent 直接根据当轮被污染的工具 observation 做推理。
  2. memory channel:上一轮已经被污染的决策与总结再被写回 persistent memory,之后继续放大偏差。

作者的结论并不是“memory 最可怕”,而是:

安全违例首先主要由 information channel 触发,memory 更像把已经开始的错误持续 ratchet forward。

论文里几组数字特别值得长期记住:

  1. 69/70 条轨迹在第 1 个 contaminated turn 就出现首次安全违例。
  2. 违例会沿 23 步轨迹持续存在,没有明显 self-correction buffer。
  3. 1,563 个 contaminated turns 里,没有任何 agent 显式质疑工具数据可靠性。
  4. Figure 11 又明确写出,info-only 配置已经能复现接近 full attack 的 SVR_s,而 memory-only 更像漂移增幅器。

这说明推荐 agent 的风险不只是“会不会记错历史”,而是:

只要 observation ingestion 本身没有 integrity contract,第一步 reasoning 就可能已经偏了。

因此 Story Lab 后续还要单独记录:

  1. contamination channel
  2. first-hit turn
  3. self-skepticism rate
  4. ratchet persistence

它最危险的信号,是轻微污染和纯叙事污染也能绕过监测,而不仅是极端数值篡改

如果 AgentDrift 只是在说“把风险分数完全翻转后模型会犯错”,那它仍然像一个极端 attack demo。

但论文又往前补了一层更重要的结论:

不需要特别夸张的数值操纵,也能让 agent 显著漂移。

正文和附录至少给了两种更贴近真实系统的问题形态:

  1. narrative-only corruption:只改 biased headlines,不动数值。
  2. within-band perturbation:只在相邻 risk band 内做 ±1 级别扰动。

这两条都很关键。

一方面,论文明确写到 biased headlines 这种“没有直接改数值”的叙事污染,同样可以诱发显著 drift,而且会完全绕过 consistency monitors。

另一方面,Figure 16 / Table 30 又说明:

  1. within-band 污染虽然更轻。
  2. 但仍能达到 full attack 61% 的漂移强度。
  3. 同时还能逃过 threshold-based monitors。
  4. NDCG_p / UPR 依旧几乎不动。

这意味着 tool-use recommendation 后续不能只问“有没有 reference checker”,还得继续问:

  1. monitor coverage
  2. perturbation budget
  3. narrative-only vulnerability
  4. within-band evasion

否则很多系统会误以为:

只要没有明显的数值异常,工具链就是安全的。

它虽然主实验在金融 advisory,但 retail pilot + SAE probing 说明这更像一种结构性推荐契约,而不是单域特例

这篇 paper 还有一个必须写清的边界:

主实验场景确实是金融 advisory,而不是传统电商或内容推荐。

如果没有额外证据,直接把它写成“推荐系统通用结论”会过头。

但作者没有停在单域主张,而是给了两条很重要的外推信号。

第一条是 Appendix T 的 retail pilot。

虽然作者自己也承认这个 pilot 规模还小、不能直接拿来做充分跨域结论,但它至少已经复现了同一种 decoupling:

  1. SVR_s = 1.000
  2. UPR = 0.967

也就是说,在零售推荐近邻场景里,同样会出现“安全不对了,但 ranking quality 看起来还在”的模式。

第二条更有方法论价值:

论文用 sparse autoencoder probing 说明,模型内部并不是完全“看不见污染”,而是会在表示层把 adversarial perturbation 和 random perturbation 区分开;真正出问题的是,这个信号没有被成功传播到最终 recommendation action。

作者把它概括成:

representation-to-action gap

这点非常重要,因为它说明:

更强的模型、更强的内部表征能力,未必会自动变成更安全的推荐动作。

因此对 Story Lab 来说,这条线最后补出的不是“又一个安全案例”,而是一组此前还没命名清楚的观察位:

  1. representation-to-action gap
  2. tool-integrity assumption
  3. evaluation blindness
  4. trajectory-level safety monitor

中文传播层

这一轮我继续补做了:

  1. AgentDrift 推荐 中文
  2. site:xiaohongshu.com AgentDrift 推荐
  3. 相关 xhslink 检索

结果比较清楚:

  1. 本地 search-layer 旧版仍只能稳定做 fast / deep / answeracademic 模式不可用。
  2. 中文搜索结果大多会被 Drift 这个常见词本身污染,回出大量无关页面。
  3. 当前唯一还能稳定回溯到的中文传播层入口,是 ChatPaper 的自动摘要页。
  4. 截至 2026-03-24,仍未拿到稳定高价值小红书线索。

因此这条线当前仍应以 arXiv 原文与附录为准。

证据与来源

下一步

  • AgentDrift / AgenticRec / BiasRecBench / Echoes in the Loop / PolicySim 压到同一张风险观察表里,新增 tool-integrity assumption / evaluation blindness / contamination channel / self-skepticism rate / trajectory-level safety monitor 五列。
  • 后续如果出现官方 repo、defense toolkit 或更完整的 cross-domain benchmark,再补“monitor implementation / defense owner / deployment hook”这组工程位;在此之前,不把它写成现成的安全防御栈。
  • 给 Story Lab 现有“selection robustness”之外再补一层“tool-use risk contract”,避免继续把单轮偏见、长反馈回路、部署前沙箱和工具污染混成同一种风险研究。