本文内容适合关注 AI 前沿的读者。回顾2024年 AI 编程领域技术和产品创新,同时总结企业编程提效在落地的真实效果和挑战,从落地实践和思考,观察行业趋势和分析解决方案。最后,展望2025年AI 编程下一代技术给大家的期待。文章信息量较大,建议阅读时长20-30分钟适宜。本文涉及关键字:Github Copilot、Cursor、v0、reweb.so、AI Agent、Coding Agent、RAG、微调、Blot.new 、Devin.ai 、Cursor Composer 、AIOps、Function Call
从ChatGPT ,到 AI 编程工具 Github Copilot 的横空出世。到如今火爆全球的 Cursor、Devin ,编程领域不可否认迎来了自己的“工业革命”。我觉得所有的工程师真的都会觉得:AI 在日常的编程当中,真真切切地给大家带来了巨大的效率提升,极大的降低编程的门槛
https://survey.stackoverflow.co/2024/ai
• Stackoverflow 2024年对AI 编程领域做的调研,在受访全球2万名工程师里,81%人认同AI 工具提高了开发效率。 To C来说,AI 编程已经不是怀疑它的价值,而是想象空间能到哪的范畴了
• 相对于过去,机器学习和大模型技术推动了编程领域巨大的革命。OpenAI 在2024.12底发布了 ChatGPT o3 ,在权威的顶尖程序员竞赛CodeForces中,o3的得分达到了2727分,远超 o1 的1891分。在168076名程序员中,o3的排名为175名,o3的编程能力已经达到了一个相当高的水平,能够与顶尖程序员相媲美。
https://openai.com/
回顾整个2024年,Cursor 可能是最受大家关注和欢迎的 AI 工具。作为定义下一代编程IDE的 Cursor, 凭借独有产品创新火爆全球。越来越多的工程师已经用 Cursor 进行 Copilot 极限编程,我自己70%-80%日常编程交给 Cursor 完成。哪怕它是付费的,也物有所值
Cursor 一整年惊人的增长
2024年8月 Cursor的开发商Anysphere宣布完成6000万美元的A轮融资,此轮融资由Andreessen Horowitz(a16z)领投,谷歌首席科学家Jeff Dean等,公司估值到4亿美元
2024年底 Anysphere完成1亿美元的B轮融资,投后估值高达26亿美元
业绩增长 Anysphere 2024年4月的 400万美元到10月的 4800万美元
付费收入短短半年增长超过1000% !
Cursor 为何如此受到全世界工程师的欢迎。Cursor 团队来自MIT,团队在2022年组建,和其他 Code Copilot 不同,Cursor 定位为The AI-first Code Editor,旨在构建新型的代码编辑器,而不是编程 AI 插件。在三年的试错后,直到ChatGPT 横空出世,团队意识到 AI 可以更好在编程世界中进行人机交互。Cursor 有一个叫 Composer 功能,颇为惊艳:
下面是我课程项目的案例,完成一个小功能:把添加类目功能用友好的弹出层实现。只需在Cursor 输入提示词“新增类目改成弹出层”,在不写代码情况下,完成功能
在对话模式中自动并发创建和修改多个文件,这种全方位的编辑能力在编程体验和效率上远超传统 AI 工具,比如 Github Copilot 提供的上下文引用。因为 Cursor 产品上革新换代,甚至让 Github Copilot 感受极大压力,提供免费额度,产品迭代全面学习 Cursor
Cursor 编程交互远超其它对手,而且给我们一个很大震撼:Cursor 如此出色却并没有自己的底层大模型,它采用是深度集成通用大模型模式工作,任何大模型都可以作为底座
通过系统系统和真实项目考验,Cursor 比其它AI 编程工具,代码质量更高,而且完成开发能力更强。是否让你意外?特别让我印象深刻是它缺陷查找,长Token的处理能力。
下面我用两个真实项目案例,大家直观感受下:
帮我把sql 重复插入数据去掉,生成新的 insert sql:
1、重复规则 hotel_id+room_id+check_in
Cursor 出色完成任务,其它 AI 编程工具也没有完成,包括 Github Copilot
更多案例详细介绍和演示,看我开源项目
https://github.com/laziobird/CodeLLMEval/blob/main/common-scenarios/longContext-chinese.md
我下载试了下,是一个实用的小应用。事实证明,就算没有做过编程的人,真可以通过Cursor ,用纯产品语言的对话,就可以开发一些小功能、简单的应用。当然,作者也承认在不断学习一些编程知识,因为后续版本完善和缺陷修复需要懂编程知识
工程师使用AI工具编程76%, AI编程工具在企业渗透率超过90%
https://survey.stackoverflow.co/2024/ai#sentiment-and-usage
很多企业公开宣称代码采纳率达到了30-40%,下面国内编程平台官方给出的案例
https://comate.baidu.com/zh/scenarios
https://lingma.aliyun.com/lingma/community/use-cases
虽然AI编程越来越被企业认可接受,随着落地实践深入。我们发现AI生成代码质量很多情况是达不到生产的标准。甚至是我们主观认为简单的单元测试,API 文档,目前也存在大量的幻觉,比如下面的真实案例:
所有编程工具都有一键生成能力。最简单的单测生成都有问题,甚至编译不通过。主要体现问题:1、没有单测真实项目的数据 2、没有测试边界 3、编译甚至不过
直接生成的单测就像下面一样,处处编译不过
主观大家认为单元测试是最容易靠AI自动化生成,其实从大模型底层原理,它是非常难的技术,要分别考虑上下文精准和长文本输入处理能力。有些团队还单独研发AI的单测产品,里面有十几种单测指标。而且工程师应该很理解,单测在我们真实编程所占的工作量才10-20%
在真实项目中,我们靠改进产品,用大模型做定制化仿写,拿到下面想要单测结果
简单的 API 几乎所有 AI 编程工具都可以正确完成,但是上下文稍微一复杂,例如函数入参有嵌套,甚至一些编程工具输出完全错误。下面是我开源一个测评案例,有关于医疗口腔服务的 API文档生成
https://github.com/laziobird/CodeLLMEval/blob/main/common-scenarios/api-chinese.md
通过代码Token,观察生成的API文档,是否符合需求,是否理解准确,主要考察:
重点考察大模型在以下方面的能力:
具体函数方法
@Slf4j
@RestController
@RequestMapping("/api/v1/advice")
public class AdviseController {
@Autowired
AdviseService adviseService;
@PostMapping("/submitExpertAdvise")
public Result<Integer> submitExpertAdvise(@RequestBody ExpertAdviseDto expertAdviseDto){
Integer expertAdviseId = adviseService.addOrUpdateExpertAdvise(expertAdviseDto);
return Result.succ(expertAdviseId);}}
具体的入参
public class ExpertAdviseDto {
private Integer id;
private Integer presOrderId;
private String advise;
private DoctorDto doctorDto;
private Date createdAt;
private Date updatedAt; }
入参有子参数 DoctorDto、DoctorDto 有嵌套的二级子参数 CertInfoDto,完整入参结构
我们看看AI编程工具生成API文档结果,提示词这样构造的
生成submitExpertAdvise 方法的完整 API 文档:带上入参、出参所有参数 的详细中文介绍, 给出完整示例, 格式markdown,给前端调用
参数完全错误,输出结果是0分,比如下面编程工具生成的文档
这个案例几乎所有的AI 编程工具都是错的,只有 Github Copilot 正确完成
在理解大模型的底层原理下,用"万能公式",手动补充上下文,这些编程工具才能勉强生成正确的API文档
总结:一年中给很大企业落地实践中,我深有体会,基础的功能没做好,就算生成再多代码,也是滥竽充数。反差如此之大的根本原因在哪呢,有这么几点:
前段时间公开一家国内大型科技公司落地智能编程实践效果,大家可以来感受下
表现结果:代码质量堪忧,企业提效不明显
在落地AI 编程提效中,很多企业会提到代码采纳率这个指标。企业想以代码采纳率去衡量AI 编程的一个产出。我觉得它本身是一个反人性的东西,很像过去“追逐代码测试覆盖率”的案例,本质上反映是企业落后管理上一种 KPI 形式:
我认为要具备以下核心的几点理论:
1、有效度量指标,指标要清晰,边界可分
2、通俗易懂,非技术人员能理解,决策层能量化成本
3、落地实践要人性化、工程要系统化
我总结一个AI参与人类编程的理想状态
第一,任务AI独立完成,或者人类少量微操,绝大部分 AI 完成,这样才能量化 AI 对这个任务的贡献
第二,把复杂的工程拆分成一个个独立的功能模块,提高 AI自动化的可能。其实和过去我们做一些辅助工具,解决重复低效和流水线的工作道理类似。这是机器学习擅长的工作,拆分出来这些基本任务交给 AI 自动化完成,已经被证明是屡试不爽的思路。
做复杂的软件编程,本质说是一种用机器语言在做艺术创作。不知大家是否这样认为?
我们奢望大模型一句提示词让 AI 写一套 ERP、写一个 Facebook 有点理想化。
人类更应该做艺术创作,工程师的价值才能得到体现。
编程有哪些艺术?有了 AI 能力,工程师专注做架构的设计和核心算法,做复杂的艺术编程。从长远来说,也是对工程师有更高的要求,迫使工程师学习进步,做更高级的编程。
另外一方面,工程师有了一个新的目标:如何把更多的任务赋能让 AI 来自动化完成。同时,软件工程理论化知识比过去重要。拆解项目,分工任务,产研协同有了全新的要求。
这也是体现工程师的一个价值,因为它给企业带来了巨大的绩效和节约成本。而且这就是架构师过去到现在一直在做的事。
我接触到很多技术前沿企业,都从技术团队骨干开始培养一些 AI编程落地的推动人。特别是一些业务稳定企业,内部技术团队反而有了动力,价值被重视。
正如上面提到企业量化AI编程的解决方案,确实最近一年多接触到这方面尝试落地的企业,有比较好的结果反馈,都是往这个趋势去走。包括国内外创新科技公司,做的AI辅助编程的分享,都体现了这样的思想:他们落地的场景大部分聚焦在一个个比较垂直化的编程场景。比如像编程中一些日常的基础功能,也有针对自己特定业务的一些工作场景,把它单独抽离出来,下面总结目前大家取得一些阶段性效果的典型场景
一些AI 编程工具,GitHub Copilot、CodeRabbit、国内百度Comate、通义零码自带能力:
代码质量检测:通过机器学习算法自动识别代码中的错误、漏洞和潜在风险,提供优化建议,甚至提供 Diff格式的代码建议,直接对比应用
提升审查效率:AI Code Reviewer为Pull Request提供智能反馈和改进建议,支持文件过滤功能,避免不必要的审查,设置和集成过程简单
**代码提交版本信息管理:**代码 Commit Message 自动化一键生成,AI 能全面感知代码变动细节,比起工程师写提示词,效率高,排版更规范。尤其在每次 Commit 提交文件多,能极大帮助架构师加快梳理业务代码和分析代码质量的时间
AI Commit Message 自动生成效果
集成版本控制平台:很多技术团队通过调用大模型 API方式 与GitHub、GitLab等版本控制平台无缝集成,支持团队协作、代码共享以及版本管理
智能版本管理功能:比如 Cline 新增了智能版本管理与任务跟踪系统,通过快照、比对和恢复等功能,让开发过程更加灵活和便利
单元测试是一个非常基础的单元,每一家企业在代码质量来说是一个必要的过程。
市面上有一些垂直类的 AI Agent 产品专注于生成单元测试。比如 Gru.ai
https://gru.ai/home/test-gru 写JavaScript、TypeScript 单元测试用例
Readme-ai
https://github.com/eli64s/readme-ai
基于大型语言模型(LLM)的README文件生成器。它能够自动分析代码仓库,提取关键信息,并生成结构化、内容丰富的README文档
Mintlify
https://mintlify.com/
2024年9月6日 Mintlify 完成了 1850 万美元的 A 轮融资,贝恩资本和 Y Combinator 参投
用 AI 完成开发者文档,不限 ChangeLogs、API Reference、SDK Library 等
v0 代表的创新型AI产品,主要功能是通过简单的文本提示来生成用户界面,从而简化UI的生成过程,提高设计和前端开发效率
https://v0.dev/
比如 v0 + reweb.so 工具结合,通过网站截图让它生成完整的前端代码。reweb.so 则可以直接把前端代码粘贴,自动生成控件控制台,不写代码情况下调整页面
截图后v0生成前端代码和预览效果
reweb 生成了编辑控件,不用写代码,直接操作控件调整页面
v0 + reweb 另外市场价值:对于不懂前端编程的技术,可快速入门前端开发,不需要设计,独立完成全栈开发,尤其对小团队有很大的帮助
https://github.com/laziobird/CodeLLMEval
文章来自于“下一代AI实验室”,作者“蒋志伟”。
【免费】cursor-auto-free是一个能够让你无限免费使用cursor的项目。该项目通过cloudflare进行托管实现,请参考教程进行配置。
视频教程:https://www.bilibili.com/video/BV1WTKge6E7u/
项目地址:https://github.com/chengazhen/cursor-auto-free?tab=readme-ov-file
【开源免费】AutoGPT是一个允许用户创建和运行智能体的(AI Agents)项目。用户创建的智能体能够自动执行各种任务,从而让AI有步骤的去解决实际问题。
项目地址:https://github.com/Significant-Gravitas/AutoGPT
【开源免费】MetaGPT是一个“软件开发公司”的智能体项目,只需要输入一句话的老板需求,MetaGPT即可输出用户故事 / 竞品分析 / 需求 / 数据结构 / APIs / 文件等软件开发的相关内容。MetaGPT内置了各种AI角色,包括产品经理 / 架构师 / 项目经理 / 工程师,MetaGPT提供了一个精心调配的软件公司研发全过程的SOP。
项目地址:https://github.com/geekan/MetaGPT/blob/main/docs/README_CN.md
【开源免费】graphrag是微软推出的RAG项目,与传统的通过 RAG 方法使用向量相似性作为搜索技术不同,GraphRAG是使用知识图谱在推理复杂信息时大幅提高问答性能。
项目地址:https://github.com/microsoft/graphrag
【开源免费】Dify是最早一批实现RAG,Agent,模型管理等一站式AI开发的工具平台,并且项目方一直持续维护。其中在任务编排方面相对领先对手,可以帮助研发实现像字节扣子那样的功能。
项目地址:https://github.com/langgenius/dify
【开源免费】RAGFlow是和Dify类似的开源项目,该项目在大文件解析方面做的更出色,拓展编排方面相对弱一些。
项目地址:https://github.com/infiniflow/ragflow/tree/main
【开源免费】phidata是一个可以实现将数据转化成向量存储,并通过AI实现RAG功能的项目
项目地址:https://github.com/phidatahq/phidata
【开源免费】TaskingAI 是一个提供RAG,Agent,大模型管理等AI项目开发的工具平台,比LangChain更强大的中间件AI平台工具。
项目地址:https://github.com/TaskingAI/TaskingAI
【开源免费】MindSearch是一个模仿人类思考方式的AI搜索引擎框架,其性能可与 Perplexity和ChatGPT-Web相媲美。
项目地址:https://github.com/InternLM/MindSearch
在线使用:https://mindsearch.openxlab.org.cn/
【开源免费】Morphic是一个由AI驱动的搜索引擎。该项目开源免费,搜索结果包含文本,图片,视频等各种AI搜索所需要的必备功能。相对于其他开源AI搜索项目,测试搜索结果最好。
项目地址:https://github.com/miurla/morphic/tree/main
在线使用:https://www.morphic.sh/
【开源免费】XTuner 是一个高效、灵活、全能的轻量化大模型微调工具库。它帮助开发者提供一个简单易用的平台,可以对大语言模型(LLM)和多模态图文模型(VLM)进行预训练和轻量级微调。XTuner 支持多种微调算法,如 QLoRA、LoRA 和全量参数微调。
项目地址:https://github.com/InternLM/xtuner
【开源免费】LangGPT 是一个通过结构化和模板化的方法,编写高质量的AI提示词的开源项目。它可以让任何非专业的用户轻松创建高水平的提示词,进而高质量的帮助用户通过AI解决问题。
项目地址:https://github.com/langgptai/LangGPT/blob/main/README_zh.md
在线使用:https://kimi.moonshot.cn/kimiplus/conpg00t7lagbbsfqkq0