论文

AgentFlow:构建代理依赖图以进行代理程序的静态分析

AgentFlow: Building Agent Dependency Graphs for Static Analysis of Agent Programs

AI 基础设施AI 开发与运维平台

摘要

LLM 代理越来越多地开发为基于代理框架构建的源代码应用程序。这些代理程序将传统的主机语言代码与框架定义的模型、提示、工具、内存和多代理编排逻辑的语义相结合。因此,它们的行为不仅取决于传统的控制和数据流,还取决于一类新的代理依赖性。此类依赖关系通常表示为框架引发的语义,例如代理构造函数、工具装饰器和代理切换声明,这使得它们很难用现有的静态分析或依赖跟踪工具来恢复。在本文中,我们提出了 AgentFlow,这是第一个用于从代理程序中恢复和分析代理依赖性的静态分析框架。 AgentFlow 构建代理依赖关系图 (ADG),这是一种与框架无关的图形表示形式,它将代理、提示、模型、功能、内存状态和控制策略表示为类型化节点,并捕获其组件依赖关系、控制流和数据流依赖关系作为类型化边。 AgentFlow 基于 ADG 构建,支持一系列针对代理治理和安全性的分析,包括代理物料清单 (BOM) 生成和提示工具风险检测。我们为五个代表性代理框架实现了 AgentFlow,并在 AgentZoo(包含 5,399 个真实代理程序的语料库)上对其进行了评估。我们的评估表明,与现有基于 AST 的代理静态分析工具相比,AgentFlow 可以恢复更丰富的代理实体和依赖项,生成更多依赖项感知的代理 BOM,并发现实际代理程序中的 238 个污点式提示工具风险。这些结果表明,ADG 为理解、管理和保护新兴代理软件提供了实用基础。