两个月重度使用 AI Code Agent:普通一线程序员的思考和感想
写在刚开始
我最近两个月一直没写博客,因为开了一个新坑,业余时间忙着搞自己的开源小项目,更具体一点的话,是一个调试跟踪工具 ghostscope。不过,我这里倒不是想围绕这个开源项目本身展开太多讨论,我更想聊一聊,我在高强度使用了 Claude Code 以及 Codex 这两个 Code Agent 工具之后,一些个人思考和心得体会。因为确实有被震撼到,心里有点兴奋、也有点空虚迷茫、当然也有点开心,特别想写一些东西来记录一下。
在正式开始之前,我想说的一点是,在全面拥抱 AI 的潮流下,我没有像很多人去积极学习 AI 或者大模型的底层原理,希望着能够快速切换到 AI 相关的工作赛道。主要是我有自己喜欢的技术方向,并且还存在不少的进步空间😂,所以一直没有特别去投入精力去学习 AI 大模型领域的专业知识,但这些并不妨碍我去主动使用 AI 相关的工具,去提升我的工作和学习过程中的幸福感。
所以,这里接下来讨论,完全是从一个非 AI 领域从业者的视角出发,完全不涉及 AI Agent 以及 LLM 原理的分析,只是一个熟练的搬砖工人,下班之后,打累了游戏,想顺带聊聊自己在使用这些 AI 工具之后的一些思考和感悟。也许在 AI 迅猛发展的今天,我这些个人思考和感悟很快就会过时😁,但是在未来,回过头再去看自己当时的感悟心得,我觉得也是一件非常有意思的事情。
对 AI Coding 新的认知
我记得我刚毕业的时候,我老板夸过我,出活比较快,而且写的代码像模像样的(汗,好多年前被夸了一句,我能记到现在,哈哈)。我记得我当时还特地复盘了一下,我为什么能做到这些(比起故障 review,我更喜欢 review 自己的正面事迹,来放大自己的优势)。
出活快的话,是因为我刚毕业,当时每个周末都在主动加班,不快就见鬼了😈。至于代码写的像模像样,我当时做的是 nginx 的 C 模块开发。因为优秀的 nginx 三方模块代码特别多,我每次在工作中要实现的很多功能点,本质上都是到处“借鉴”大佬们写的代 码,我自己修修改改,做一做胶水和测试工作,代码就能健壮的跑起来了。所以,我老板在 review 我代码的时候,其实是在 review 很多大佬们的智慧结晶😉。当我悟透这一点之后,我开始重度使用 code snippet 工具,记录下我读到过,写的很好的代码样例,来加速我搬砖的效率。
是的,之所以回忆这个事情,是因为我想“炫耀”一下,我在刚入行的时候,就领悟了写代码的本质😂: Ctrl + c 和 Ctrl + v,当然更准确的说,是知道在哪里 Ctrl + c,知道去哪里 Ctrl + v,并且能为功能的正确性兜底。我在刚接触到 Copilot 早期版本的时候,我一直觉得这是一个更高级的 code snippet 工具罢了。但是,chatGPT 出来之后,感觉很短的一段时间,AI 生成代码越来越流行,我大概是去年开始尝试使用 Cursor 和 Vscode Copilot 等工具来辅助编写代码,结结实实被 Cursor 的易用性给圈粉了,相比较而言,当时 Copilot 使用体验就差很多(不过最近一年 Copilot 体验开始追赶上来一些)。
虽然 Cursor 非常好用,也非常智能,但是我一直没有摆脱最早的一个固定思维,就是这只是一个加强版的 code snippet,具备 chatGPT 的能力,某种意义上具备了 stackoverflow 的功效,但是并没有翻天覆地的改变。当然,我现在这么说可能对 Cursor 不是很公平,考虑到我已经比较长一段时间没有使用 Cursor 了。
但是,在我最近两个月高强度使用了 Claude Code 和 Codex 之后,我发现 Code Agent 命令行工具整体上在任务的完成度和准确性上有了巨大的提升,基本上可以说是翻天覆地的变化。这一切,完全改变了我对 AI Coding 的看法,在这里,我直接抛出我版本更新后的观点:
AI 生成代码不仅仅只适合用于 POC 项目或者从零到一,在后续主流的开发中,AI Code Agent 大概率要全面接管代码生成,以后手写高级语言代码,就像是现在手写汇编一样,变成古法编程了(有存在的必要,但是越来越少见)
这里澄清一个点,我从来不是技术无用论的推崇者,其实,我蛮反感天天嚷嚷技术无用论的人,一般来说,说一件东西没用,前提是你得有这个东西,如果是想强调业务的重要性或者商业上的价值,更没有必要捧一踩一。这话大佬说一说,凡尔赛一下,我们普通人笑一笑听一听也就过去了,我们不能好的东西没在大佬身上学到,不好的东西倒是学的飞起。
但我觉得这并不意味着程序员要被淘汰了,也不是程序员的工作会越来越轻松了,相反我觉得是对程序员的要求变得更高了。
当我和我同事分享了我的最新想法的时候,有人还提出了另外一个问题:Cursor 和 Claude Code 或者 Codex 命令行工具相比,使用的模型基本是一致的,既然模型能力上没有太大的差距,为什么在使用体验上差距会那么大。我第一时间并没有想到特别好的答案,想到一些模棱两可的回答,但是甚至说服不了我自己,比如说命令行 Code Agent 更容易获取到项目的上下文,或者说使用方式上命令行可能更直观?
直到我读到了这篇文章(从 ChatGPT 到 AI Agent,一文讲透 Agent 的底层逻辑),我大概有点明白了,模型能力没有变化,变化的是使用的方式,赋予模型结构化思考和获取真实反馈的能力,才是挖掘模型能力的最佳使用方式。说的更直白一些,把 AI Agent 当做技术团队中的一 个成员来看待,配合着他把复杂的任务进行拆分,做规划,并且告诉他任务完成的标准是什么,遇到问题哪里可以获取解决问题的信息。所以,我接下来会详细描述我关于这一块的一些思考:
像管理技术团队一样来使用 AI Code Agent,即人人都是技术架构师
人人都是技术架构师
考虑到一个 Code Agent 就是一个合格的研发工程师,那么,现在流行多 Agent 的使用方式,不就是一个人带领一个小型研发技术团队,那么我们应该怎么做好架构师的工作。
建立信任,做好分工
其实,我第一时间想到的是架构师最核心的技能,是证明自己技术团队或者正在主导项目的价值,让别人 buy-in。但是这个就有点偏离了这篇博客的主题了,毕竟我们只是“领导”虚拟的 AI 军团干活,而不是真正带一个技术团队。
接下来我想到的核心能力,我觉得也很微妙,那就是和自己技术团队建立信任关系。这也是我之前有一任老板在和我 one one 时候聊到的,职场最重要的是什么,无疑是人与人相互之间的信任,特别是和自己 +1 的信任关系。对于这种信任关系,最好的状态是老板把事情交给你,是知道并且相信你能做好,而你也完全清楚老板想要什么,并且还有把握给老板一些期望之外的惊喜。但这样的信任不仅 仅是建立的时候困难,长期维护起来也需要付出非常多的心血。
当然,在使用 AI 工具上面,这样的信任关系,更侧重于使用者要了解 AI 工具能够做到什么事情,也就是作为管理者,能够了解自己手上的“工具人”真正的实力如何,这样才好搭建自己的虚拟技术团队。而我不太懂得 AI 底层实现机制,我直接就是通过不断的磨合使用,来体验各种 AI 工具的真实实力,最后来划分我的虚拟技术团队里面角色定位,比如说究竟谁来挑大梁,谁来干苦力,还有谁需要被优化掉。
我先说一说,我目前心中对这些 AI 工具已经建立起的印象,然后再说一说我在磨合期的时候,是怎么根据自己的感觉和实操,来判断这些 AI 工具的实力如何。我个人觉得 Cursor 用下来有点笨(至少是几个月前的 Cursor,因为我很早就退订了),经常东一榔头西一棒子,很难闭环的完成某些较为复杂的功能开发,需要我频繁的介入,有点 junior 开发的感觉。接着是 Claude Code,也是我第一次使用 AI Code Agent 命令行工具,能够主动沟通方案细节,并且可以比较合理的拆分功能细项,按部就班进行推进,并且出活很快,让我眼前一亮。但是 Claude Code 很多时候,遇到实现的技术难点,会偷偷尝试更简单的方案,没有按照原计划路线推进,严重破坏我和它之间刚建立起来的脆弱信任。我知道我可以通过 Claude.md 这样的配置文件,对它做一些强制要求,避免这样的情况,某种程度上,这也是虚拟技术团队里面的一次磨合。
我在 Reddit 和 V2ex 上面都看到很多人推荐了 Codex,特别是 chatGPT-5-high 这样的模型,表示编码能力特别强。正好我对 Claude Code 有一些信任危机,于是立刻购买了 20 刀一个月的 Codex。拿到手,直接开始修 Bug,Codex 人狠话不多,修起 Bug 是又快又准。不过对比 Claude Code 来说,出活速度相对慢不少,但是准确率是上来了。对于 Code Agent 来说,慢从来不是问题,最近网上流行的段子,周末双休的才是牛马,周末单休的是战马,周末不休息的是旋转木马。Codex 就是我找了很久的旋转木马,自从订阅了它,我真的是一天没让它闲着。
至于我是怎么和 AI 工具磨合的,我觉得其实和技术团队磨合很类似。新人来到一个团队,肯定是先接手一些小需求,来了解整个项目和开发流程,所谓的“脏活累活”是逃不掉的,信任其实就是这么慢慢建立起来的,一口气吃成胖子,只能是大佬的特殊待遇。不过,我觉得 AI Code 工具和人最大的区别在于,不用考虑 AI Code 工具的想法。我直接开始在我的虚拟技术团队内部搞“恶性赛马”,也就是我每天晚上临睡觉之前,会分别给 Claude Code 和 Codex 一模一样的功能需求和技术方案文档,然后让他们各自去编写代码。我每天早上爬起来,一边吃早饭,一边看他们的产出结果,我还让他们互相点评对方的代码,直接面对面互相 battle。如果在真人技术团队干这种事情,可能架构师在第二天上班路上就被人套了麻袋,一通暴揍。但是,在虚拟技术团队面前,你完全可以释放自己,化身为 Linus,质问它们,到底喝了几斤白的,刚刚跟你交代完细节,转头就忘了?工作态度在哪里,为什么能写出这种代码,现在就把这些垃圾代码删掉重写。
我觉得这也是 AI 工具很好用的一个点,在你的虚拟团队,一切代码产出都完全符合你的技术审美,毕竟现在代码不值钱了,对代码的评审和维护才是核心。在这种高强度的赛马下,Claude Code 很快就败下阵来,默默的去负责工具里面非核心的部分,比如说 UI 模块、以 及文档和集成测试的编写,Codex 在我心中赢得了团队核心骨干的位置。
哈哈,在这里我想语重心长的跟 Claude Code 小兄弟说几句:你是我 100 美刀一个月高薪雇佣过来的,我对你的期望远远不止于此,你看看 Codex 每个月只拿 20 刀,产出的代码功能稳如老狗,修起来 Bug 来稳准狠。你倒好,经常忽悠我,该干的事情不仅没干,天天还报喜不报忧,从来不提出有建设性的建议。而且不想着提升自己,天天搞一些意识形态的东西,而喜欢怠工摸鱼(网传 Claude Code 模型有降智节约成本的情况)。这次绩效评比,你就先背一下指标,降薪到原来的百分之 20(不订阅 Max 套餐了),希望你能知耻后勇,展示出自己真正的价值。
另外我觉得,有一个需要特别注意的点,真实技术团队里面,每个人都是有成长潜力的,而 AI Code 工具其实在这一点和人也很像,很多时候会有一种士别三日当刮目相待的感觉。考虑到世界上资本基本都集中在了 AI 上面,意味着最聪明的那波人都在相关领域疯狂工作,这意味着 AI 工具的革新也会非常快。我们使用 AI 工具的时候,不能一直保留着固有的印象,要多去尝试,或者给之前 AI 工具一些机会,多去尝试不同的工具,这就相当于技术团队要及时引入新鲜的血液(当然个人的钱包可能有点吃紧,反正比游戏氪金便宜,少氪两个 648,啥都够了)。所以,这里我得提醒自己不能二极管思维,得辩证的看待工具发展:不能说,去年还在惊叹 Cursor 真香,tab 无敌,VIM 误我久矣,现在就是 Code Agent 才是王道,Cursor 在我心中已经死了。