ShowMeBug 李亚飞:IDE 与 AI 自动编程技术将增强超级程序员
口述/李亚飞
访谈、撰文/宇婷
在 AI 自动编程软件 Devin 第一时间官宣出来后,我邀请了三位程序员代表直播讨论:ShowMeBug 创始人 &CEO / 全栈工程师/连续创业者李亚飞;联易融副总裁沈旸;技术领导力黄哲铿 Mr.K 先生。
特别的是,在这次连麦讨论中,我惊奇发现,亚飞和团队其实早在去年已经做出相关探索,并研发出了 1024Code 这款产品。
如果按照时间线,1024Code 几乎可以称为中国的 Devin。在和亚飞的团队深度交流时,他们认为 1024Code 的产品功能和内测效果可以称得上国内“第一个 AI 自动编程软件”。当然 1024Code 的技术逻辑和产品思路与 Devin 又有所不同,后文中会做详细论述。
沈旸在讨论中,也表达了他的观点:
1、Devin 的发布是比较典型的 AI 在编程领域的突破。AI Agent 跟过去的 AI 相比,与外界有一定互动能力。比如 ChatGPT 一开始就有聊天的功能;但类比为人,其实没有眼睛、手和脚,因此“不能干别的”。Devin 现在可以跟很多工具做链接,它会自动找哪些工具比较好用,主动阅读博客,访问网站,通过不停迭代你的意图,把编程实现。
2、整个 AI 最先落地的就是 AI 编程领域。它不需要和物理世界关联,编程领域中有 Github 以及后面很多运行程序,从而支持形成了闭环。从 request 提需求开始,到需求解决,代码合并,到最后运行,形成一个闭环。
其实,沈旸曾经找到李亚飞,提出过一个诉求——实现 Web IDE(我们会在下文分析“IDE”),很多程序员以前是在本地写程序、做文档,这里包含了编程的几个关键步骤:
第一步,也许是几个人之间聊天,在思想上产生碰撞。对产品产生诉求。
第二步,产品经理画出原型图,大家确认,团队开发。整个过程都是线下的,虽然有数字化,但可能是断点的,原始资料也可能会丢失。
基于在线编程,比如在线设计软件、Figma 等工具结合起来以后,就从需求到运行,实现了闭环。这样,AI 就能培养出一个很好的工具体系。
无论是 Web1.0 还是 3.0,最重要的就是积累足够的数据,以培训 AI。
Web/云端 IDE 其实就是 AI 编程,或者说带领 AI 工程师打开第一步。
黄哲铿(Mr. K)的观点是:
Kevin 比较震撼地在于实现了工程闭环。就像是做软件开发,首先要定义问题,确认需求,反复交互。Devin 先定义问题,确认好之后,会尝试联网读取文档,学习编程语言,用工程的方法调试和开发。整个过程复刻日常工作的流程,实现了 AIGC。
如果有足够的法律法规监管,确实能够实现编程领域的 AI 智能体。
Devin 的优点是没有情绪,不会犯低级错误。缺点是展现出偏工程化的思维,对产品的哲学思考欠缺,达不到产品思维。接下来,也许会产生 AI 产品经理这样能够解决产品哲学思考的智能体。
下文,我把李亚飞的思路,做一个完整的梳理,希望给到更多读者启发。也希望你有任何不同意见,可以与我探讨。
1、从“工程效能”到对 Devin 的辩证思考
研发效能的提升以及相关技术的定制,是我们在 2019 年之后的工作重点。我的主要工作就是提升“工程效能”这件事。工程效能的最高境界是全自动编程,评估好人才的能力,我们从这个维度去做了一些工作。
AI 跟程序员领域怎么结合出一个新的应用?或者说如何探索 AI 对于开发架构的改变,我把 AI 编程领域的创新理解为 L5 级别的全自动编程探索。
海外软件 Devin,是一个十多个人的团队,他们发布了号称全球首款 AI 软件工程师。
我认为这就是趋向 L5 级别的创新应用。去年,ShowMeBug 探索出关于编程能力的全新的底层逻辑。我们制作出了 1024Code 这款产品。专门成立了一个小分队研究自动写代码的技术和体系。
1024Code 是采用 1024PaaS(全栈自研的云端编程环境)为核心,通用大模型为基座,花费了十多个月构建一套自主决策链 AI Agent(目前称为 AI 导师),提供了编程环境感知,代码编辑,Shell、Console 的自主阅读,运行与自主 Debug。简单来说,就是将 AI Agent 安装了手与脚,让其自主完成需求分析到编码调试的过程。
【国内也有 Devin 了!一个来自国内创业者 L5 自主编程能力的探索-哔哩哔哩】 https://b23.tv/neb8Aoq
在这个工作体系之外,我看到的方向是自研一套云上最好用的 IDE。因为你掌握了核心技术,后面才能跑得更快、更远。实际上,融资几千万之后,我们一直在规划这个核心引擎。
参考自动驾驶的理解,这里分析一下,L1 到 L5 之间在自动编程上的差异是什么:
L1 是取代一定搜索能力的 AI 搜索。智能化搜索体现为信息整合检索的能力,尚不能支持对人类的启发。
L2 是超越 20%-30%人类的思考能力,对人类有一定的启发作用。能够用在助理和自动化领域。
L3 能够替代 50%的人类工作,自动化完成任务。
L4 能够完成 90%的人类工作。
L5 则 100%超越人类。
从 L3 开始,AI 能够替代 50%人类的工作,用自动化的方式完成任务。L3 以上级别的自动化程度就可以解放出人类,人类就可以干别的工作了。
所以也会有“程序员不存在”这个话题的讨论。
2、AI 自动编程要看谁跑得快
Devin 在替代工程师而不是产品经理的事情上,能够做得很好。软件领域的特殊性会使之在 AI 里面能够发挥巨大的作用。软件工程是客观的,这意味着每一步的探索都有正确答案,像是做数学题。软件中的每一个步骤,可以一步步验证是对还是错。
Devin 的应用过程中,跑程序出现错误之后,通过找到错误的编码,就能够解决掉问题。AI 的能力和 ChatGPT 在本质上是概率的动作。在 AI 编程领域的成功,每一步都相当于做一次 Commit,把非常难的步骤分成多步骤,每一步骤都可以验证对不对,相比其他工程更为清晰明了。
Devin 在获取工具的能力上,包括连接海外的搜索应用,其效果非常好。对工具的检索有一个非常好的体系和列表。借助工具做想做的事,每一步都能够检验。对于产品经理来说,产品从实践到落地,以及涉及的运营环节,判断产品好坏,需要进行大量灰度测试。软件工程师是目前能够看到的 AI 进展最快的一个应用。
Devin 最大的缺点在于他还是一个预览版本。一个公司的 CTO 朋友曾经在第一时间觉得 Devin 是 1024Code 的翻版。Devin 的交互思路体系和我们很接近。今天我们对 AI 编码的畅想肯定能够实现,关键是什么时候实现。
现在要看谁跑得快?快步向前,抓住机遇。
3、给自动化编程软件装上“手”与“脚”
如果硬说 Devin 的第二个缺点,现在 AI 大模型底座能力还不够强,Devin SWE-bench 测试(解决指定 2000 个问题) 13% 的通过指标,还是偏弱。
1024Code 也能做到这个程度,但我们认为这不是一个高标准,所以去年 1024Code 做出来后,没好意思去做专门的发布。
此外,我还发现一个核心的问题,不管你(Devin 这些应用层 Agent)怎么努力,其实只是在大模型之上加入了一套特别复杂的决策链(类似现在最流行的 ReAct 决策链)。但最终可能会发现这些都是无用功,等到后面大模型升级,从普通人变成聪明人,这些将不再需求。
所以更关键的是给 AI 软件装上手和脚。什么是手和脚?AI 软件需要闭环,且最容易闭环,而闭环的核心就是程序员经常工作用的那套编程环境 IDE,或者在 AI 编程领域,叫做 CDE(云端编程环境)的东西。 CDE 的发展趋势,最后就是云端编程+AI 的融合体,它里面会很简单,没有那么多功能概念,只有测试、发布两三个步骤。
1024Code 现在是公测邀请阶段,虽然是邀请制(有邀请码才能注册),但我们也没限制的那么死。只要是有一定经验的软件工程师去申请获取邀请码我们就会给,然后就可以去体验功能。
更多是让大家感受 AI 自主编程的能力,1024Code 的目标是设计成 L5 级别自主编程能力的 AI 编程软件,在实现里,也是有一套决策链,会去分析项目/程序代码的语义语法结构,压缩信息(一些大模型的上下文是有限的),决策修改或者添加哪些文件,然后再进入到具体的更新代码动作里。
传统的大模型助手模型下,生成代码,需要你自己找地方写入,比较费劲。1024Code 基于 CDE 可以做到自主去定位修改文件,并在 CDE 编辑器内完成修改。
这里面的决策链还是比较复杂的,但实际上我们已经给大模型加上了手和脚,比起本地 IDE 更有竞争力。
4、“块编辑”与“CDE”技术的发展前景
我的思考逻辑是——一定会诞生一种人类与 AI 更友好的交互方式。比如 1024Code,我们更认为人类要审批,人类可以直接改代码,AI 也可以改它自己的代码。
程序员当下培养成本是非常高的,复杂而且稀缺。当 AI 进入这个行业,程序员会变成一个普通职业,让这个职业在未来成为一个供给平衡的市场。这是 1024Code 和 ShowMeBug 能够帮助行业创造的一种新的交互形式。程序员的精力也会被释放出来。
让 4 天的工作进入到 3 天的工作制甚至继续压缩。我的逻辑是程序员行业要像美国社会一样,人均生产力提高几倍。推动整个社会经济的发展。
对于 AI 自动编程,你的手和脚装齐,等待大模型能力不断变强,对着 IT 体系不断增强,最终形成一个自主化高效的编程体系。
如果想让 IDE 落地,需要再补充一条——兼容现有环境。海外现在流行一个新的概念——CDE。也就是云端开发环境这一概念。并且能够实现兼容到你的私有化 IT 环境中部署。Gartner 预测,到 2026 年,60%的云工作开发将使用 CDE 构建和部署。
先讲一下什么是云端 IDE。IDE 是指本地集成开发环境,也就是包括开发人员所需要的、与编写代码相关联的一系列环境及配置。而云端 IDE 即是简单放在浏览器上,就可以直接运行的 IDE 环境。但云端 IDE 技术实现上有很多差异,针对场景不同,功能会有取舍考量。
随着时间的推移,大家也逐步意识到,只是把 IDE 搬到云端并不会被用户简单接受,而是需要全新思考与设计。22 年底,随着 Gitpod 拿到 2500 万美元的 A 轮融资,整个市场进入了全新的元年,重新把云端 IDE 定义为 CDE(Cloud Development Environment),我认为这个词总结得特别好,所以以下我们将原本用「云端 IDE」但更合适用 「CDE」 的地方,统称为 CDE。
说到 CDE,我们必须从海外的市场开始讲起。
第一个值得讲的就是 Coder(https://coder.com/)。
Coder 是一个先从开源出发(code-server),允许开发者用 VSCode 连接到任意的远程服务器,进而演化出来完整的 CDE(coder)环境的发展模式。也是开发者生态经典的发育模式。其核心定位是为开发者提供云端的资源配置管理、复用,开发者仍然可以复用本地开发环境。目标画像是在实际开发工作场景的开发者。
PV 4.9 万,UV:2.4 万。
值得讲一下,他们三个联创都特别年轻,现在才 20 出头,但已经创业 5 年了。在 22 年宣布拿到了 3000 万美元。
第二个是现在 CDE 市场的新秀产品 Gitpod。
能感受到他们更加懂开发者,Gitpod 的定位也是为开发者提供生产力工具,替代本地开发。目前增长比较明显,很多开源项目的托管平台选择都有他们的影子。目标画像:在实际开发工作场景的开发者。
PV:67.3 万,UV:15 万。
目前融资情况:Github 的创始人领投了最新一轮 2500 万美元。
AI 编程自动化这项技术,你要把自主技术核心掌握在自己的手里。1024Code 提倡一个概念——块编辑。也就是一开始,就要决定是谁在写,但其实其他体系是做不到的,包括 Devin。我的思考是要更闭环。
在我们做 ShowMebug 的时候,也积累了这项技术。并且花了两年多的时间。这是一个非常核心能够形成壁垒的技术。
CDE 的应用场景上,本质是一家技术驱动的公司。技术应用在什么样的地方,是需要你自己进行探索和判定的。我们当时从能力测评这个角度出发,面试验证程序员能力这个场景开始。这是因为我们判断,这个地方离商业化最近。
第二个场景是编程教育。海外公司 Replit,目前有 2000 万活跃用户,活跃率超过 50%,价值 12 亿美元。
第三个领域就是 AI 自动编程。中国有上千万正规程序员。加上非正规军达到 2000 万人群体。节省一半人力,就能达到一千万市场。其实,微软 40 年来,就是抓住了程序员的群体,微软之前也推过.net 但都被历史淘汰了。
现在有了 AI 加持之后,会让创业公司拥有创新力。但是挑战就在于早期对于产品的要求需要突破一个临界值。这方面,商业化挑战比较大。
AI 编程的挑战还在于要结合更多领域,仅仅有 Devin 不够。本质需求上的驱动不是来自于程序本身,而是来自于产品经理,来自于客户,来自于项目,需要形成一个更完整的闭环。
未来把项目中间的对话、文档,甚至是大家的聊天记录,所有事物形成非结构化的数据,保留在对话框之中。如何调用一个开源的工具,节省下来 99%的代码,这里的能力只有靠云上的版本能够体现出来。如果是私有部署,所有的部署,要能够让 AI 编程工具能够理解公司的体系。
5、软件工程师生存环境的变化,开发左移
AI 理解数字世界或者软件的过程要靠 RPA 或者 API。但在 API 方面,国内软件发展的进程并不太友好。国内产品在标准接口和标准文档上有缺陷。国内很难顺利地把两个系统对接起来。按理说简单粗糙的策划工作应该是 AI 完成,现在 AI 在做一些比较高级的工作,人类再完成前后较为低级的体力活。
1024Code 中,有比较多的手自一体的设计理念,逻辑是把人放在一个比较高的位置上,AI 把活先干了,人点审批。
程序员不管做多久,基本上都是跟业务打交道比较多。未来程序员演变的方向就是把业务语言和程序更好地结合起来。
程序员的工作目前分为三类:一类是比较低水平的重复劳动,大部分是刚入行的程序员、初级程序员或者学生群体。第二类是被动接受需求,实现功能交付。一些工业化软件开发和企业之中的程序员属于这一类。第三类是技术和商业融合,创造出有价值产品的程序员。十几个人的团队,能够做出一个颠覆性的产品。
AI 出来之后,可能会淘汰第一类低水平重复劳动的程序员;部分取代第二波被动接受需求的程序员,实现一些简单或者复杂功能的程序员;并成为第三类程序员的助手。
真正懂技术又懂商业和业务,这样的程序员在 AI 的帮助下,能够很快实现他们商业上的构想,低成本去验证他们商业上的构想,这是对于程序员群体的影响。
要拥抱 AI,对于 AI 来说,打不过就加入。
AI 编程工具已经实现了帮助程序员的“开发左移”,意思是在整个开发链里面,程序员会越来越向价值链的上游移动,去理解业务,通过 AI 实现自己的构想,这也是所谓的技术商业化。和创意结合,和产业结合,这是程序员应该具备的能力。
英伟达创始人黄仁勋曾经说过,以后程序员就不存在了,人们只需要会中英文。我把这种言论输入到 ChatGPT 里;AI 说,这是黄仁勋在宣传他们的产品,并不是给程序员写的,真正懂得,就知道编程不是这样的。这是一个玩笑,也是事实。
超级程序员的出现,以及企业数字化转型的场景,可能是 AI 编程自动化带来的结果。后者生态如果爆发,对程序员的需求反而会越来越大。
国内的情况,程序员和 AI 绝对会长期共存,很长时间内会是一种协作的关系。
参考文章
李亚飞《我这 5 年技术创业对云端 IDE 的理解和预测》
https://mp.weixin.qq.com/s/2Xz9p5WiPa3zigZdZih-tw
张海龙《Cloud IDE 是不是一个伪命题》
https://www.infoq.cn/article/dtkgop7ilvontssfpwrc
王亚伟《被逼出来的自主可控,从华为自研看国产 IDE 的未来和商业模式》
版权声明: 本文为 InfoQ 作者【B Impact】的原创文章。
原文链接:【http://xie.infoq.cn/article/e164b1aece3024ec21f9fc359】。文章转载请联系作者。
评论