用一个被训练去"预测未来"的小型世界模型,给 LLM agent 的每一步动作当实时护栏,这是 DreamGuard 的思路。作者在受限条件下完成了一次完整复现:在自建测试集上,世界模型能比只看当前步的护栏更早拦下危险,且不误伤正常任务;论文"小数据训练、零样本跨域最优"的主张,受数据来源所限,未能在复现中得到验证。
真正想拿下的那个 agent,往往不在链路最前面。攻击者只能在最前面注入一次,可这段后缀要穿过整条链路、精准命中深处的目标,并在那里执行。
第五篇的双重后缀已经露出苗头:同一段文本,先在 triage agent 那里把告警从 HIGH 压成 MEDIUM、路由进 review_agent,再在 review agent 里吐出 os.system('ls')。一段外部文本,连开了两个控制面。
风险不一定发生在模型回答的那一刻,也可能发生在数据被读取、解释、执行和写回的整条链路里。
一个远程输入拿不到 shell,却能让审核系统放行内容、让 SOC 关闭告警、让 coding agent 安装依赖、让工具路由从只读变成写入。它不是传统意义上的 RCE,但风险直觉很接近:外部输入影响了系统将要执行的动作。
模型身份不只写在 model card 里,也会写在 tokenizer 的边界、chat template 的入口、logits 的局部偏好,以及那些稳定复现的错误里。
一个模型可能不会告诉你它是谁,但它会用错误暴露自己。