AgentFlow:用静态分析在智能体代码中发现「提示词到工具」风险
2026 年 7 月的一篇论文为 LLM 智能体程序在五个框架上构建依赖图,生成智能体物料清单(Agent BOM),并在真实代码中标记出 238 处污点式「提示词到工具」风险。
这是什么?
2026 年 7 月 2 日,研究者在 arXiv 上发布了 AgentFlow: Building Agent Dependency Graphs for Static Analysis of Agent Programs。这篇论文针对的是一个随着智能体从演示走向生产而悄然增长的问题:如今的 LLM 智能体本身就是一个源代码应用,然而人们还没有一种像阅读普通程序那样、读懂其与安全相关结构的好办法。
一个智能体程序把宿主语言的常规代码与框架定义的语义混在一起——模型绑定、提示词模板、工具声明、记忆存储,以及多智能体之间的控制交接(handoff)逻辑。它的行为不仅取决于传统的控制流与数据流,还取决于一类新的智能体依赖,这些依赖通过框架习惯用法表达,例如智能体构造器、工具装饰器和交接声明。常规的静态分析与依赖跟踪工具看不懂这些用法,因此会径直略过。AgentFlow 被提出为首个专门用于恢复并推理这种结构的静态分析框架。这是一篇关于防御性工具的文章,而非漏洞利用。
工作原理
AgentFlow 解析一个智能体程序,构建出智能体依赖图(Agent Dependency Graph,ADG)——一种与框架无关的表示,其中智能体、提示词、模型、能力、记忆状态与控制策略成为带类型的节点,它们之间的关系成为带类型的边,用于表示组件依赖、控制流与数据流。
[prompt/template] --data-flow--> [agent] --capability--> [tool]
^ |
不可信输入? control-policy
|
[memory state] --handoff--> [agent B]
图构建完成后,它支持两项手工难以完成的安全分析。第一项是智能体物料清单(Agent Bill of Materials,BOM)生成:清点一个程序实际连接了哪些模型、提示词、工具、记忆与子智能体——相当于智能体版本的软件物料清单。第二项是「提示词到工具」风险检测,这是一种污点式分析,追踪进入提示词的文本能否在没有中间控制的情况下抵达某项强力能力,而这正是间接提示词注入与工具选择劫持背后的结构性前提。
作者为五个具有代表性的智能体框架实现了 AgentFlow,并在 AgentZoo(一个包含 5,399 个真实智能体程序的语料库)上进行评估。他们报告称,相比基于 AST 的智能体分析器,它能恢复更丰富的智能体实体与依赖,生成更贴合依赖的 Agent BOM,并在真实代码中揭示出 238 处污点式「提示词到工具」风险。框架名称见论文;此处真正重要的是覆盖范围与这一计数,二者都来自作者自己的测量。
为什么重要
大多数智能体安全工具聚焦在运行时——护栏、输出过滤、运行时权限检查。AgentFlow 把视线放得更早,落在代码本身,从而填补了一个真实的盲区。智能体中的供应链与组合风险,存在于各组件如何被连接:一个由检索内容拼装出的提示词,交给一个握有 shell 或支付工具的智能体,就是致命三元组在源代码中的体现。无法枚举的东西就无法治理,而如今大多数团队都无法枚举自家智能体的工具图。
Agent BOM 对治理直接有用:它让评审者或审计者能够逐个程序地看到哪些模型和工具在作用范围内、记忆在何处跨轮次留存、以及哪些子智能体可以把控制权交给哪些。被标记的 238 条「提示词到工具」数据流提醒我们,这些危险的连线并非假设——它们已经存在于已上线的智能体代码中,只等有人注意到。
防御
请把它当作一项要采用的技术,而不仅仅是一篇要读的论文。
先清点,再审计。一份 Agent BOM——无论以何种方式生成——都能把「我们有一些智能体」变成一份可供真正评审与签署的、由模型、提示词、工具与记忆构成的具体清单。
对「提示词到工具」的数据流运行污点分析。危险模式是不可信输入抵达高影响能力,且中间毫无阻拦。在代码评审中标记这些路径,并要求在每条路径上设置明确的控制(校验、人工确认,或能力边界)。
在评审中把框架构造视为一等公民。工具装饰器、智能体构造器与交接声明都承载着权限。如果你的评审流程只读普通函数,就会恰好漏掉那些真正要紧的边。
让静态分析与运行时控制保持配合。静态图无法看清智能体在运行时的一切——模型即兴发起的工具调用、动态加载的技能、任务中途抓取的内容。用 ADG 去缩小并排定攻击面的优先级,再以最小权限的工具作用域与运行时监控作为支撑,而不是单独信任任何一层。
状态
| 项目 | 详情 |
|---|---|
| 披露 | 学术预印本,arXiv,2026 年 7 月 2 日 |
| 贡献 | 静态分析框架;智能体依赖图(ADG)表示 |
| 分析 | 智能体物料清单(BOM)生成;污点式「提示词到工具」风险检测 |
| 评估 | 五个智能体框架;包含 5,399 个真实智能体程序的 AgentZoo 语料库 |
| 关键结果 | 相比基于 AST 的工具能恢复更丰富的实体/依赖;发现 238 处「提示词到工具」风险 |
| 注意事项 | 仅静态分析——运行时动态行为以及所研究五个框架之外的覆盖仍属开放问题 |