面向软件工程的AI智能体最新进展,复旦、南洋理工、UIUC联合发布全面综述
来源:机器之心
时间:2024-11-15 13:42:44 242浏览 收藏
欢迎各位小伙伴来到golang学习网,相聚于此都是缘哈哈哈!今天我给大家带来《面向软件工程的AI智能体最新进展,复旦、南洋理工、UIUC联合发布全面综述》,这篇文章主要讲到等等知识,如果你对科技周边相关的知识非常感兴趣或者正在自学,都可以关注我,我会持续更新相关文章!当然,有什么建议也欢迎在评论留言提出!一起学习!
AIxiv专栏是本站发布学术、技术内容的栏目。过去数年,本站AIxiv专栏接收报道了2000多篇内容,覆盖全球各大高校与企业的顶级实验室,有效促进了学术交流与传播。如果您有优秀的工作想要分享,欢迎投稿或者联系报道。投稿邮箱:liyazhou@jiqizhixin.com;zhaoyunfeng@jiqizhixin.com
本篇综述的作者包括来自复旦大学 CodeWisdom 团队的研究生刘俊伟、王恺欣、陈逸轩和彭鑫教授、娄一翎青年副研究员,以及南洋理工大学的陈震鹏研究员和伊利诺伊大学厄巴纳 - 香槟分校(UIUC)的张令明教授。
自从首个全自动 AI 软件工程师 Devin 问世以来,面向软件工程的 AI 智能体广受关注、层出不穷,例如最近的 Genie、Replit、Cursor 等,它们正在对传统软件开发的范式产生着深刻影响。基于大模型的 AI 智能体(LLM-based Agents,后简称 Agent)通过增强推理、记忆、规划以及使用拓展工具的能力,极大地提升了大模型解决复杂软件开发维护任务的能力,为进一步实现自动化、智能化的软件开发提供了新思路。AI 智能体正在成为软件工程领域的研究新热潮。
复旦大学 CodeWisdom 团队联合南洋理工大学、UIUC 共同对 106 篇相关文献进行梳理和解读,分别从软件工程和 Agent 两个视角全面展现了 Agent 在软件工程领域的最新进展。从软件工程视角,该综述梳理了 Agent 在软件开发全周期各个任务上的应用现状;从 Agent 视角,该综述展示了目前应用于软件工程领域的 Agent 的基础架构、多智能体设计模式以及人机协同模式。最后,该综述展望了 Agent 在软件工程领域的研究机会与发展方向。
论文地址:https://arxiv.org/pdf/2409.02977
Agent4SE 论文列表:https://github.com/FudanSELab/Agent4SE-Paper-List
一、Agent 覆盖软件开发维护全流程
如图 1 所示,目前 Agent 已基本覆盖了软件开发和维护的全流程,不仅可以解决某个特定的软件开发环节(例如静态检查和测试),而且在应对更复杂的端到端的软件开发和维护任务上也表现出了巨大潜力,包括:
端到端软件开发(End-to-end Software Development):Agent 通过执行多种开发子任务,包括需求工程、设计、代码生成和质量保证(包括静态检查和测试等),完成从需求到最终程序的全流程开发。
端到端软件维护(End-to-end Software Maintenance):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 的未来研究方向。
更全面的评测基准和更真实的评测数据。当前针对软工任务的 Agent 的评测主要集中在其端到端解决特定任务的能力上,缺少对决策过程和失败原因的深入分析,以及对鲁棒性等可信指标以及效率指标的关注。此外,当前用于评测 Agent 的数据集也存在一些问题,如逻辑过于简化,与现实场景相差较远等。因此,设计更多样化的评估指标和构建更高质量、更现实的数据集基准是准确评估 Agent 能力的重要方向。
探索人机协同新范式。当前针对软工任务的 Agent 人机协同主要局限于需求工程、设计、测试评估等环节,同时缺少对高效友好的交互接口的系统研究。因此,未来研究可关注于拓展人机协同的应用场景,以及提供更加流畅的人机协作模式。
多模态感知。目前针对软工任务的 Agent 主要依赖于文本或视觉感知。探索和整合多样化的感知模态,如语音命令或用户手势,会显著提高 Agent 编码助手的灵活性和可访问性。
将 Agent 应用于更多软工任务。尽管现有的 Agent 已经被部署在各种软工任务中,但一些关键阶段(如设计、验证和功能维护)仍未被充分探索,为这些阶段开发 Agent 系统可能会面临各方面的新挑战。
训练面向软件工程的基座大模型。目前 Agent 通常构建在以通用数据或者代码数据为主要训练数据的大模型之上,而软件开发的全周期往往涉及设计、架构、开发者讨论、程序动态执行、历史演化等代码以外的重要信息。有效利用这些信息可以构建面向软件工程领域的基座大模型,从而在此基础上构建更强大的面向软件开发与维护的 Agent。
将软件工程领域知识融入 Agent 设计。正如最近 Agentless 研究所揭示,流程复杂且高度自主的 Agent 在某些软件维护任务上的效果不如基于传统缺陷定位和程序修复流程所设计的简单工作流。软件工程领域的经典方法论和思想对于设计 Agent 的工作流有着重要的借鉴和指导意义,可以进一步提高 Agent 解决方案的有效性、鲁棒性和效率。
今天关于《面向软件工程的AI智能体最新进展,复旦、南洋理工、UIUC联合发布全面综述》的内容就介绍到这里了,是不是学起来一目了然!想要了解更多关于产业,AI智能体的内容请关注golang学习网公众号!
-
501 收藏
-
501 收藏
-
501 收藏
-
501 收藏
-
501 收藏
-
359 收藏
-
211 收藏
-
322 收藏
-
122 收藏
-
302 收藏
-
354 收藏
-
- 前端进阶之JavaScript设计模式
- 设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
- 立即学习 542次学习
-
- GO语言核心编程课程
- 本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
- 立即学习 507次学习
-
- 简单聊聊mysql8与网络通信
- 如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
- 立即学习 497次学习
-
- JavaScript正则表达式基础与实战
- 在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
- 立即学习 487次学习
-
- 从零制作响应式网站—Grid布局
- 本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
- 立即学习 484次学习