本篇综述的作者包括来自复旦大学 CodeWisdom 团队的研究生刘俊伟、王恺欣、陈逸轩和彭鑫教授、娄一翎青年副研究员,以及南洋理工大学的陈震鹏研究员和伊利诺伊大学厄巴纳 - 香槟分校(UIUC)的张令明教授。
自从首个全自动 AI 软件工程师 Devin 问世以来,面向软件工程的 AI 智能体广受关注、层出不穷,例如最近的 Genie、Replit、Cursor 等,它们正在对传统软件开发的范式产生着深刻影响。基于大模型的 AI 智能体(LLM-based Agents,后简称 Agent)通过增强推理、记忆、规划以及使用拓展工具的能力,极大地提升了大模型解决复杂软件开发维护任务的能力,为进一步实现自动化、智能化的软件开发提供了新思路。AI 智能体正在成为软件工程领域的研究新热潮。
复旦大学 CodeWisdom 团队联合南洋理工大学、UIUC 共同对 106 篇相关文献进行梳理和解读,分别从软件工程和 Agent 两个视角全面展现了 Agent 在软件工程领域的最新进展。从软件工程视角,该综述梳理了 Agent 在软件开发全周期各个任务上的应用现状;从 Agent 视角,该综述展示了目前应用于软件工程领域的 Agent 的基础架构、多智能体设计模式以及人机协同模式。最后,该综述展望了 Agent 在软件工程领域的研究机会与发展方向。
一、Agent 覆盖软件开发维护全流程
如图 1 所示,目前 Agent 已基本覆盖了软件开发和维护的全流程,不仅可以解决某个特定的软件开发环节(例如静态检查和测试),而且在应对更复杂的端到端的软件开发和维护任务上也表现出了巨大潜力,包括:
图 1: 软件开发与维护任务流程上的 Agent 分布
端到端软件开发
目前面向端到端软件开发的 Agent 主要模拟真实的软件开发团队,设计不同的软件开发角色,互相协作共同完成软件开发任务。
表 1: 面向端到端软件开发任务的 Agent 文献列表
其中,有些 Agent 在工作流设计上主要遵循了现实软件开发中常见的软件过程模型,包括瀑布模型和敏捷开发(测试驱动开发和 Scrum)。
图 2: 面向端到端软件开发的 Agent 中采用的过程模型
端到端软件维护
目前,面向端到端软件维护任务的 Agent 遵循着 “缺陷定位 - 补丁生成 - 补丁验证” 的基本工作流程;在此基础上,不同 Agent 选择性地引入了预处理、故障重现、任务分解、补丁排名等步骤。
表 2: 面向端到端软件维护任务的 Agent 文献列表
图 3: 面向端到端软件维护任务的 Agent 中常用的工作流
这类 Agent 往往以 SWE-bench 及其衍生的数据集作为评测基准。
图 4: 端到端维护软件任务的数据集演化示意图
特定的软件开发 / 维护任务
除了端到端的软件开发和维护任务,目前 Agent 在面向单个特定的软件开发或维护环节也有着广泛应用,包括需求工程、代码生成、代码静态检查、测试、缺陷定位与修复等。该综述梳理了面向特定不同软件开发 / 维护任务的 Agent 的工作流。
图 5: 面向特定软件开发 / 维护环节的 Agent 工作流
二、面向软件工程的 Agent 设计
根据 Agent 的基础结构划分(即 规划(Planning)、记忆(Memory)、感知(Perception)、行动(Action)),该综述进一步总结目前面向软件开发和维护的 Agent 在每部分的设计特点。
Agent 中的常用工具
为了进一步提升 Agent 在软件开发和维护任务上的能力,目前 Agent 的行动模块中集成和使用了大量的工具,主要包括搜索、文件操作、静态程序分析、动态分析、测试、版本管理工具等。
图 6: 面向软件开发和维护的 Agent 中的常用工具分类
人机协作范式
目前在面向软件开发维护任务上,开发者和 Agent 的协作主要发生在规划、需求工程、开发和评估四个环节。主要的协同方式,是由人类提供反馈,引导、澄清或直接纠正 Agent 的输出。
图 7:面向软件开发和维护任务的 Human-Agent 协作范式
三、未来的研究方向
该综述进一步探讨了面向软件开发和维护的 Agent 的未来研究方向。
文章来源“机器之心”,作者“机器之心”
【开源免费】n8n是一个可以自定义工作流的AI项目,它提供了200个工作节点来帮助用户实现工作流的编排。
项目地址:https://github.com/n8n-io/n8n
在线使用:https://n8n.io/(付费)
【开源免费】DB-GPT是一个AI原生数据应用开发框架,它提供开发多模型管理(SMMF)、Text2SQL效果优化、RAG框架以及优化、Multi-Agents框架协作、AWEL(智能体工作流编排)等多种技术能力,让围绕数据库构建大模型应用更简单、更方便。
项目地址:https://github.com/eosphoros-ai/DB-GPT?tab=readme-ov-file
【开源免费】VectorVein是一个不需要任何编程基础,任何人都能用的AI工作流编辑工具。你可以将复杂的工作分解成多个步骤,并通过VectorVein固定并让AI依次完成。VectorVein是字节coze的平替产品。
项目地址:https://github.com/AndersonBY/vector-vein?tab=readme-ov-file
在线使用:https://vectorvein.ai/(付费)
【开源免费】DeepBI是一款AI原生的数据分析平台。DeepBI充分利用大语言模型的能力来探索、查询、可视化和共享来自任何数据源的数据。用户可以使用DeepBI洞察数据并做出数据驱动的决策。
项目地址:https://github.com/DeepInsight-AI/DeepBI?tab=readme-ov-file
本地安装:https://www.deepbi.com/
【开源免费】airda(Air Data Agent)是面向数据分析的AI智能体,能够理解数据开发和数据分析需求、根据用户需要让数据可视化。
项目地址:https://github.com/hitsz-ids/airda
【开源免费】AutoGPT是一个允许用户创建和运行智能体的(AI Agents)项目。用户创建的智能体能够自动执行各种任务,从而让AI有步骤的去解决实际问题。
项目地址:https://github.com/Significant-Gravitas/AutoGPT
【开源免费】MetaGPT是一个“软件开发公司”的智能体项目,只需要输入一句话的老板需求,MetaGPT即可输出用户故事 / 竞品分析 / 需求 / 数据结构 / APIs / 文件等软件开发的相关内容。MetaGPT内置了各种AI角色,包括产品经理 / 架构师 / 项目经理 / 工程师,MetaGPT提供了一个精心调配的软件公司研发全过程的SOP。
项目地址:https://github.com/geekan/MetaGPT/blob/main/docs/README_CN.md