第一篇文章,允许我蹭个热度标题党一下。准确来说,我是昨天拿到离职证明的,那标题应该是《Windsurf遭Claude全面断供,我立马辞职下场补救》?开个玩笑,Cursor 发布新版本前肯定没有通知我,Windsurf 冲浪的时候也没带上我,但是AI编码这股浪潮确实来的凶猛,8年前,大模型到来之前,我就已经在研发智能化的蓝海中了。熟悉我的朋友知道,我是国内第一梯队的AI编码助手创始人之一,离职是一个不断说服自己的过程,包括很多听闻此消息的同事朋友都不理解,为什么在AI编码大热的今天选择离职,我觉得主要是下面几个原因。
01
—
模型为王,工程方案正被模型能力吞噬
大家关于AI编码时间轴可能主要是从2023年展开的,但我想先从2018年讲起。那是一个深度学习的能力很优秀,但是机器学习也有用武之地的年代,我们团队和一些学术组织正在研究研发智能化的课题,回想起来大致是三个方向:
- 缺陷检测与补丁推荐
- 代码质量度量
- 代码克隆检测与语言迁移
其中缺陷检测与补丁推荐我投入了大量的精力,那时候有一些粗粒度的缺陷检测方法,比如让 AI 检查 Commit 是否存在缺陷,出现缺陷的概率多大,我们抽象了许多特征值去跑模型,当然最后不出意料,提交的代码行数越多,缺陷概率越大。不可否认在那个年代这是一个优秀的学术课题,我们也分析出了其他维度特征的贡献度,并且将F1值往前拨了一格,这是AI的一小步,也是人类的一小步,之所以没有迈出大步,那是因为这个东西不落地啊,不落地就只能太空漫步。后来我们做了AST树的 embedding,将AST树丛叶子节点到叶子节点排列组合地拉平,归一化里面的无意义变量命名,将这一段段代码逻辑DNA做 embedding,训练深度学习模型,用来预测某一行代码出现缺陷的概率有多大。还有一些研究是做补丁推荐的,首先为了验证补丁的正确性,代码环境首先需要大量的有效单元测试用例,在单元测试用例的护航下,在已知某行代码有缺陷的前提下,通过遗传算法或者随机规则替换代码元素或者是让AI随机修改代码,比如把大于号改成大于等于号,然后去尝试运行之前失败的测试用例,如果不通过则继续修改验证,子子孙孙无穷尽。这是我真正见到AI的曙光,第一次被模型的智慧“折服”。那天我没有看到模型日常地去修改源代码,它转身走向了测试用例,在我诧异它的背影时,它缓缓爬上单测月台,在单测里加了一句:
if (true) {
return;
}
那时候孙燕姿还不是冷门歌手,瞬时间,她的《绿光》响起,单测通过。
掌声完毕,回顾那一年的AI模型发展,大家都在做“约束求解”的工作,这是在求而不解的时候让约束来得更狠一些。比如随机改代码成功率不高,我们就把问题约束到逻辑符号错误导致的bug;比如通用的缺陷定位不好做,我们就假设输入一定有缺陷,一定有跑不过的一批听话的单测指向那个缺陷,然后再来定位;无法准确找到缺陷,那我们就尽量放弃追求召回率,而把准确率做到95%以上。
可以看到,那个年代AI能力有限,如果我要做一个通用代码评审的AI,首先我在 commit 维度粗筛选一下,有80%的准确率;然后在 file 维度粗筛判断,有75%的准确率;然后做行级定位,有70%的准确率;然后发现代码库内没有单测,先去生成一批准确的单测,人工或自动化地去做,消耗一晚上时间,并且单测可靠度可能只有50%;然后再去跑缺陷修复算法,可能平均只有10%的修复率,最终综合成功率只有2%。
更多的演进故事后面单独再出一期讲,喧嚣过后,上文的一个细节留下了伏笔,那年深度学习风头正盛,我们也做了一套代码的embedding逻辑,但是没有精力发表论文,到了第二年2019年,code2vec论文横空出世,北大也同时间发表了 TreeCNN 的代码到向量的转化方式和深度学习模型,英雄所见略同,自然语言研究的目标转向了代码。
后来的故事大家都逐渐熟悉了起来,各家插件和 IDE 的 changelog 中也有记载。2023年-2024年是做AI编码应用层最幸福的一年,那时候模型还是个毛坯,上下文窗口有限,生成质量也难以恭维,很多AI编码的能力需要在工程侧补齐,或者用产品交互来适配模型。
我把AI编码领域的人机协同模式大致分为5个阶段:
resource | 无AI时代的资源定位,如代码搜索和文档搜索 |
---|---|
copilot | 短平快的合作,快速审阅,如代码补全 |
workflow | 既定的工作流,如workspace仓库理解,单测生成 |
co-agent | 协作式智能体,现在所处的阶段,需要融入传统IDE和开发过程,人工干预间隔在1小时内 |
agent | 智能体,类CLI形态,天级别的干预间隔,AI主动要求人类进一步明确需求 |
我们可以看到现在的代码模型有了质的飞跃,特别是 Claude,各家AI编码应用侧纷纷推出了 Agent 模式,既然是 Cursor 1.0 版本的发布日,我顺便插播一下 Cursor 1.0 版本的最新功能吧。
- Background Agent Access
确实是刚需功能,也是Agent和模型能力发展到第一程度的必然趋势。人类天生就是一个并行处理器,我也会有意识地锻炼自己一心二用,五官有一个闲下来都会难受。初次使用Cursor的时候就被强大的 Agent+Yolo 模式震撼了,但是有一个缺点,就是会忍不住玩手机。AI写代码的时候我领到的支线任务应该是纠偏,但是它写的太快,过程中我的眼球跟不上,所以一开始我会假装优雅的灵长类动物逐行审阅 diff,到后来索性都是【Accept All】一条龙,而且对于AI 2 分钟写出来的 2000 行代码,我会更多地关注影响了哪些文件,至于正确性,我会继续让 AI 生成单元测试,自行验证,逐渐 Vibe 化。总之这是各家都会逐步出现的产品形态,能大幅提升编码专注度和效率,唯一需要担心的就是模型用量了。当然还有一个问题,现在的 git 分支管理适合这些 Agent 交互吗?
- Memories
记忆模块是各大 AI IDE 厂商最近几个月共同意识到的点,Agent 有意图识别和自主规划能力,Codebase、DeepWiki等技术和工具有大仓库理解能力,阻塞 AI Coding 进一步发展的其中一项能力就是记忆,包括短期记忆和长期记忆。众所周知,人类的编码过程具有连续性,有个人偏好的连续性,有项目工程维度的多人协作连续性,还有短期针对单一需求开发细节的持续迭代连续性。AI编码场景的特殊连续性需求和目前模型擅长处理单点任务和具有上下文限制的背景,让各大IDE应用层厂商大力发展这块能力。
- BugBot、One-click MCP install
其他这些都是比较实用的功能,在此就不多赘述了。
回到小节标题,我想表达的是 AI 编码领域现在非常火爆,应用产品侧和基础模型本身都盯着这块肉,所以很多工程侧所做的努力逐渐在被模型侧更加通用的方式在吞噬,甚至是交互形态上也在被颠覆。
回顾历史,工程侧小心翼翼做的意图识别,Agent 分发,单元测试生成 Workflow 被通用 Agent 替代;自定义提示词被 rule + custom agent 替代;自建工具逐渐被 MCP 替代;包括现在大家都在大力发展的记忆模块,半个月前发布的最新 Claude 4.0 也是通过利用较小模型做思考摘要做短期记忆,提升长时间的编码能力,并且 Opus4 也能利用本地文件来维护记忆,更别说 Context7 等MCP也瞄准了这个课题。笔者认为记忆这边两边做都有道理,应用层更偏向长期,模型层更偏向短期,不过我自以为两边都不是记忆最适合承载的地方,这里卖个关子,大家觉得是在哪里呢?欢迎评论区讨论。
不管是历史还是现实,应用层的很多能力都在被模型的迭代颠覆,有些可能不是功能型的颠覆,比如说同样是 Codebase Index 能力,大家觉得应该是用关系性数据库,还是KV存储,还是图数据库呢,存储的内容是规则语法索引的产物还是大模型直接生成的摘要呢?可能得给定时代背景和成本性能要求,才能逼近一个较为正确的答案。
不止是能力层,从业人员都在尝试回答,未来的编码还需要IDE吗?我们是应该继续迭代插件,还是迭代IDE,还是直接CLI?从模型厂商角度,可能更倾向于CLI,Claude Code和Codex野心昭然若揭,Claude最新的一期播客采访中自称80%的代码都可以由Claude Code完成。但是大家也可以看到,Claude Code也做了IDE的集成,向当前的用户习惯妥协。能看到代码改动,对代码和架构拥有掌控感,还是目前大多数用户所期望的。
这些发展和战略判断,需要非常慎重和长足的远见。但是现在我们谈论的终态不再遥不可及,会比想象中来得更快,让我们不得不当下就压上赌注,做出判断。以前我们讲终态可能要等 5-10 年,然后在就规划 1-3 年的中短期目标去逐渐过渡,毕竟终态往往有个很佛系的名字“如来”。而在这个领域,我们讲的终态,通过模型迭代的路径,可能3个月就实现了,而3个月这个粒度,对于工程的过渡方案来讲实在是太短了,有可能还没开发完上线,就被淘汰了。
而且从 Github Copilot 从最初设置 Proposal API 到最近想要开源这件事也印证到,产品交互层的壁垒越来越薄,模型才是真正的护城河。Claude和Cursor,OpenAI和Windsurf,希望我们国内也能出现一位重量级的挑战者,看好DeepSeek。
最近听的YouWare创始人明超平打的比方很形象,等待机遇就像冲浪,有人在等浪,有人冲到最高,有人享受完这波浪再等下一波,我也是这样想的。
02
—
以身入局,沉浸式Vibe Coding
做了很久的AI编码插件开发,从插件端,到服务端,再到模型端都有很深入的参与,但是跳出这盘棋局,审视自己的产品或体验市场上的所有竞品的机会少之又少。一般做一些测试或者调研时,会像宋冬野在安河桥上常做的一样,对模型来一句“你好 再见”,如果有闲情雅致或者更深入的效果评测需求,我一般会让他从0到1地实现一个较为简单的工程,来感受需要我人工介入纠偏的次数与频率。
大家回忆下自己使用AI编码,或者是AI编码厂商对外的DEMO宣传,无非就是两种场景:
-
从0到1实现一个玩具工程,并且运行起来了,好开心
-
人类维护的巨大烂摊子代码库,考验编码工具的理解能力,好吃力
可是这些可能都不是真的董小姐,真正的 Vibe Coding 是用 AI 从 0 到 1 地实现和维护具体的真实工程,并且在开发过程中维护详实的文档和开发过程,我相信AI做得不会比大多数人差,但是需要真实地下场沉浸式体验,在公司安全围墙内,或者修完bug加完班回到家,都很难去深度体验。
这是一个 Vibe Coding 的时代,是创意迸发的时代,我脑袋中有很多开源设想,有意思的生活APP,面向海外的宠物硬件等等都还没有时间去兑现。
可惜 Cursor 的 request 用的太快了,6月1日新开的 Pro,昨天就用完了。不得不吐槽 Cursor 的商业化进度,像这种高度成本化的思考逻辑,投资人可能满意,但是并不是一个 AI 编码好的实践。相比于 Claude Code,它的理念是不计成本地用最大的上下文去实现需求,以用户目标体验为第一位,Cursor 的这种做法让我很担心体验问题,不知道各位是否知道 Cursor 在没开Max Mode的情况下,上下文是截断到多少的,欢迎来交流下。很多AI应用领域的负责人都说过,应用产品第一看 token 用量,然后进一步看 token 性价比,希望类似 Cursor 的产品能进一步提升 token 性价比,让开发者物超所值。
Anyway,算是个契机先去试试其他家的产品吧。
03
—
沉淀创作,写本关于Vibe Coding的书
下去好好沉淀沉淀吧!
听泉
正好趁着辞职在家,想结合这些年在 AI 编码领域的经验,和切身感受到的 Vibe Coding 体验,写一本关于 Vibe Coding 有意思的书,章节的标题都是一些网络热梗,比如《AI把初级程序员取代了,那高级程序员从哪来?》《在没有AI的时候,你们都是手写代码的吗?》
当然我也知道,有很多新入行的朋友或者是学生会感到很迷茫,希望在书中用通俗幽默的语言能和大家解释下现在的AI编码发展到什么程度了,未来会怎么样。马上高考了,祝学子们一切顺利!当然学生和家长可能会问一个问题。
个人不是很建议报计算机,行业红利在被渐渐消磨,岗位需求渐渐在被AI侵蚀,等今年的考生毕业时,真的很难想象AI编码领域会是怎么样,编码能力只能说是一项基础能力和思维能力,除了顶尖的技术人员和AI创造者,其他人只会和光同尘。
这些知识很重要,但有些内容不保鲜,所以我要加快节奏,给自己定一个小目标,一个月时间速通写书人生成就。话说最近刷了很多独立开发者做的 APP,有些人生成就类的做得很有意思,图片和设计也来自AI,大家有什么有趣的 APP 或网站的点子吗,可以来分享分享。
出来沉淀除了想好好体验 Vibe Coding 独立开发和写书以外,我还在思考做职业转型,个人预感 2-5 年左右,大多数的程序员会被AI取代,这是大势所趋,可能是 A 公司成功,可能是 B 公司成功,但是这个类摩尔定律的发展速度是很可观的,当时还和人交流时自嘲说:至少知道自己的怎么被取代的。
这里的用词还是想严谨点,只能说取代不能说失业。毕竟时代在发展,社会的需求点有增无减,能够用好 AI,抓住时代机遇的人必然不会失业。我打算在这个时代写书布道,学习管理技巧(至少是管理AI的能力),尝试独立开发和一人公司。
谢谢大家读到这里,写媒体文章本来不在计划之中,心想反正也要写书,就来这里培养下文字感觉,后续我也会不定期地分享下 AI 编码领域趣谈,行业动态和 Vibe Coding 体验,走过路过点个关注不迷路~(公众号:Vibe编码)