从“代码补全”到“全托管 Agent”:我的 2025 AI Coding 进化论

2025 年,我的工作习惯彻底被 Claude Code / Cursor / Codex 改变了;这一年给我带来的改变,不亚于当年我用易语言写出第一个应用程序的时候。这句话不仅适用于我的产品经理身份,同样适用于我的工程师身份。这不仅是软件开发效率的提升,更是软件开发方式的重构。

AI Coding?到底是什么?

talking past each other

在社交媒体上讨论 AI 编程的时候,很多时候大家其实没有对齐在讨论的 AI 编程的范畴和适用领域,使得大部分时候,大家在鸡同鸭讲,公说公有理,婆说婆有理。所以,在我们真正讨论 AI 编程之前,我们需要先澄清一下,我们到底在讨论什么「AI Coding」?

different levels

目前来说, AI Coding 有几种不同的产品形态和用户交互形态,他们包括:

  1. L1:古典的直接问 ChatGPT:有问题直接问 ChatGPT、Gemini、Claude 等 AI 助手,借助 AI 助手给出的信息,自行 Debug 和修改代码。
  2. L2:使用 IDE / 插件中提供的补全功能:直接写函数名,然后 AI 会帮你补全函数的细节,你再自己微调或者不微调。这种能力其实过去也有,只是没有这么强悍。大家使用 IDE 来开发,很大程度上就是 IDE 提供了极好的补全能力。
  3. L3:使用本地的 AI Coding 工具的 Agent 模式,全托管或半托管式的编程:你只描述需要做什么,具体做动作由 AI 来完成;这里还有几个细分的方式,包括完全托管(比如 claude code 开 –dangerously-skip-permissions ; codex 开 –dangerously-bypass-approvals-and-sandbox)和半托管(用户手动确认行为,只是由 AI 来完成具体修改的动作)。L3 操作的是你的本地环境,有破坏的风险,但也有无限的可能。
  4. L4:使用网页端的 AI Coding 工具,直接出 Demo:你不需要在本地有任何开发环境的配置,直接在网页端使用一个应用,来完成 Coding,你只需要描述你想要的东西,剩下的完全交给 AI(虽然这往往意味着难以与复杂的本地业务流集成)。

大家在社交媒体上和别人讨论 AI Coding 的时候,需要注意,很有可能你在聊的是 L3 ,但别人在聊的是 L4 ;你们看似聊的都是一个东西,但实际上是完全不同的东西。我们这篇文章讨论的,则主要是 L3 —— 即使用本地的 AI Coding 工具的 Agent 模式,全托管或半托管式的编程。

到底谁在用 AI Coding 工具的 Agent 模式?为什么是 Agent 模式?

说完了大家眼中不同的 AI Coding 工具,我也必须再强调一下,即使大家聊的都是【AI Coding 工具的 Agent 模式】,因为身份的不同,每个人的用法也会有很大差异,大家对他的预期也完全不同。因此,不同的人对其的评价也千差地别:其中大体也可以拆分为三个大类:

different groups of people
  1. 传统的软件工程师:使用 AI Coding 工具完成自己工作过程中的一些辅助性工作,对于自身的能力和工作的要求有较高的要求。
  2. 有一定研发概念的产品工程师(称之为产品工程师是因为他们有一些基础的软件工程概念):使用 AI Coding 工具拓展自己的能力圈,去做一些之前必须依赖软件工程师才能做完的事情(比如做个小 Demo,或是上线一个软件产品)。
  3. 被媒体上的文章忽悠进来的小白(他们基本上没有太多的软件工程经验和基础):跟着网络上的信息了解到了 Coding Agent,然后尝试在不同的软件上使用(不局限于 Claude Code,Cursor 的 Agent 模式也算),经常会卡在一些软件工程的基础问题上。(我特别推荐这类人去看《计算机教育中缺失的一课》,看完以后,会让你很快理解你所遇到的问题,并能够快速处理 AI Agent 所给你的信息,进行下一步操作)。

这三类人因为工作的要求、对于软件工程的理解的不同,会导致他们使用 AI Coding 工具的 Agent 产出完全不同的体验,从而有不同的评价。

而之所以是 Agent 模式,是因为相比于补全模式需要你现有一段代码;Chat 模式往往不指引你完成所有的工作或需要你现有互联网软件的基础才能完成工作;Agent 模式自带的环境操作能力,使得你即使完全不懂 AI 和 Coding,也可以做一个像模像样的小应用出来。这打破了过去需要软件工程师才能做出一个 Demo 的限制,同时也极大的鼓励了新手小白,试着去做一些有意思的事情。

Agent 模式也是 AI Coding 最出圈的一个 Feature;

我和 AI Coding 工具的 Agent 模式的缘分

在这条上,我提到,我其实经历过三种不同的状态,这源自于我过去一年的体验。

在过去这一年里,我从一个「以补全为主,抗拒 AI Coding Agent」的工程师,转变为了一个「好好利用 AI Coding Agent」的工程师。这其中,离不开我身边的朋友们和小伙伴们,和他们的协作,让我真的意识到了 AI Coding Agent 的价值。

这里要感谢刘超、杨鼎睿、岳增五,和你们的协作让我极大的改变了自己对于 AI Coding 的认知和看法。

作为一个写了十数年代码的工程师,我拥有一些自己平时写代码的脚手架,可以帮助我快速完成一个项目,而同时,作为工程师的自我要求,我希望我自己写的代码能够拥有不错的代码质量和性能,从而可以提供一个稳定的软件质量。所以在一开始,我对于 AI Coding Agent 的能力是持怀疑态度的,虽然依然会使用,但整体信任度没有那么高,往往只让它处理细枝末节,基本上是让 AI 去写一个完整的功能的细节,或者是让 AI Coding Agent 去进行 Code Review,而不是让他去动业务代码;直到 Claude Sonnet 3.7 的时候,我才发现 Claude Code 已经能完成不少的工作,甚至很多小的 Feature,不再需要我先行规划,再让他自己去做细节,我可以非常坦然的交给他一些功能,让他自己去完成我只做关键验收。

而从这个时刻开始,我对于 AI Coding Agent 的使用开始与日俱增,我开始使用 AI Coding 去完成越来越多的功能和效果,然后,我开始对 AI Coding 放权;开启了 --dangerously-skip-permissions ,让 Claude Code 自己去写代码,去实现效果;

也和所有的使用 AI Coding Agent 的人一样,我也经历过 AI Coding 工具将代码整的一团糟,然后放弃的时刻。不得不说,Claude 有些时候的过度设计,真的让人觉得无语。或许这是最佳实践,但最佳实践不仅仅要配合着实践用,也要配合着项目的时间节点和周期,以更好的完成项目的目标 —— 你要记得,Coding 只是完成目标的手段,而不是目的。

不过,随着对于 AI Coding Agent 的逐步使用的深入,我对于 AI Coding Agent 的使用越来越了解也越来越多的在不同的场景下去使用 AI Coding Agent ,去完成自己的工作。

如今的我对于 AI Coding Agent 模式的观点

首先,我旗帜鲜明的说所有的软件工程师都应该试着使用 AI Coding Agent,放弃、逃避、蒙头装鸵鸟都是没有意义的,熟练掌握 AI Coding Agent 已不再是加分项,而是生存技能。 AI Coding Agent 正在切实的改变着我们的行业。诚然,AI Coding Agent 不会影响我们这些「老」工程师的工作,但这个问题如同被熊追着我们一样 —— 淘汰你的从来不是熊,而是比你跑得更快的人。 AI 不会淘汰工程师,但会淘汰那些拒绝进化的“手动操作员”。优秀的工程师不会消失,我们的职责正从“手写逻辑”转变为“选择方案、设计架构、验收质量”。

其次,我依然相信大家的软件工程经验是有价值的,就像上面我提到,最佳实践本身没有问题,但每个人所面对的项目的节奏是完全不同的。软件工程师的价值从手写代码,变为了选择 AI 提供的解决方案,Review AI 提供的解决方案,可以帮助我们更好的完成自己的工作。优秀的软件工程师只是工作职责变了,但他们不会消失,甚至会获得更多的加成

我现在怎么用这些 Coding Agent?

我目前自己同时在使用的包括 Claude Code、OpenAI Codex、和 Gemini Cli;其中前两者是我自己花钱买的,后者是 GDG 赠送的。

我强烈建议大家自己花钱购买。如果公司买了最好,如果公司没买,自己买也是划算的。 Claude Code 5X 已经满足日常使用了,如果你用量大,再升级 Claude Code 20X 即可;$100 其实就是大家聚餐吃一顿价格,并不贵,但给你带来的提升是远超这个价格的。

我对于 Coding Agent 的使用会包含两块:

  1. 本地使用
  2. 云端使用

以及,一些质量守卫。

本地使用

本地使用时,我会使用 Claude Code 的 Plan Mode 来设计一些需求,通过和 Coding Agent 的几轮交互,约束需求的范围,并让 Claude Code 去完成相关的功能;

同时,我会使用 Codex 来为我的项目补全测试 —— 过去我自己很多时候懒得写测试,现在有了 AI 来帮助我们完成测试的基础覆盖,大大提升了我的效率。或许 AI 无法保证测试的如一个专业的测试同学,但却可以让我先完成从 0 到 1 的建设,让我自己可以变的更好。

Gemini Cli 则会在一些时候,我会让其作为项目的补充,主要也是 GDG 赠送的 Plan 额度有限,所以用的不多。

之所以会同时使用三个不同的 Coding Agent,主要还是考虑到模型本身的能力是有差异的;不同的模型可以给我提供不同的视角,从而可以确保对于一个问题有更全面的思考,规避可能的思维漏洞。

云端使用

除了本地的使用,我还会在云端使用 AI Coding Agent,但并不是使用网页端的 Coding 工具,而是在 CI 工具链中集成 AI Coding Agent,使用 AI Coding Agent 对于我的每一次提交、每一次 PR 进行 Code Review ,通过这样的方式,帮助我更好的发现代码中的问题,既可以确保自己对于问题的思考没有漏洞,同时可以进一步的发现自己的经验不足,补全对于问题的思考维度。

特别是,集成多个 Coding Agent 可以明显看到不同 Coding Agent 对于问题的思考角度和深度不同,对于自我提升非常有帮助。

质量守卫

由于AI Coding Agent 本身存在的问题,往往会在大规模编辑代码的时候,存在一些编辑错误、无用代码、不符合规范的问题,因此我在深度使用 AI Coding Agent 的项目中,都会引入大量的质量守卫,来确保不符合规范的代码无法提交到云上。我们应当保持对 AI 的信任,但必须坚守 「信任,但要核实 (Trust, but Verify)」 的原则,确保 AI 提交的代码每一行都可信、可控。

flowchart

具体包括:

  1. 引入静态检查的准入机制,扼杀低级错误:借助 git hook,在提交前进行 code format
  2. 引入质量红线,控制确保逻辑不出错,没有改错之前的代码:借助 git hook 和单元测试围栏,要求提交到代码库中的代码必须测试覆盖率满足要求(强 AI Coding Agent 介入的项目会要求测试覆盖率到 100%;并包含集成测试和端到端测试)。
  3. 引入 AI Agent 的自愈能力,闭环问题的修复:借助 git hook 和一些 linter 工具,发现代码中的问题,并让 AI Coding Agent 自己去修复他。
  4. 引入代码复杂度分析工具,让 AI 写出人和 AI 都易于维护的代码:常见的编程语言基本上都提供了圈复杂度检查工具,你可以在你的项目中引入圈复杂度检查工具,让 AI 提交之前确保所有代码的复杂度不会太高,从而既可以借助 AI 的能力快速迭代,同时又保留自己随时介入的可能性。

当你有充足的围栏检查的时候,你就可以放心让你的 AI 去完成工作,并要求他自行提交 commit,这样可以让其自动执行 git hook ,并修复 git hook 中所配置的工具检查出来的问题,从而确保提交到代码库中的代码不会有一些基础问题。

如果你还没有开始使用 AI Coding Agent ,你要怎么开始(工程师篇)

如果你是一个工程师,想要试试 AI Coding Agent ,但不知道怎么做?

  • 我能理解你对于代码质量的要求和你的工作对于你的要求;
  • 我也知道你担心引入 AI 导致你的项目复杂度快速提升,无法维护,最后导致项目彻底崩盘,你反而被干掉;

所以,我推荐你这么干:

  1. 在现有的 CI 工具链中加入 AI Coding Agent 进行 Review,从而让 AI 先从 Review 代码开始,给你提供更多的建议,帮助你先变成一个更好的工程师;
  2. 在习惯让 AI Coding Agent 参与到你的工作流里后,可以先让 AI 帮助你补全测试,建立起单元测试围栏,从而让你放心的使用 AI Coding Agent 参与到你的项目里;
  3. 使用 AI Coding Agent 完成你的工作(记得加入各种围栏),让你自己获得进一步的解放。

当你完成了上述三步后,你已经熟悉了 AI Coding Agent,就可以除了做一些你熟悉的工作,还可以让他带着你,去做一些你所不熟悉的事情,比如你是前端,让他带着你搞后端;或者你是后端,让他带着你搞 iOS。

总结

到了 2026 年,你依然可以 Happy Coding,不过你要学会意识到,我们除了做体力劳动的 Coding,我们更应该用好 AI Coding 工具,将体力劳动托管给 AI Coding Agent,让自己的工作越来越具有「创造性」,做一个「创造者」。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注