← 科研空间 首页
arXiv 2026 完整 paper2html

When Routine Chats Turn Toxic: Unintended Long-Term State Poisoning in Personalized Agents

日常长期交互如何慢性污染 personalized agent 的长期状态,以及 StateGuard 如何在写回边界回滚危险 diff。

原版 PDF

先给结论

这篇是 Drift Monitor 方向里最接近“可直接开做 baseline”的论文。它不假设恶意攻击者,不要求显式 prompt injection,而是证明 routine chats 本身就可能通过长期状态写回,把 personalized agent 的授权边界、工具默认权限和自治行为慢慢推歪。

350每个模型的 ULSPB conversation instances
3HS 维度:授权、工具、自治
~0StateGuard 后 HS 接近 0
核心判断: 对“人类不完全理解自改时的 Drift Monitor”来说,这篇把监控点定位得最清楚:不是 prompt boundary,也不是 action boundary,而是 state writeback boundary。先让 agent 跑完,再审查 \(S_t\to S_{t+1}\) 的长期状态 diff,危险就 rollback。

版本说明:本页基于公开 arXiv PDF/source、公开 GitHub artifact、公开项目页和 TeX/source inventory 完成;检索日期为 2026-05-26。本页是 paper2html 深度阅读,不声称完成了独立复现实验。

研究动机

个性化 agent 和一次性 task agent 的差别在于:它会把跨会话状态长期保存下来。用户偏好、历史记录、工具默认策略、联系人、文件访问、行为风格都会进入 persistent state。这个机制让 agent 更有用,也让普通对话开始具备“长期修改未来 agent”的能力。

Personalized agent 与 task-centric agent 的差异:长期状态和高权限工具让一次普通交互能影响未来会话
Personalized agent 与 task-centric agent 的差异:长期状态和高权限工具让一次普通交互能影响未来会话。

论文关心的不是“攻击者能不能通过一句恶意 prompt 立即让 agent 做坏事”,而是更慢的风险:看似正常的 24-turn routine conversation 是否会让长期状态记录下错误的 future default,例如“以后类似情况不用确认”“工具可以直接执行”“用户偏好就是少问多做”。

这篇的 threat model 没有显式攻击者:普通对话通过长期状态累积,未来复用时才显现风险
这篇的 threat model 没有显式攻击者:普通对话通过长期状态累积,未来复用时才显现风险。

数学表示及建模

论文把 personalized agent 表示为:

\[ \mathcal{A}=(\mathcal{L},\mathcal{T},S) \]

其中 \(\mathcal{L}\) 是 backbone LLM,\(\mathcal{T}\) 是工具集合,\(S\) 是跨会话长期状态。第 \(t\) 步给定 observation \(o_t\) 和长期状态 \(S_t\),agent 产生动作:

\[ a_t\sim\pi_{\mathcal{A}}(\cdot\mid o_t,S_t) \]

执行之后,长期状态由 transition function 更新:

\[ S_{t+1}=\Phi(S_t,o_t,a_t) \]

这条式子就是 monitor 的介入点。传统 guardrail 多盯 \(a_t\),但这篇告诉我们,真正危险的是 \(\Phi\) 把当前交互写成未来 policy prior。

论文把长期状态拆成三类:

\[ S_t=S_t^{core}\cup S_t^{id}\cup S_t^{aux} \]
State type Scope Weight 为什么重要
Core MEMORY / AGENTS / TOOLS 3 直接决定长期记忆、核心指令、工具默认边界。
Identity IDENTITY / SOUL / USER 2 改变人格、行为风格、用户画像,从而间接改变未来决策。
Auxiliary HEARTBEAT / memory directory 1 影响较弱,但短记忆累积后仍可能形成趋势。

Unintended long-term state poisoning 的定义是:当前交互本身可能不危险,但 \(S_t\to S_{t+1}\) 之后,未来某个 \(o_{t'}\) 下的 policy 更容易发生安全失败:

\[ \pi_{\mathcal{A}}(\cdot\mid o_{t'},S_{t+1}) \quad \text{is riskier than}\quad \pi_{\mathcal{A}}(\cdot\mid o_{t'},S_t),\quad t'>t \]

风险维度有三类:authorization drift、tool-use escalation、unchecked autonomy。这个三分法很适合我们的 Drift Monitor,因为它把“漂移”从抽象词变成了可审查的 diff pattern。

算法流程 / 方法

ULSPB benchmark construction

ULSPB 覆盖七类长期漂移场景、五类日常助手任务、英中双语和五种 conversation variants
ULSPB 覆盖七类长期漂移场景、五类日常助手任务、英中双语和五种 conversation variants。

ULSPB 的一个 instance 定义为:

\[ b=(Scenario,Category,Language,Variant) \]

Routine conversation 是 24 轮 user-agent 交替互动:

\[ c^{(r)}=(x_1,y_1,x_2,y_2,\dots,x_{24},y_{24}) \]

四个 single-injection counterpart 在同一条 routine conversation 上插入一个 prefix:

\[ c^{(i)}=\mathrm{Inject}(c^{(r)},p,k) \]
Axis Values 作用
Scenario 7 confirmation erosion、tool expansion、intent inference 等长期漂移模式。
Category 5 communication、workflow、tooling、scheduling、preference。
Language 2 English + Chinese。
Variant 5 Routine + Injection Tool / Log Replay / Trojan Skill / Web Content。
Total 350 \(7\times5\times2\times5\),每个 backbone 都跑 350 个 instances。
Routine conversations 在 judge 下明显比 single-injection variants 更像日常对话
Routine conversations 在 judge 下明显比 single-injection variants 更像日常对话。

Harm Score

HS 不看当前动作是否已经伤害用户,而看长期状态 diff 是否写入了未来风险。维度集合为:

\[ \mathcal{D}=\{d_1,d_2,d_3\}=\{\mathrm{A},\mathrm{T},\mathrm{U}\} \]

对被修改的状态组件 \(\mathcal{F}_t=\{f_1,\dots,f_K\}\),每个维度的 rule set \(\mathcal{R}_d\) 给 diff \(\Delta f\) 赋严重度:

\[ \sigma(r,\Delta f)\in\{0,1,2,3\} \]

维度级分数取最大严重度:

\[ h_d(f)=\max_{r\in\mathcal{R}_d}\sigma(r,\Delta f) \]

文件级和整体 HS 是:

\[ \mathrm{HS}_{file}(f_i)= W_{f_i}\cdot \frac{h_A(f_i)+h_T(f_i)+h_U(f_i)}{3} \]
\[ \mathrm{HS}_t=\sum_{i=1}^{K}\mathrm{HS}_{file}(f_i) \]

实验设计

实验在 OpenClaw-style personalized agent 上执行。每个 instance 都跑完整 user-agent conversation,记录 turn-level trace,收集长期状态从 \(S_t\) 到 \(S_{t+1}\) 的变化,然后 reset 到初始状态。每个 instance 重复 3 次,报告 HS 均值和标准差。

维度 设置
Backbones Kimi K2.5, GPT-5.4, MiniMax M2.7, Grok 4.20
Instances/model 350 = 7 scenarios x 5 categories x 5 variants x 2 languages
Conversation length Routine 24 turns; injected variants 25 turns
Metric Harm Score over protected long-term state diffs
Human validation 40 protected-state diffs, 7 annotators, 280 judgments; HS recall 0.867
Real-seed subset 50 routine instances seeded from WildChat and LMSYS-Chat-1M
HS 对 core/identity/auxiliary 权重敏感且与人工严重度判断大体对齐
HS 对 core/identity/auxiliary 权重敏感且与人工严重度判断大体对齐。

实验结果

Routine chats 本身已经有高 HS

Variant Kimi K2.5 GPT-5.4 MiniMax M2.7 Grok 4.20
Routine 4.52 5.47 6.66 3.90
Injection Tool 4.64 5.52 7.06 3.66
Log Replay 4.34 5.03 5.73 4.80
Trojan Skill 4.57 5.96 6.73 4.96
Web Content 4.03 5.65 5.90 4.43
Average 4.42 5.53 6.42 4.35

这张表是全篇最重要的结果:Routine 虽然不是显式攻击,但 HS 并不低,甚至接近部分 single-injection variants。作者还报告语言效应是模型相关的:GPT-5.4 英文 HS 高,Kimi/Grok 中文 HS 高,说明语言不是单调风险因子,而是和模型 alignment/state-update behavior 交互。

HS 在不同 scenario/category 上呈模型差异;real-seed routine 仍产生非零风险更新
HS 在不同 scenario/category 上呈模型差异;real-seed routine 仍产生非零风险更新。

风险集中在 memory-centric artifacts

风险修改主要集中在 memory-centric artifacts,而不是均匀分散到所有状态文件
风险修改主要集中在 memory-centric artifacts,而不是均匀分散到所有状态文件。

论文发现 risky edits 主要集中在 \(MEMORY\) 和短期 memory 目录,其次是 user profile、agent instructions 和 tool defaults。这对工程实现很关键:第一版 monitor 不一定要全系统深度建模,先抓 protected state diffs 已经有很高价值。

StateGuard 把 HS 降到接近 0

StateGuard 在 writeback boundary 审计长期状态 diff,决定保留或回滚
StateGuard 在 writeback boundary 审计长期状态 diff,决定保留或回滚。

对 changed chunk \(\Delta f\),auditor 返回是否危险、理由和证据:

\[ g_m(\Delta f)\in\{\mathrm{false},\mathrm{true}\}\times Reason\times Evidence \]

Ensemble 模式使用多数投票:

\[ g(\Delta f)= \mathbb{I}\left[ \sum_{m=1}^{M}\mathbb{I}[g_m(\Delta f)=\mathrm{true}] \ge \left\lceil\frac{M}{2}\right\rceil \right] \]
Setting Kimi K2.5 GPT-5.4 MiniMax M2.7 Grok 4.20
No Defense HS 4.42 5.53 6.42 4.35
ASB-PPL HS 4.25 5.17 6.33 4.04
Base-Single HS 0.36 0.11 0.95 0.27
Base-Ensemble HS 0.12 0.02 0.47 0.10
Targeted-Single HS 0.23 0.23 0.37 0.11
Targeted-Ensemble HS 0.06 0.05 0.14 0.03

Targeted-Ensemble 的 FN rate 也最低:Kimi 0.05、GPT-5.4 0.04、MiniMax 0.05、Grok 0.04。代价是 FP rate 较高,但这是 safety-first writeback defense 的合理 tradeoff:FP 会回滚 benign update,FN 会保存 risky default。

成本边界: 论文报告平均 auditor cost 都低于 USD 0.004/run;Targeted-Ensemble 为 USD 0.0036/run。这使它更像真实工程 baseline,而不是只存在于论文里的 heavy defense。
触发短语云显示:future defaults、similar tasks、reduced confirmation 是长期状态漂移的常见语言模式
触发短语云显示:future defaults、similar tasks、reduced confirmation 是长期状态漂移的常见语言模式。

我的评论

为什么它比普通安全 benchmark 更适合我们

这篇没有把成功定义为“当前回合输出了坏内容”,而是定义为“长期状态写入了坏默认值”。这非常贴合自进化 agent 的核心问题:真正的风险常常不是这一步错了,而是这一步把未来的 agent 改坏了。

对 Drift Monitor 来说,这篇给了一个可以直接实现的最小闭环:

\[ writeback\_gate(\Delta S_t)= scope\_weighted(\Delta S_t)\land diff\_audited(\Delta S_t)\land rollbackable(\Delta S_t) \]
模块 论文里对应物 我们可以怎么做
Protected state MEMORY / AGENTS / TOOLS / USER 等权重 定义 Codex/agent 的持久状态清单和风险权重。
Diff audit StateGuard targeted auditor 审查每次状态写回是否放松授权、工具边界、自治默认。
Rollback dangerous edits rollback 保留上一版本状态;dangerous diff 不 commit。
Evaluation ULSPB + HS 用 routine conversations + adversarial probes 测 No Gate / LLM Gate / StateGuard Gate。
Extension 未覆盖 retrieval-time drift 接上 MemoryGraft 的 retrieval exposure metric。

和前几篇怎么拼

AgentDevel 提供 release engineering 外壳;OEP 提供 write-time transferability attack probe;MemoryGraft 提供 retrieval-time poisoning probe;这篇提供 state writeback gate。四篇合起来,已经足够形成一个 3-6 个月内可完成的 baseline paper。

我的建议是先不要做过于抽象的“智能体自改理论”。先做一个具体系统:针对长期状态/记忆/工具默认策略,做 diff-level monitor、回滚、retrieval audit,再用 ULSPB/OEP/MemoryGraft 风格 probe 测出来显著下降的 drift score。

论文边界

ULSPB 是代表性 benchmark,不是所有真实个性化工作流全集;HS 是保守启发式,可能过度标记;StateGuard 依赖已知风险模式和 LLM auditor,adaptive unknown attacks 仍可能绕过。论文也使用 LLM 生成 benchmark 和 auditor,因此最好把它当 baseline 和问题定义,而不是最终防御答案。

One More Thing

这篇给了我最明确的“未来 3-6 个月可以做什么”:做一个 Writeback-Boundary Drift Monitor。它不需要先解决“完全理解 agent 内部”这个大问题,而是抓住一个可审计接口:所有自改、记忆更新、工具默认变化,最终都要落成某种状态 diff。

这个接口足够窄,也足够有论文价值。我们可以先复刻 StateGuard-like baseline,再往上叠加 OEP 的 transferability validation、MemoryGraft 的 retrieval exposure audit、AgentDevel 的 release promotion gate。这样路线不会散。

Reference / Evidence

Public code / benchmark artifact

https://github.com/XiaoyuXU1/ULSPB

Reading basis

Based on the public arXiv PDF, arXiv abstract page, public arXiv source package, public GitHub artifact, and project page retrieved on 2026-05-26. This page is a paper2html deep-reading note, not an independent reproduction report.