大家好,我是袁庭新。之前给大家介绍过AI编码助手——通义灵码,这期给大家分享通义灵码AI程序员的一些功能。
随着大模型的持续进化,在语义理解、代码生成、开发工作流等方面的能力也获得了持续、全面的提升。你说,要是有个编程小助手,就像智能汽车能自动驾驶一样,咱们只需要动动嘴皮子,它就能嗖嗖地给咱们写出代码来,这画面是不是挺带劲的。没错,AI程序员,这个听起来就像科幻电影里的角色,现在正一步步走进现实。你知道吗?就在2024年3月12日,Cognition公司放了个大招,推出了全球头一个AI程序员——Devin,这可是AI和软件开发牵手共舞的新纪元啊。还有GitHub,他们也搞了个新花样,叫做GitHub Copilot Workspace,是基于GPT-4这个超级大脑打造的一款AI智能编程工具。不过呢,这些海外产品均基于闭源模型,包括GPT4o、Claude3.5等,在国内产品中无法使用。
再来看一下国内的AI程序员产品,主要以通义灵码AI程序员为代表。通义灵码 AI 程序员是阿里云和通义实验室联合开发的一款 AI 智能体,旨在辅助并部分替代人类程序员完成复杂的编程任务。
无论是哪家公司的AI程序员产品,他们的使用场景是类似的。开发者负责输入需求,然后AI程序员来理解需求和任务拆解,再交由开发者来确认计划,确认完成后AI程序员开始编码实现、自主测试和提交代码,最终开发者进行结果确认。在这个过程中我们比较关注AI程序员的三种使用场景,分别是缺陷修复、测试生成和需求实现。
第一个场景是,AI程序员具备强大的Bugfix Agents全自动缺陷修复能力。它具有项目感知能力,根据缺陷上下文,进行缺陷定位和信息收集,然后生成可用的经过验证的缺陷修复代码。开发者只需确认计划,AI程序员即可自动完成代码修复。整个过程是依靠多个Agents来协作完成的,成为每个开发者的Bugfix小助手。
第二场景是,UnitTest Agents全自动单测生成。单元测试是AI比较擅长的,并且可以大幅度提升代码质量,也是AI编码头部公司比较关注的领域。首先需要对UnitTest模型能力提升,这就需要对模型进行专项训练。第一个控制单元测试生成的数量,包括分支的覆盖;第二个规范性,比如Java单元测试范式的标准;第三个单元测试框架的支持,如JUnit4和JUnit5不能混淆,需要教会模型在不同框架下如何生成正确的测试用例;还有要保证生成的单元测试风格要统一等。通过这一系列的模型训练和优化,现在已经能做到单元测试一次性编译通过率达到40%左右。单元测试能不能实现达到近100%的通过率,这就需要用到Agent技术。通过Agent来建立一个复杂的工作流,包括生成单元测试、编译构建和运行、搜索工程信息、自主修复、报告生成、用例采纳等。