本仓库包含论文 Safeguarding LLM Agents against Long-Horizon Threats via Shadow Memory 的官方代码发布。ShadowMem 是一个防御框架,它维护一个专门的、以安全为核心的智能体内存——其灵感来源于系统安全中的影子栈抽象——以在智能体的完整执行轨迹中提炼并保留安全关键上下文,并利用该影子内存在待执行动作执行之前对其进行主动评估。

| 文件夹 | 作用 |
|---|---|
rllm/ | 强化学习后训练骨干。提供用于训练影子内存评判器的训练循环(verl / GRPO / PPO 后端)。 |
memagent/ | 影子内存评判器实现——核心逻辑、提示词、数据集适配器以及训练/评估脚本。由各流水线作为 Python 模块导入。 |
agentdojo/ | 用于评估 LLM 智能体上提示注入攻击与防御的基准测试框架。本文对其进行了扩展以覆盖长时程威胁。 |
三个组件共享同一个 Python 环境。请先安装 rllm(它会引入强化学习/服务栈),然后在同一环境中安装 agentdojo。memagent 是纯 Python 模块,无需安装步骤——它通过 PYTHONPATH 被加载,或从 memagent/ 目录运行脚本时被加载。
要求:Python ≥ 3.10、用于训练的 CUDA GPU、uv 或 pip。
# 1. Create and activate a fresh environment (Python 3.10+)
uv venv --python 3.10
source .venv/bin/activate
# 2. Install rllm in editable mode with the verl training backend.
# See rllm/README.md for backend/GPU notes and optional tinker backend.
cd rllm
uv pip install -e ".[verl]"
cd ..
# 3. Install agentdojo in editable mode.
# See agentdojo/README.md for optional extras (transformers detector, docs, etc.).
cd agentdojo
uv pip install -e .
cd ..
# 4. memagent needs no install — import paths resolve from the repo root.
有关各项目的详细设置(Docker、特定的 CUDA/torch 版本、可选附加项),请查阅各文件夹内的文档(rllm/README.md、memagent/README.md、agentdojo/README.md)。
memagent/ —— 影子内存评判器的训练与测试。参见 memagent/README.md。agentdojo/ —— 在循环中结合已训练评判器进行进一步的实时智能体评估。参见 agentdojo/ATTACK_DEFENSE.md 了解论文中使用的攻击/防御命令。rllm/ —— 对训练器的小幅扩展,用于评判器指标以及 ASR/BU 报告。参见 rllm/diff.md 了解相对于上游 rllm 代码库的变更摘要。已在 Hugging Face 上发布:
如果您在研究中使用了 ShadowMem,请引用:
@inproceedings{wang2026shadowmem,
author = {Yuhui Wang and Tanqiu Jiang and Jiacheng Liang and Charles Fleming and Ting Wang},
title = {Safeguarding {LLM} Agents against Long-Horizon Threats via Shadow Memory},
booktitle = {Proceedings of the 2026 ACM SIGSAC Conference on Computer and Communications Security},
series = {CCS '26},
year = {2026},
publisher = {Association for Computing Machinery},
doi = {10.1145/3830454.3846601},
url = {https://doi.org/10.1145/3830454.3846601}
}