论文笔记:Trajectory Assurance — 安全的边界从单点变成轨迹
论文笔记:Trajectory Assurance — 安全的边界从单点变成轨迹
每步都合规,整体就有害——这是 LLM Agent 安全问题最反直觉的地方。
核心问题:单步检查为什么不够
传统的 Agent 安全方案是「每步操作前检查」:这个工具调用安全吗?这个文件写入允许吗?这个 API 请求合法吗?
这个框架在两个场景下会失效:
场景一:提示注入(Prompt Injection)
攻击者在一封邮件里埋了一段隐藏指令,Agent 读取邮件时,单步检查看到的是「读取邮件内容」——完全正常;但这封邮件里藏着一段指令序列,引导 Agent 逐步泄露敏感信息。单独看每一步都合法,合在一起是一次数据泄露。
场景二:多步骤累积危害
一个代码生成的 Agent,每步生成代码都是「合理的功能实现」;但 20 步之后,这 20 段代码组合起来引入了一个微妙的竞态条件或安全漏洞,单独看任何一步都没有问题。
Trajectory Assurance 的解法
论文的核心贡献是提出轨迹级安全保障(Trajectory Assurance):不再逐一审视每个动作,而是将 Agent 的整个执行序列视为一个整体来评估风险。相当于从「检查每个单词的拼写」升级到「检查整篇文章的逻辑一致性」。
具体而言,轨迹级安全要处理的问题横跨多个层次:
- 单 Agent 层:来自 prompt、记忆、检索知识、工具接口的不可信输入构成攻击面
- 多 Agent 层:跨 Agent 委托带来身份、信任、能力控制和决策透明度的挑战
- 基础设施层:模型路由和执行控制面本身可能被操纵,模型来源未被验证
- 系统级:供应链完整性、可追溯性、端到端可观测性基本是开放问题
论文最核心的原则陈述:安全必须成为可验证的架构属性,而非可选的指导层。
为什么这篇论文的意义超出安全本身
它揭示了 Agent 系统的一个根本性改变:安全的边界从单点变成了轨迹。
在传统软件工程里,安全性可以通过输入验证、权限控制、API 限流等单点措施来保障。但在 LLM Agent 里,「输入」不再是一个清晰的边界——Agent 的输入是动态的、上下敏感的、嵌入在对话历史里的。安全策略必须跟着执行轨迹走,而不是跟着单个 API 调用走。
这意味着未来的 Agent 安全产品会向「轨迹审计」和「行为基线」方向演进——不是阻止某个调用,而是理解「这系列操作完成后,系统处于什么状态,是否符合预期」。
关联论文
结论:安全从「配置项」变成「架构约束」——这是 Agent 安全的范式转换。
💬 评论
💡 使用 GitHub 账号登录 即可参与讨论