Process-Centric Analysis of Agentic Software Systems

📄 arXiv: 2512.02393v1 📥 PDF

作者: Shuyang Liu, Yang Chen, Rahul Krishna, Saurabh Sinha, Jatin Ganhotra, Reyhan Jabbarvand

分类: cs.SE, cs.AI, cs.CL

发布日期: 2025-12-02


💡 一句话要点

提出Graphectory,用于对Agentic软件系统进行过程中心分析,揭示其推理、规划和行为模式。

🎯 匹配领域: 支柱九:具身大模型 (Embodied Foundation Models)

关键词: Agentic系统 过程中心分析 软件工程 大型语言模型 图表示学习

📋 核心要点

  1. 现有Agentic系统评估侧重结果,忽略了智能体推理、规划和行为的详细过程,缺乏深入理解。
  2. 提出Graphectory,通过图结构编码Agentic系统的时间和语义关系,实现过程中心分析,独立于最终结果评估工作流质量。
  3. 实验分析了SWE-agent和OpenHands的4000条轨迹,揭示了智能体策略与问题难度、LLM选择的关系,并发现了低效流程。

📝 摘要(中文)

Agentic系统是现代软件系统,由编排的模块组成,暴露接口,并部署在软件流水线中。与传统程序不同,它们的执行轨迹本质上是随机的,并且能够适应所解决的问题。对此类系统的评估通常以结果为中心,仅根据最终步骤的成功或失败来判断其性能。这种狭隘的关注忽略了关于此类系统的详细见解,无法解释智能体如何推理、规划、行动或随时间改变其策略。受传统软件系统以图结构表示的启发,我们引入Graphectory来系统地编码此类软件系统中的时间和语义关系。Graphectory有助于设计以过程为中心的指标和分析,以评估智能体工作流的质量,而无需考虑最终的成功与否。我们使用Graphectory分析了SWE-agent和OpenHands这两种主流智能体编程工作流的4000条轨迹,结合了四个骨干大型语言模型(LLM),试图解决SWE-bench Verified问题。我们的全自动分析表明:(1)使用更丰富的提示或更强大的LLM的智能体表现出更复杂的Graphectory,反映了更深入的探索、更广泛的上下文收集以及在提交补丁之前更彻底的验证;(2)智能体的问题解决策略随问题难度和底层LLM而变化——对于已解决的问题,策略通常遵循连贯的定位-修补-验证步骤,而未解决的问题则表现出混乱、重复或回溯行为;(3)即使成功,智能体编程系统也经常显示出低效的过程,导致不必要地延长轨迹。

🔬 方法详解

问题定义:现有Agentic软件系统的评估方法主要关注最终结果(成功或失败),缺乏对智能体内部推理、规划和行动过程的深入理解。这种以结果为中心的评估方式无法解释智能体如何随时间改变策略,也无法识别潜在的效率瓶颈。因此,需要一种能够捕捉和分析Agentic系统执行过程的方法,以便更全面地评估其性能和质量。

核心思路:论文的核心思路是将Agentic系统的执行轨迹表示为图结构,即Graphectory。通过将智能体的行为、状态和交互编码为图的节点和边,可以系统地捕捉系统的时间和语义关系。这种图表示允许研究人员设计过程中心指标和分析方法,从而评估智能体工作流的质量,而无需依赖最终结果。

技术框架:Graphectory框架主要包含以下几个阶段:1) 轨迹收集:记录Agentic系统在解决问题时的所有行为、状态和交互信息。2) 图构建:将收集到的轨迹数据转换为图结构,其中节点表示智能体的状态或行为,边表示状态之间的转换或交互关系。3) 特征提取:从Graphectory中提取各种图特征,例如节点度、路径长度、聚类系数等。4) 分析与评估:使用提取的图特征进行分析,例如比较不同智能体策略的复杂性、识别低效流程等。

关键创新:Graphectory的关键创新在于它提供了一种系统化的方法来表示和分析Agentic系统的执行过程。与传统的以结果为中心的评估方法不同,Graphectory允许研究人员深入了解智能体的内部工作机制,并识别潜在的改进空间。此外,Graphectory还提供了一种通用的框架,可以应用于各种不同的Agentic系统和任务。

关键设计:Graphectory的具体设计取决于所分析的Agentic系统和任务。例如,在分析SWE-agent和OpenHands时,节点可以表示智能体的状态(例如,正在定位错误、正在生成补丁、正在验证补丁),边可以表示状态之间的转换(例如,从定位错误到生成补丁)。边的权重可以表示转换发生的频率或时间。此外,还可以使用不同的图算法(例如,最短路径算法、社区检测算法)来分析Graphectory,并提取有用的信息。

🖼️ 关键图片

fig_0
fig_1
fig_2

📊 实验亮点

实验结果表明,使用更丰富的提示或更强大的LLM的智能体表现出更复杂的Graphectory,反映了更深入的探索和更全面的验证。对于已解决的问题,智能体策略通常遵循连贯的定位-修补-验证步骤,而未解决的问题则表现出混乱、重复或回溯行为。即使成功,Agentic编程系统也经常显示出低效的过程,导致不必要地延长轨迹。

🎯 应用场景

该研究成果可应用于Agentic软件系统的设计、优化和评估。通过Graphectory分析,开发者可以更好地理解智能体的行为模式,识别低效流程,并改进智能体的推理和规划能力。此外,该方法还可以用于比较不同智能体策略的优劣,并选择最适合特定任务的智能体。

📄 摘要(原文)

Agentic systems are modern software systems: they consist of orchestrated modules, expose interfaces, and are deployed in software pipelines. Unlike conventional programs, their execution (i.e., trajectories) is inherently stochastic and adaptive to the problem they are solving. Evaluation of such systems is often outcome-centric, judging their performance based on success or failure at the final step. This narrow focus overlooks detailed insights about such systems, failing to explain how agents reason, plan, act, or change their strategies over time. Inspired by the structured representation of conventional software systems as graphs, we introduce Graphectory to systematically encode the temporal and semantic relations in such software systems. Graphectory facilitates the design of process-centric metrics and analyses to assess the quality of agentic workflows independent of final success. Using Graphectory, we analyze 4000 trajectories of two dominant agentic programming workflows, namely SWE-agent and OpenHands, with a combination of four backbone Large Language Models (LLMs), attempting to resolve SWE-bench Verified issues. Our fully automated analyses reveal that: (1) agents using richer prompts or stronger LLMs exhibit more complex Graphectory, reflecting deeper exploration, broader context gathering, and more thorough validation before patch submission; (2) agents' problem-solving strategies vary with both problem difficulty and the underlying LLM -- for resolved issues, the strategies often follow coherent localization-patching-validation steps, while unresolved ones exhibit chaotic, repetitive, or backtracking behaviors; (3) even when successful, agentic programming systems often display inefficient processes, leading to unnecessarily prolonged trajectories.