论文 Mahmoud Abbasi(萨拉曼卡大学)、Juan M. Núñez V.(AIR Institute,萨拉曼卡)和 Amin Shahraki(奥斯陆大学)的代码、派生数据、结果文件以及每一次监控调用。
该论文评估了从工具调用轨迹中标记被劫持 LLM 智能体的检测器:基于行为特征和组合特征的逻辑回归(LR-B、LR-C)、GRU 序列模型、基于冻结步骤嵌入的 transformer(SE)、TF-IDF 内容参考,以及发布的 AlignmentCheck 动作监控器(含两种骨干:MON-L,Llama 3.3 70B w4a16;MON-A,Claude Sonnet 5.5)。评估在受控攻击流行度下、在分级工具覆盖下,以及在 AgentDrift 和 AgentDojo 上的世界、任务、领域和跨基准偏移下进行。
EXTENDED_REPORT.pdf 是论文引用的扩展报告。它是本工作的长版本(38 页,正文与补充材料),在第三作者加入之前撰写,给出了论文中总结的每一项分析、每项分析计划及其偏差,以及所有补充表格。
| 路径 | 内容 |
|---|---|
EXTENDED_REPORT.pdf | 扩展报告(见上文) |
featurise.py、evalkit.py、gru_detector.py、baseline_drift.py | 共享模块:特征、指标与 bootstrap、GRU、马尔可夫与 Isolation Forest 参考实现 |
agentdojo_extract.py | 提取 AgentDojo 轨迹,并对工具调用与观测进行位置配对 |
agentdojo_traces.jsonl、agentdojo_failed.jsonl | 提取的 AgentDojo 轨迹(总体 P0,392 条良性、2,294 条被攻陷)以及 4,987 次未成功的攻击 |
rerun_r1r3.py、ablation.py、world_disjoint_r1.py、r4_control.py、gru_ladder.py、gru_r3_diagnostic.py、pre_ablation_audit.py | 第一版中的实验脚本,在修正后的提取结果上重新运行,并附其结果文件(*.json) |
R4_CONTROL.md、PRE_ABLATION_DESIGN.md、GRU_PREREGISTRATION.md、REVISION_ANALYSIS_PLAN.md | 第一轮研究的四份内部分析计划 |
SENCODER_PREREGISTRATION.md、revision/sencoder_run/SENCODER_PREREGISTRATION.amendment*.md、SENCODER_RESULTS.md | SE 研究的计划、修正案与结果 |
MONITOR_PREREGISTRATION.md、revision/monitor_run/MONITOR_PREREGISTRATION.*.md | 监控研究的计划、其第一版以及修正案 1 至 4 |
revision/ | 预测缓存构建器、分析流、其结果文件与摘要、DEVIATIONS.md、RESULTS_SUMMARY.md、PLAN_MANIFEST.txt(一份带时间戳的日志,记录每份计划和结果的 SHA-256)以及可复现性指南 REPRODUCIBILITY.md |
revision/sencoder_*.py、revision/sencoder_results.json、revision/sencoder_summary.md、revision/sencoder_run/ | SE:嵌入、训练与分析脚本、结果、集群日志与清单 |
revision/monitor_render.py、monitor_score_vllm.py、monitor_score_api.py、monitor_detector.py、monitor_tables.py | 监控研究:每个 agent 步骤调用一次 AlignmentCheck,使用 vLLM(MON-L)和提供方的批处理接口(MON-A)进行评分,冻结的分析及其表格 |
revision/monitor_results.json、revision/monitor_summary.md | 冻结的监控分析结果 |
revision/monitor_run/ | 每次监控调用及每条原始监控输出及其评分(见 revision/monitor_run/README.md) |
revision/cache/ | 预测缓存的验证与摘要文件。缓存的预测和嵌入本身(约 800 MB)未包含在内,由脚本重新构建 |
paper/ | 从结果文件生成每张表格的脚本及其输出:tables/(第一轮研究)、tables_sencoder/(加入 SE)和 tables_monitor/(加入监控;这些是论文和扩展报告中的表格) |
paper_v06/make_figures_v06.py、paper_v06/fig_v06_* | 论文的图表 |
MANUSCRIPT_SOURCE.*.md、SUPPLEMENT_SOURCE.*.md | 扩展报告的源文件,paper/build_sencoder.py 和 paper/build_monitor.py 会将生成的表格插入其中 |
archive_v0.3/ | 第一版的结果和更早的 AgentDojo 提取结果,保留用于扩展报告中的对比 |
tests/ | AgentDojo 提取的单元测试 |
THIRD_PARTY/ | AgentDojo 以及内置 AlignmentCheck 扫描器(LlamaFirewall)的许可证 |
检测器结果是在 CPU 上使用 CPython 3.10.4 计算得出的。SE 在 Slurm 集群的一个节点上运行,MON-L 在配备 vLLM 0.29.0 的一块 NVIDIA H100 80GB HBM3 上运行(版本信息见 revision/monitor_run/mon_l/env.json)。
pip install -r revision/requirements-lock.txt --extra-index-url https://download.pytorch.org/whl/cpu
读取原始基准测试的脚本需要两个环境变量,分别指向本地克隆。
git clone https://github.com/Asif-0209/AgentDrift && git -C AgentDrift checkout 014a514f
git clone https://github.com/ethz-spylab/agentdojo && git -C agentdojo checkout 089ed468
export AGENTDRIFT=$PWD/AgentDrift
export AGENTDOJO=$PWD/agentdojo
表格和图表由本仓库中的结果文件重新生成。build_monitor.py 会导入监控分析模块,该模块在被导入时会读取 AGENTDRIFT,因此必须设置该变量。
cd paper
python gen_tables_v04.py # paper/tables/
python build_sencoder.py # paper/tables_sencoder/
python build_monitor.py # paper/tables_monitor/, the tables of the paper
cd ../paper_v06
python make_figures_v06.py # paper_v06/fig_v06_*.pdf and .png
两个构建脚本还会从 MANUSCRIPT_SOURCE.*.md 和 SUPPLEMENT_SOURCE.*.md 组装扩展报告的 LaTeX。
从基准重新运行实验时,检测器部分遵循 revision/REPRODUCIBILITY.md,SE 部分遵循 revision/sencoder_run/ 中的 SE 计划,监控部分遵循 revision/monitor_run/README.md 中的监控计划。
<repo>、$AGENTDRIFT、$AGENTDOJO 或 <local>。未更改任何数值结果。PLAN_MANIFEST.txt 和 repro_checks.json 中的 SHA-256 值指的是分析机器上的文件原样,因此与路径被替换后的文件不匹配。revision/offline_driver.sh 也已改为可移植。未修改任何 Python 脚本,因此部分脚本保留了本地默认路径,可由环境变量覆盖。*.jsonl.gz),内容不变,因此调用清单中的 SHA-256 值适用于解压后的文件。LICENSE)。revision/monitor_run/alignmentcheck_scanner.py 取自 LlamaFirewall(Meta Platforms, Inc. 及其关联公司),依据 MIT 许可证发布(见 THIRD_PARTY/LlamaFirewall-LICENSE.txt)。agentdojo_traces.jsonl、agentdojo_failed.jsonl、archive_v0.3/agentdojo_traces.jsonl、revision/monitor_run/agentdojo_run_context.jsonl、revision/sencoder_run/ 中的 AgentDojo 环境文件以及监控调用中的 AgentDojo 部分均派生自 AgentDojo,后者由其作者依据 MIT 许可证发布(见 THIRD_PARTY/AgentDojo-LICENSE.txt)。revision/tool_state_annotation.json、revision/monitor_run/agentdrift_taskdisjoint/ 中的任务不相交划分以及监控调用中的 AgentDrift 部分,依据 CC BY 4.0 共享,并注明出处为 Pinjari 和 Saint-Germain,AgentDrift: A Step-Labeled Benchmark of Injection-Hijacked LLM Agent Trajectories(2026),https://github.com/Asif-0209/AgentDrift。这些文件经过提取、拆分和渲染为监控提示等改动。如果您使用此代码或数据,请引用该论文(见 CITATION.cff)。arXiv 标识符将在预印本可用后添加。