微软AI程序员登场,10倍AI工程师真来了?996自主生成代码,性能超GPT-4 30%


微软AI程序员登场,10倍AI工程师真来了?996自主生成代码,性能超GPT-4 30%

文章插图
新智元报道
编辑:桃子 润
【新智元导读】全球首个AI程序员Devin诞生之后,让码农纷纷恐慌 。没想到 , 微软同时也整出了一个AI程序员——AutoDev,能够自主生成、执行代码等任务 。网友惊呼,AI编码发展太快了 。
全球首个AI程序员Devin的横空出世,可能成为软件和AI发展史上一个重要的节点 。
它掌握了全栈的技能,不仅可以写代码debug,训模型,还可以去美国最大求职网站Upwork上抢单 。
微软AI程序员登场,10倍AI工程师真来了?996自主生成代码,性能超GPT-4 30%

文章插图
一时间,网友们惊呼 , 「程序员不存在了」?
甚至连刚开始攻读计算机学位的人也恐慌,「10倍AI工程师」对未来的工作影响 。
微软AI程序员登场,10倍AI工程师真来了?996自主生成代码,性能超GPT-4 30%

文章插图
除了Cognition AI这种明星初创公司 , 美国的各个大厂也早就在想办法用AI智能体降本增效了 。
就在3月14日同一天,微软团队也发布了一个「微软AI程序员」——AutoDev 。
论文地址:https://arxiv.org/pdf/2403.08299.pdf
与Devin这种极致追求效率和产出结果的方向有所不同 。
AutoDev专为自主规划、执行复杂的软件工程任务而设计 , 还能维护Docker环境中的隐私和安全 。
在此之前,微软已有主打产品Github Copilot , 帮助开发人员完成软件开发 。
然而,包括GitHub Copilot在内的一些AI工具,并没有充分利用IDE中所有的潜在功能,比如构建、测试、执行代码、git操作等 。
基于聊天界面的要求,它们主要侧重于建议代码片段,以及文件操作 。
AutoDev的诞生,就是为了填补这一空白 。
微软AI程序员登场,10倍AI工程师真来了?996自主生成代码,性能超GPT-4 30%

文章插图
用户可以定义复杂的软件工程目标 , AutoDev会将这些目标分配给自主AI智能体来实现 。
然后,这些AI智能体可以对代码库执行各种操作,包括文件编辑、检索、构建过程、执行、测试和git操作 。
甚至 , 它们还能访问文件、编译器输出、构建和测试日志、静态分析工具等 。
在HumanEval测试中,AutoDev分别在代码生成和测试生成方面,分别取得了91.5%和87.8% Pass@1的优秀结果 。
网友表示,AI编码发展太快了 , 2021年GitHub Copilot能解决28.8%的HumanEval问题,到了2024年 , AutoDev直接解决了91.5%的问题 。
不用人类插手,AutoDev自主完成任务
AutoDev工作流程如下图所示,用户定义一个目标 , 比如「测试特定方法」 。
AI智能体将测试写入一个新文件,并启动测试执行命令 , 以上都在安全的评估环境中进行 。
然后,测试执行的输出(包括失败日志)将合并到对话中 。
AI智能体分析这些输出,触发检索命令,通过编辑文件合并检索到的信息 , 然后重新启动测试执行 。
最后,Eval环境提供有关测试执行是否成功,以及用户目标完成情况的反馈 。
整个过程由AutoDev自主协调,除了设定初始目标之外,无需要开发人员干预 。
相比之下,如果现有的AI编码助手集成到IDE 中 , 开发人员必须手动执行测试(比如运行pytest)、向AI聊天界面提供失败日志、可能需要识别要合并的其他上下文信息 , 并重复验证操作确保AI生成修改后的代码后测试成功 。
微软AI程序员登场,10倍AI工程师真来了?996自主生成代码,性能超GPT-4 30%

文章插图
值得一提的是,AutoDev从以前许多在AI智能体领域的研究中汲取了灵感,比如AutoGen——编排语言模型工作流并推进多个智能体之间的对话 。
AutoDev的能力超越了对话管理,使智能体能够直接与代码存储库交互,自动执行命令和操作,从而扩展了 AutoGen 。
同样,AutoDev的研究也借鉴了Auto-GPT 。这是一种用于自主任务执行的开源AI智能体,通过提供代码和IDE特定功能来支持执行复杂的软件工程任务 。
AutoDev构架
微软AI程序员登场,10倍AI工程师真来了?996自主生成代码,性能超GPT-4 30%

文章插图
上图是AutoDev架构的简单示意图 。
AutoDev主要由4个功能模块组成:
-用于跟踪和管理用户与代理对话的对话管理器(Conversation Manager);
-为代理提供各种代码和集成开发环境相关工具的工具库(Tools library);
-用于调度各种代理的代理调度器(Agents Scheduler);
-以及用于执行操作的评估环境(Evaluation Environment) 。


推荐阅读