别再迷信 System Prompt 了,聊聊 Prismata 如何通过架构隔离解决 Agent 注入攻击
最近研究了 Prismata 这篇论文(arXiv:2607.08147),它给出的核心思路非常清晰:不要试图通过优化提示词来修补漏洞,而应该在架构层面为 Agent 建立“隔离墙”。
最让我印象深刻的是它对权限沙箱化的处理。传统的 Agent 部署方案通常给一个全能的 Token,这意味着 Agent 只要被注入,就拥有了该 Token 对应的所有权限。Prismata 提出的是动态分配权限,即根据 Agent 当前访问的域名实时调整其可调用 API 的范围。比如,当 Agent 处于一个第三方资讯页时,它不应该拥有修改用户账户密码的写权限,即使模型被指令诱导去执行该操作,底层的权限沙箱也会直接拦截。
其次是指令隔离机制。目前的 LLM 处理 Web 内容时,往往将系统指令和抓取到的 HTML 文本混在同一个上下文窗口中。在模型看来,这只是一串 Token 流,很难绝对区分哪些是开发者的意图,哪些是网页的文本。Prismata 在处理链路上强行将两者分开,确保网页抓取的内容仅作为“数据”输入,而不能被提升为“指令”层级。这种逻辑上的强隔离,从根本上降低了恶意文本被误认为指令的概率。
最后是关于敏感操作的意图校验。在实际运行中,很多 Agent 在执行“发送邮件”或“删除文件”这类写操作时,响应速度极快,但缺乏确认环节。Prismata 在执行敏感操作前强制加入了一次上下文清洗和意图校验。它会回溯用户最初的请求,对比当前 Agent 准备执行的动作是否在原始意图范围内。如果用户要求的是“查询机票”,而 Agent 突然尝试“发送邮件”,这种不一致性会被立刻捕捉并拦截。
回顾目前 AI Agent 的部署现状,大多数方案依然把 LLM 当成一个全能的黑盒,默认网页内容是安全的。但只要 Agent 拥有写权限,注入攻击就是致命的。Prismata 证明了,与其在 Prompt 里死磕,不如在架构上做限制。这种从权限、链路、校验三个维度构建的防御体系,才是 Agent 走向大规模商业化部署的必要前提。