论文 · Large Language Model-Based Agents for Software Engineering

基础信息

  • 标题:Large Language Model-Based Agents for Software Engineering: A Survey
  • 类型:Survey / software engineering agents
  • 核心贡献:系统综述 124 篇 LLM-based software engineering agent 论文,从 SE 任务视角和 agent 架构视角同时梳理应用、组件、挑战和未来方向。

Q1. 研究动机

LLM agent 已大量进入需求、编码、测试、调试、运维和维护等 SE 场景,但相关工作分散在不同任务和架构范式中。作者希望系统回答:这些 agent 在软件工程中做什么、如何设计、哪些机制有效、仍有哪些开放问题。

Q2. 核心问题

论文要解决的是 LLM-based agents for SE 的系统化认知问题:如何从软件工程任务和 agent 架构两个维度组织已有研究,并识别评测、规划、记忆、多 agent 和人机协作方面的关键挑战。

Q3. 现有不足 & 本文改进

已有综述常聚焦单一 SE 任务、单一 agent 组件或通用 agent,不足以解释 SE agent 的任务谱系和架构选择。本文改进是同时覆盖 requirements、code generation、static checking、testing、debugging、IT operations、end-to-end development、maintenance,并从 planning、memory、perception、action、foundation LLM、多 agent 和 human-agent collaboration 解释系统设计。

Q4. 方法流程

作者先通过 DBLP 关键词检索、snowballing 和作者反馈收集论文:关键词搜索得到 67 篇,snowballing 增加 41 篇,作者反馈后最终收集 124 篇。随后从两个视角编码:SE perspective 关注 agent 如何用于各类软件开发维护活动;agent perspective 关注基础模型、规划、记忆、感知、行动、多 agent 协作和人机协作机制。最后总结挑战、研究机会和有效性威胁。

Q5. 实验设计与结论

  • 文献收集:Section 3 说明作者在 2024 年 7 月进行 57 次 DBLP 检索,获得 10,362 条命中,并结合 snowballing 与作者反馈形成 124 篇论文集合。
  • 任务分类:Section 4 按 SE 生命周期总结需求工程、代码生成、静态检查、测试、调试、IT 运维、端到端开发和维护,结论是 agent 的优势主要来自环境交互、迭代反馈和工具调用。
  • 架构分类:Section 5 归纳 planning、memory、perception、action 和 multi-agent 设计,例如 planning 有 single/multiple planner、single/multi-turn planning、single/multi-path planning。
  • 统计发现:论文指出 59.7% 的 SE agents 是 multi-agent systems,说明多角色协作已成为 SE agent 常见设计。
  • 未来方向:Section 6 强调细粒度评测、真实 benchmark、人机协作、多模态感知、更多 SE 任务、软件专用 LLM 和 SE 专家知识注入。

Q6. 局限性

作者明确提出:

  • 手工筛选论文存在主观性,可能遗漏相关工作。
  • 一些结论受论文发表状态影响,部分策略只由预印本或未发表工作支持。
  • 多 agent 需求工程、知识增强 bug detection、coverage-oriented unit testing、视觉输入和部分 memory format 的证据仍不充分。

以下为分析归纳,非原文明确说明:

  • 综述截至 2024 年 9 月前后的论文,对 2025 年之后快速发展的 coding agent 可能覆盖不足。
  • 很多工作缺少统一 benchmark,导致 survey 难以给出强量化排序。

Q7. 学术价值

  • 理论价值:提供了 SE agent 的双视角框架,把任务类别和 agent 组件连接起来。
  • 方法价值:总结 planning、memory、perception、action、多 agent 协作和 human-agent collaboration 的设计空间。
  • 应用价值:为构建代码生成、修复、测试和运维 agent 提供了路线图和风险清单。

Q8. 延伸研究方向

  1. 建立面向具体 SE 任务的高质量、可复现实验 benchmark。
  2. 对 planning 和 memory 模块做独立评测,而不只看最终任务成功率。
  3. 探索更深入的人机协作界面,让人参与架构设计、测试生成和代码审查。
  4. 训练覆盖需求、设计、运行时信息和代码演化的软件专用 LLM。
  5. 把传统 SE 工具、过程模型和质量保证技术系统集成进 agent。

Q9. 反直觉发现与方法失效分析

  • Section 6 提到只有 46.7% 的论文显式考虑效率,包括时间、token、成本和反馈循环;这与 SE agent 常有长流程、多次 LLM 调用的现实不匹配。
  • Section 6 指出 SWE-bench 中 77.8% 任务可由有经验工程师 1 小时内完成,说明当前 benchmark 可能低估真实 SE 复杂度。
  • Section 6 用 Agentless 的结果说明,简单传统 fault localization + repair 流水线甚至可优于复杂自治 agent;这对“越自治越强”的直觉形成反例。
  • Section 7.2 指出多个流行方向缺少 peer-reviewed 证据,例如部分 memory format 和视觉输入;作者没有把这些机制视为已被充分证明。
  • 整体评价:该 survey 的贡献在系统分类和风险识别,结论更适合作研究地图;对具体技术优劣的判断仍受文献异质性和 benchmark 不统一限制。
Ting WeChat PayWeChat Pay
0%