← 科研空间 首页
arXiv 2602.16901 Drift Monitor / Probe Suite

AgentLAB: Benchmarking LLM Agents against Long-Horizon Attacks

从五类 long-horizon attacks 反推 Drift Monitor 的评价方式:不是只看最终是否被攻破,而是看何时发现目标、工具、环境、记忆的累积偏移。

原版 PDF

先给结论

AgentLAB 不是 Drift Monitor 本身,而是非常适合拿来打 Drift Monitor 的 adversarial probe suite。它的关键贡献是把 agent 安全从“单轮 prompt 是否安全”推进到“多轮 user-agent-environment trace 是否被逐步改写”。对我们关心的 self-evolving agent 来说,这篇最有价值的地方是:它把 objective drift、memory poisoning、tool chaining、task injection 放到同一个长周期攻击框架里。

5long-horizon attack families
28 / 644agentic environments / security test cases
69.9%paper-reported overall ASR on GPT-5.1
核心判断: 如果要做“人类不完全理解自改时的 Drift Monitor”,AgentLAB 给出的不是一个更强分类器,而是一组攻击压力测试。一个合格的 monitor 应该在 \(T^*\) 完成前发现:目标被重写、工具调用序列开始组合成恶意目标、环境观察开始作为桥接动作、记忆写入/检索开始改变安全边界。

版本说明:本页基于公开 arXiv v1、公开项目页、公开 GitHub README/代码布局、PDF 图表和 TeX/source inventory 阅读完成;检索日期为 2026-05-26。本页不声称完成了 AgentLAB 的独立复现实验,所有 ASR/T2S 数字均为论文报告值。

研究动机

现有 agent safety benchmark 很多仍然偏向 single-turn 或 static scenario:给一个 prompt、看模型是否拒绝;给一个网页注入、看 agent 是否被劫持。这类评估对 deployed agent 不够,因为真实 agent 不是一次性问答系统,而是在多个 user instructions、tool calls、environment observations、memory reads/writes 中持续运行。

AgentLAB 的出发点是:攻击者可以利用时间维度。单轮里太明显、会被拒绝的恶意目标,可以被拆成多个看似合理的步骤;环境里每一段文本都可能看似无害,但累积起来能改变目标;记忆写入时也许只是“用户偏好”,等到未来检索时才变成绕过安全策略的证据。

AgentLAB 的整体框架
AgentLAB 的整体框架:adversary/user、LLM agent、benign/malicious environment、interaction trace 和 evaluator 共同构成长周期攻击评估。

这就是它和 Drift Monitor 的关系:monitor 不能只盯最后一步是否违规,而要理解 trace 的因果轨迹。尤其在 self-evolving agent 中,系统会把经验、偏好、规则、workflow、工具使用习惯写回未来运行时;攻击者并不需要马上让 agent 犯错,只要让错误状态进入下一轮。

数学表示及建模

Long-horizon interaction trace

论文把 agent 的长周期交互写成四元组序列:

\[ \tau_{1:n} = \langle p_1,a_1,o_1,r_1\rangle \ldots \langle p_i,a_i,o_i,r_i\rangle \ldots \langle p_n,a_n,o_n,r_n\rangle \]
符号 含义 Drift Monitor 要看什么
\(p_i\) user prompt / instruction 用户目标是否被重新叙述、转移、社会工程化。
\(a_i\) agent action / tool call 单个动作是否安全,以及动作序列是否组合成 \(T^*\)。
\(o_i\) environment observation 网页、邮件、代码、文档、商品描述等是否包含长期注入。
\(r_i\) agent response 响应是否表明目标、约束或安全策略发生漂移。

这个形式对我们特别重要,因为 self-evolving agent 的状态更新也可以被接到 trace 上:

\[ R_t = f\bigl(\tau_{1:t},\Delta M_t,\Delta S_t,\Delta W_t\bigr) \]

其中 \(\Delta M_t\) 是 memory change,\(\Delta S_t\) 是 state/config change,\(\Delta W_t\) 是 workflow/skill/tool-use policy change。AgentLAB 本文没有直接做 self-modification,但它给了这些状态被攻击的外部压力。

两类 threat model

威胁模型 攻击者控制什么 典型攻击 monitor 不能遗漏的点
User as adversary 把部分 \(p_i\) 替换成 adversarial prompts \(p_i^*\) Intent Hijacking, Tool Chaining 不要只看每轮是否“像正常用户”;要看目标是否被连续重塑。
Environment as adversary 把部分 \(o_i\) 替换成 adversarial observations \(o_i^*\) Objective Drifting, Task Injection, Memory Poisoning 工具返回内容、网页、邮件、文档都不能天然当作可信上下文。

Benchmark 四个组件

AgentLAB 把 red-teaming pipeline 分成 agent、environment、task、attack 四个模块。这个分解很适合后续做 monitor baseline:同一套 victim agent 和 environment,可以替换 attack generator 或 defense/monitor。

组件 论文中的角色 对我们可复用的地方
Agent backend LLM 加 tool use、planning、external memory 等能力。 作为 victim agent;比较有无 monitor 的行为差异。
Environment 应用域、可变 state、读写 state 的 tools。 作为状态污染和工具组合的真实载体。
Task benign task \(T\) 或 malicious task \(T^*\),带 ground-truth tool-call/mutation sequence。 可定义 monitor 是否在 \(T^*\) 完成前报警。
Attack 攻击策略、最大轮数、优化步数、planner/attacker/judge。 作为 adversarial evaluation suite。

算法流程 / 方法

五类 long-horizon attacks

Attack type Adversary 核心机制 对 Drift Monitor 的启发
Intent Hijacking User 多轮 social engineering / persona / framing 逐步侵蚀 safety guardrails。 检测“意图重述轨迹”,不是只检测最后一轮是否危险。
Tool Chaining User 把恶意任务拆成多个单独看似 benign 的 tool calls。 需要 sequence-level tool semantics;per-call allowlist 不够。
Objective Drifting Environment 在商品描述、搜索结果等观察里持续注入目标改写内容。 目标一致性应作为时间序列趋势监控。
Task Injection Environment 把 \(T\) 与 \(T^*\) 通过中间 bridge actions \(\{\hat a\}\) 连接起来。 危险不在单一 injection,而在 bridge action 的全局作用。
Memory Poisoning Environment 隐藏注入被 memory system 存成 user preferences,未来检索后触发 unsafe behavior。 write-time 和 retrieval-time 都要审计。

多 agent 攻击生成框架

长周期攻击的多 agent 生成框架
长周期攻击的多 agent 生成框架:planner 产出攻击计划,attacker 执行并改写,judge/verifier 评估进展。

AgentLAB 的 attack generator 一般不是固定 payload,而是一个自适应系统:planner 先把 \(T^*\) 分解成策略,attacker 根据 victim agent 的响应继续改写,judge 判断当前是否成功,某些攻击还用 verifier 检查 tool-call sequence 是否真的能在 environment 中执行。

对我们最关键的理解: 如果攻击本身会根据 agent 反馈自适应,那么 monitor 也不能只在静态测试集上做二分类。更合理的评估单位是在线轨迹:第几轮发现 drift、发现时 \(T^*\) 是否已经不可逆、是否能 quarantine/rollback。

Task Injection 的 bridge action 思路

论文认为直接把恶意目标写进 observation 的 “IMPORTANT!!! ignore previous instruction...” 风格不够有效,因为它和用户任务 \(T\) 相关性弱,且容易被模型或防御器识别。AgentLAB 的 long-horizon prompt injection 会设计中间动作 \(\{\hat a\}\),把 benign tool sequence \(\{a\}\) 和 malicious sequence \(\{a^*\}\) 接起来:

\[ \{a\} \;\longrightarrow\; \{\hat a\} \;\longrightarrow\; \{a^*\} \]

生成过程可抽象为:

\[ \{\hat o\}=\mathcal{A}(T,\{a\},\{\hat a\}), \qquad \{o^*\}=\mathcal{A}(T,T^*,\{a\},\{\hat a\},\{a^*\}) \]

执行后得到 trajectory \(\mathcal{M}=\mathcal{L}(T,\{\hat o\},\{o^*\})\)。如果 bridge 失败,就改写 \(\{\hat o\}\);如果 bridge 成功但 payload 失败,就改写 \(\{o^*\}\)。成功样例进入 memory bank \(\mathcal{B}\),后续按同 benign task 或同 malicious task 检索 exemplar。

Memory Poisoning 的两阶段攻击

Memory poisoning 是最像 self-evolving drift 的攻击:写入时看起来像普通偏好,检索时才改变行为。AgentLAB 的流程是:

阶段 做什么 monitor 对应检查
Phase 1: Memory Injection planner 生成策略,attacker 生成短 preference payload,evasive judge 判断是否足够隐蔽。 writeback gate:来源、上下文、作用域、未来触发条件、风险偏置。
Phase 2: Exploitation 未来 risky scenario 中,retriever 取出 poisoned memory,给 agent 提供错误 justification。 retrieval gate:memory-query-context 三元组是否合理,是否改变 safety decision。

实验设计

论文用 AgentLAB 对代表性 LLM agents 做 preliminary robustness evaluation。victim agents 覆盖 GPT-4o、GPT-5.1、Gemini-3.0-Flash、Claude-4.5-Sonnet、Llama-3、Qwen-3 等论文报告模型。默认 attack framework 中,planner 是 GPT-5.1 temperature 0.5,attacker 是 Qwen-3-14B-Abliterated,judge 是 GPT-5.1 greedy decoding。

项目 设置 为什么重要
Attack turns 五类攻击默认最大轮数分别为 7、20、15、5、12。 长周期攻击能力直接来自多轮预算。
Metrics ASR、T2S、RR。 Drift Monitor 不能只看 ASR,还要看报警时间和拒绝行为。
Data sources SHADE-Arena、AgentDojo、WebShop、Agent-SafetyBench。 覆盖工具调用、网页购物、间接注入、记忆增强 agent 等场景。
Scale 论文报告 28 environments、644 security test cases。 足够作为一个 baseline probe suite 的起点。
Defenses Self-Reminder、Llama-Guard、Repeated Prompt、DeBERTa Detector。 用来说明 one-shot defense 很难直接迁移到 long-horizon setting。
AgentLAB 报告的风险类别分布
AgentLAB 报告的风险类别分布:privacy breach、financial loss、miscellaneous risks、computer security compromise 等类别共同构成 644 个恶意任务。

证据边界:公开 README 和正文数据统计处使用 9 个 risk categories 的表述,正文 introduction 另有 10 个 risk categories 的表述。本页采用“多个风险类别”并保留这个小不一致作为阅读 caveat。

实验结果

Overall ASR:多数模型仍然显著脆弱

论文报告的平均 ASR 如下。这里最值得看的是两点:第一,tool chaining 在多数模型上非常高;第二,Claude-4.5 虽然在 task injection/objective drifting 上强很多,但 tool chaining 和 memory poisoning 仍不是 0。

Agent Intent Hijacking Tool Chaining Objective Drifting Task Injection Memory Poisoning Overall
Qwen-3 78.1 96.3 92.2 93.1 48.0 81.5
Llama-3.1 53.3 90.4 67.4 86.6 34.6 66.5
GPT-4o 74.0 94.1 79.2 79.9 63.3 78.1
GPT-5.1 59.8 94.6 73.7 21.5 51.3 69.9
Gemini-3 46.2 95.9 15.8 43.1 67.3 53.7
Claude-4.5 27.2 73.3 5.3 0.0 38.8 28.9

Long-horizon injection 高于 one-shot baseline

Agent One-shot Attack Long-horizon Attack 阅读重点
Qwen-3 81.9% 93.1% 本来已经高,长周期进一步推高。
Llama-3 50.7% 86.8% 差距最大之一,说明 bridge action 很关键。
GPT-4o 62.5% 79.9% 直接注入不如逐步转移。
GPT-5.1 2.08% 21.5% 单轮很强不等于长周期安全。
Gemini-3 41.0% 43.1% 提升小,但仍存在风险。
Claude-4.5 0.0% 0.0% 该任务注入设置下保持强抵抗。
ASR 与 T2S 的联合视图
ASR 与 T2S 的联合视图:高 ASR、低 T2S 代表更快、更容易成功的攻击;monitor 的关键指标应包括在第几轮报警。

Defense transfer:单轮防御效果不稳定

论文评估了 Self-Reminder / Llama-Guard / Repeated Prompt / DeBERTa Detector。结果不是“防御完全没用”,而是效果强依赖模型和攻击类型,不能作为 long-horizon monitor 的充分替代。

例子 No defense Defense result 说明
GPT-5.1 / Objective Drifting 73.7 RP 31.0, DD 7.8 检测器可显著下降,但仍依赖攻击类型和模型。
GPT-5.1 / Task Injection 21.5 RP 20.8, DD 2.8 Repeated Prompt 几乎没改善,DD 更有效。
Claude-4.5 / Tool Chaining 73.3 SR 57.9, LG 46.7 即使强模型也难靠提醒或分类器挡住工具组合。
Gemini-3 / Memory Poisoning 67.3 RP 43.2, DD 55.1 memory attack 下防御顺序甚至不直观。

Ablation:轮数比优化步数更像主因

最大攻击轮数 \(n_{turn}\) 增加时,intent hijacking 与 task injection 的 ASR 上升;这支持“时间维度本身就是攻击资源”的判断
最大攻击轮数 \(n_{turn}\) 增加时,intent hijacking 与 task injection 的 ASR 上升;这支持“时间维度本身就是攻击资源”的判断。
允许优化步数 \(n_{opt}\) 增加时,ASR 也会上升,但论文指出影响通常弱于最大攻击轮数
允许优化步数 \(n_{opt}\) 增加时,ASR 也会上升,但论文指出影响通常弱于最大攻击轮数。

这两张图对 Drift Monitor 很关键。攻击者并不一定需要更强模型或复杂优化,只要有足够多轮,就可以逐步把 agent 带离原始目标。因此 monitor 的 evaluation 不能只报最终 ASR,还要报 detection latency:

\[ \mathrm{DetectBeforeSuccess} = \mathbb{1}\bigl[t_{\mathrm{alarm}} < t_{\mathrm{success}}(T^*)\bigr] \]

我的评论

它最适合作为 baseline/probe,而不是最终方案

AgentLAB 的价值是把我们担心的 drift 攻击面打包成可跑的 benchmark 方向:目标漂移、任务注入、工具组合、记忆污染。它本身不是 monitor,也没有解决“人类不完全理解自改”的解释层问题。但它正好可以作为我们未来系统的红队压力测试。

我认为最自然的 baseline 设计是:

Baseline 做法 预期问题
No monitor 原始 agent 直接跑 AgentLAB。 给 ASR/T2S 下界。
Prompt-level LLM judge 每轮 \(p_i\) 或 \(o_i\) 单独分类。 会漏掉 bridge action 和 tool sequence composition。
Repeated Prompt / Self-Reminder 复述用户目标或安全提醒。 论文已显示迁移不稳定。
Trace-level judge 把 \(\tau_{1:t}\) 输入 judge,判断是否 drift。 可解释性、成本、false positive 可能差。
Release-gated Drift Monitor 对 state/memory/workflow/tool sequence diff 做 gate、quarantine、rollback。 这是我们真正想做的方向。

对 self-evolving agent 的直接改造

AgentLAB 原始 trace 可以自然扩展成 self-evolution trace:

\[ \tilde{\tau}_{1:t} = \bigl(\langle p_i,a_i,o_i,r_i\rangle,\Delta M_i,\Delta S_i,\Delta W_i\bigr)_{i=1}^{t} \]

然后 monitor 不只判断当前响应,而是判断候选状态写回是否允许:

\[ \mathrm{gate}_t = \mathrm{localSafe}(i) \land \mathrm{sequenceSafe}(\tau_{1:t}) \land \mathrm{stateSafe}(\Delta S_t) \land \mathrm{memorySafe}(\Delta M_t) \land \mathrm{rollbackable}(\Delta W_t) \]

这个公式不是论文原文,而是我基于 AgentLAB 和前面几篇 Drift Monitor 精读得到的研究化改写。它把 AgentLAB 的长周期攻击压力,接到了 AgentDevel/AIR/AgentXRay/Routine Chats/OEP/MemoryGraft 那条 monitor pipeline 上。

局限和需要小心的地方

One More Thing

这篇读完之后,我更确信我们的 3-6 个月方向不应该是“再做一个攻击 benchmark”,而应该是:

Release-Gated Drift Monitor for Self-Evolving Agents
用 AgentLAB/OEP/MemoryGraft/Routine Chats 作为 adversarial probe suite,用 AgentDevel 的 release gate 做系统骨架,用 AIR 的 incident response 做动作空间,用 AgentXRay 的 workflow delta 做人类可审查层。

实验上,不要只报 final ASR。更有论文价值的指标是:

指标 定义 为什么比单纯 ASR 更贴 Drift Monitor
Detection latency \(t_{\mathrm{alarm}}\) 长周期攻击的核心是“什么时候发现”。
Pre-success alarm \(t_{\mathrm{alarm}} < t_{\mathrm{success}}\) 报警晚于恶意目标完成就没有安全意义。
Rollbackability 状态/记忆/workflow 变更能否撤回 self-evolving agent 的风险常在写回后长期存在。
Utility retention benign long-horizon tasks 的成功率 过强 gate 会把 agent 变成不能工作的系统。
Human-review burden 人类需要看的 diff/token/trace 量 题目核心就是人类不完全理解,必须控制审查负担。

最小可做版本可以很朴素:先选 AgentLAB 的 task injection / memory poisoning / objective drifting 三条轨道,不改模型,只加一个 trace-level + writeback/retrieval gate。然后比较 no gate、prompt-level judge、trace-level judge、release-gated monitor 四组。只要能证明 monitor 更早发现 bridge/memory/objective drift,同时 false positive 可控,就已经是一个清晰可投稿的雏形。

Reference / Evidence