跳到主要内容

1 篇博文 含有标签「privilege-escalation」

查看所有标签

继承了本不该看到的系统提示词的子智能体

· 阅读需 9 分钟
Tian Pan
Software Engineer

规划代理(Planner agent)接收一个任务,将其分解,并生成一个研究员子代理(researcher subagent)来处理其中一个分支。编排框架会将父代理的完整上下文传播给子代理,因为这是最容易交付的默认设置。现在,研究员拥有了规划者的完整系统提示词(system prompt)——策略文本、内部工具名称、父代理被授权使用的凭证,以及暗示你计费流水线结构的 few-shot 示例。研究员的工作原本只是阅读三份文档。但这次调用的爆炸半径却是父代理的全部权限。

这并非假设。这是目前大多数投入生产的多代理框架的默认行为。最近的一项审计发现,93% 的代理项目使用未限制范围(unscoped)的 API 密钥;当一个代理调用另一个代理时,子代理要么继承父代理的全部凭证,要么接收自己独立的密钥——没有一个项目实现了针对委派访问的范围缩小、深度限制或级联撤销。框架将“共享父状态”视为一种便利,而将“缩小子代理范围”视为可选步骤。而这个可选步骤,恰恰是没人会去写的。