新智元报道

编辑:英智

【新智元导读】从代码补全到全流程开发,AI正以前所未有的速度改变软件开发的规则。本文深入解析了L1到L5五个等级的AI编程工具,展望了AI编程的全面自动化。

AI恰似一把神奇的钥匙,悄然开启了编程领域的全新大门。

从代码补全到项目级自动化,AI的角色从「助手」转变为「工程师」,甚至是「开发团队」,极大地改变了软件开发的传统格局。

借鉴自动驾驶的术语,AI编程工具可以划分为L1到L5五个等级。接下来将详细介绍。



2025年1月AI编程领域可视化图

L1:代码补全

从基础功能层面来看,以GitHub Copilot为代表的L1级工具,主要聚焦于代码补全。

开发者常常会面临一些重复、繁琐的代码输入,这类工具极具实用价值,通过智能建议与代码补全功能,能极大地简化编码流程。

在现代开发环境中,L1级的代码补全工具已经极为普遍,为更先进的AI编程工具奠定了坚实的基础。


GitHub Copilot擅长代码补全


代码补全(L1)产品

L2:任务自动化

L2级别的工具专注于任务级自动化,LLM如ChatGPT便属于这一范畴。

这类工具擅长处理各种开发任务,能够依据描述性提示来开发新功能、修复漏洞以及重构代码。


然而,在实际使用过程中,使用LLM进行编码任务也面临着一些挑战。例如,它需要精心设计的提示以及相关源代码上下文,才能生成高质量的代码,而手动创建提示既耗时又繁琐。

为了解决这一问题,一些工作流自动化工具应运而生,如命令行工具aider和桌面应用程序16x Prompt,它们能够简化提示生成过程,帮助开发者从LLM中获取高质量代码。


此外,Cursor、Continue和PearAI等集成开发环境(IDE)及其扩展,能够将LLM无缝集成到开发环境中,为开发者提供更友好的交互界面,让他们在开发过程中能够更便捷地与LLM互动,实现编程任务的自动化。



任务级自动化(L2)产品

L3:项目自动化

L3代表着项目级自动化的早期阶段,像Codegen、Sweep 和 Pythagora这样的工具,具备分析项目需求并生成相关拉取请求的能力。


L3级工具的一个关键特性在于,它们能够通过与项目管理工具(如Jira)和源代码平台(如GitHub)集成,实现软件开发多个步骤的自动化,包括需求收集、代码生成、拉取请求创建和部署。

然而,目前这些系统尚处于初级阶段,仅能管理较为简单的编码项目,并生成基本的代码片段。在实际应用中,还需要人工进行干预,以确保代码的质量和相关性,这在一定程度上限制了它们的自主性。

另外,还有一些工具,如Vercel的v0、Tempo Labs的Tempo和CerebrasCoder,能够帮助用户创建网站,但通常专注于软件技术栈中的某一部分,例如前端开发。


项目级自动化(L3)产品

L4:AI软件工程师

L4标志着从人类驱动编码向AI驱动软件开发的关键转变,开发过程能够实现从产品需求到生产部署的完全自动化。

这一级别的工具,如Devin、Marblism和Cosine的Genie等,旨在访问终端和部署工具,管理整个开发活动的流程。


用Marblism制作的示例项目


SWE-bench 验证排行榜(截至2024年12月19日)

这些先进的系统不仅能够解读产品需求、管理代码部署,还能维护生产环境中的软件,充分体现了AI软件工程师的角色。

它们的出现,能让非技术人员在短短几分钟内,就能从零开始创建一个功能完整的软件产品,大大降低了软件开发的门槛。


AI软件工程师(L4)产品

L5:AI开发团队

在L5级别,AI编程进入了一个全新的领域,可能涉及一个包含多个AI软件工程师的AI系统。这些 AI 代理能够协作完成项目,各自专注于软件开发的不同方面。

微软的论文《AutoDev》提出,智能体能够从智能体调度器(Agent Scheduleer)接收目标和对话历史,并根据规则和动作配置做出响应。不过,该论文目前仅使用单个GPT-4智能体来进行评估。


参考资料:https://arxiv.org/html/2403.08299v1

这一类别中的另一个产品是MGX,由MetaGPT团队设计,目前处于等待名单阶段。


随着GPT-5预计在2025年发布,AI开发团队的梦想正逐渐从蓝图走向现实。

我们可以预见,在不久的将来,AI系统能够复制整个软件开发团队,在软件创作的各个方面进行编程和协作,真正实现软件开发的高度自动化。



AI开发团队(L5)产品

如何选择适合的AI编程工具?

面对如此丰富多样的AI编程工具,开发者应如何选择呢?这需要依据自身的需求和项目的复杂程度来决定。

如果仅仅是需要代码补全功能,那么L1级别的工具,如GitHub Copilot,就能够满足需求。

对于更复杂的任务,如功能开发和漏洞修复,可以使用L2级别的LLM,如ChatGPT或Claude 3,并结合工作流自动化工具,如aider或16x Prompt。

倘若你勇于尝试新事物,对项目级自动化感兴趣,那么L3级别的工具,如Codegen或Sweep,将是一个不错的起点。

开发者不必局限于使用单个级别的工具,完全可以根据实际需求,组合使用不同级别的工具。

例如,在遇到简单的代码补全任务,能够在5秒钟内解决的,可使用GitHub Copilot;而对于那些需要花费几分钟来精心设计提示的复杂任务,则可以借助ChatGPT和16x Prompt来处理。

AI在编程领域所扮演的角色,正经历着快速的演变。从最初仅能为开发者提供基本语法层面的辅助,到如今已深度渗透至软件开发生命周期的每一个环节,实现全流程的管理与赋能。

随着AI技术的不断成熟,未来将会涌现出更加复杂、强大的工具,它们将彻底重塑编程领域,让开发者能够专注于高层次的任务,而将软件开发的常规工作交由AI来处理。

从代码补全到全方位开发支持,AI正在重新定义软件开发的未来。

参考资料:

https://prompt.16x.engineer/blog/ai-coding-l1-l5

ad1 webp
ad2 webp
ad1 webp
ad2 webp