外观
AI助力编码的前世今生
前言
从去年初开始接触AI辅助编码到现在,期间尝试了很多AI编码类工具,到24年年底才算确定以Cursor为主力开发工具。
本文主要将这个过程搜集的信息和思考进行整理,一方面算是自己对这段工作的一个总结,另一方面也便于大家对这块信息有个直观、体系的了解。
为了方便称呼,该类产品统称为“AI程序员”,AI帮助编写程序嘛。
需要注意的是,2025年1月9日,通义灵码发布了名为‘AI程序员’的新特性,与本文所讨论的概念名称相同,请读者加以区分。
AI程序员的发展
个人将“AI程序员”的发展分为了“智能问答”、“辅助编码”、“结对编程”、“虚拟研发团队”4个阶段,主要覆盖已经完善和正在发展的阶段,至于遥远一点的未来,就看各位AI弄潮儿的努力了。
第一阶段:智能问答
ChatGPT刚诞生之初,“AI程序员”其实就是各家的对话机器人,大家可以使用对话的方式获取编码问题的答案,当然,效果比搜索引擎好很多。
主要特色:
- 提问的内容可以非常简短、粗略,也可以很长,带上场景信息。但不论那种提问方式,ChatGPT类AI都可以做出比较准确的理解,并给出正确的答案(此处,请忽略小概率的幻觉事件)。
- 由于上一条中“带上场景信息”的原因,ChatGPT类AI给出的答案,并不是一个通用答案,而是根据提问信息给出的个性化答案。比如:会结合环境给出具体的错误原因,或者根据具体的代码文件,给出具体的修改建议。
主要产品:通义千问、Kimi、豆包、文心一言等各家智能对话机器人产品。
第二阶段:辅助编码
这个阶段,“AI程序员”大部分以插件形式存在,主要通过代码提示(代码自动完成)、快捷AI指令,然后再结合智能问答进行辅助编码。
主要特色:
- 代码提示:此时的代码提示不仅仅是方法名(函数名)、变量名、调用的提示,而是根据上下文代码,猜测编写意图,给出续写的大段代码,或者根据注释直接生成大段代码。
- 快捷AI指令:比如根据代码写注释、解释代码、分析代码Bug等。
- 智能问答:这个阶段的智能问答也有所升级,主要是在用户体验上。
- 提问方面:可以选取工程中的代码直接提问,也可以快速选择整个文件或者文件夹进行对话。
- 结果方面:可以快速将代码应用到工程中。
主要产品:Copilot、tabnine、通义灵码、CodeGeex等。
第三阶段:结对编程
标志性事件就是Cursor的爆火,不管是“8岁女儿通过Cursor在45分钟内完成应用开发”,还是“一个博主使用Cursor开发了一款App(小猫补光灯Pro),登上了Appstore(付费)排行榜第一”,无不体现着该阶段AI编程的魅力。
这个阶段,“AI程序员”往往都是以独立软件或者云服务(网站)方式存在。
主要特色:
- 自然语言编程:可以直接通过自然语言进行环境配置、界面实现、代码编写、问题修复、代码测试等工作,方便快捷地服务编码的各个阶段。
- 多文件操作:不再局限于文本回答,而是直接根据回答创建、修改需要变动的多个文件,比如:Cursor的Composer模式、Windsurf的Cascade模式,甚至Cursor还提出了不需要人为确认的YOLO模式。
- 灵活的上下文:不局限于对话提供的内容,可以根据需要选择代码块、单个文件、多个文件、代码仓库,方便各种编程场景。这其中,各大厂商提供的上下文拆分与索引功能直接决定了各自产品的用户体验。
- 创新的交互方式:这块各大厂商都比较一致,对话方式为主体框架,然后在回答中,通过针对代码块提供具体的操作按钮提供交互,比如插入代码、代码比对、变动审阅、生成版本及回滚等。
- 不断完善的领域覆盖:除了直接写代码外,支持终端命令执行、编译环境、发布集成等。
- 特色的有用场景:Cursor的Tab、Bolt的编码发布一站式服务、V0 UI方面的强力支持等。
以上特色造就了现在AI编程的火爆,比较典型的产品有:Cursor、Windsurf、V0、Bolt.new、Devin,以及通义灵码的AI程序员,字节刚发布的Trae(当前仅Mac支持)。
第四阶段:虚拟研发团队
这个阶段的“AI程序员”其实更应该叫做“AI程序员团队”,主要通过整合不同角色的AI模型,如产品经理、架构师、项目经理和工程师,形成一个虚拟团队,使之能处理用户故事、竞争分析、需求定义至API开发及文档编写等任务,并实现完整的软件开发流程和标准操作程序(SOP)。
这个阶段已经有相关研究了,比如北京大学李戈教授团队self-collaboration(自合作)模式、基于MetaGPT的实现等。
我们也在做这方面的尝试,当然没有上面团队那么高大上,我们主要期望通过工作流、多智能体框架、各家AI API的组合和调优,实现一个可以部分替代或者补充我们研发团队的产品。
总结
本文主要梳理了下“AI程序员”发展的历程及相关产品,希望可以让大家对这部分的了解更加体系化。但由于AI的快速发展和个人能力有限,仅供大家参考讨论哈。
