最近关于 AI 编码的讨论实在是太火了,无论是在国外的 YouTube、X、Reddit,还是国内的微信视频号上,每天都能看到大量关于 AI 编程工具的体验分享。可说实话,作为一名还在一线写“工程化”代码的工程师,我认为很多分享内容都不是 “真正写代码的人” 写的,而是产品经理、AI 博主或者 AI 爱好者写的。虽然他们的内容非常有参考价值,但其实距离我自己每天真实面对的代码环境还是有点远。我想在这里聊聊作为一个在一线写“工程化”代码的工程师,我是如何在日常工作中使用 AI Coding Agent。
注: 所谓“工程化”,是指类似 Envoy、Envoy Gateway 这类项目,它们是很多企业(如 Google,Microsoft,Apple,Netflix 等)在用的核心基础设施,对代码质量、稳定性、安全性有非常严格的要求。在这类项目中使用 AI,和我们在网上看到的大量 vibe coding 的体验完全不同。
所以今天这篇文章,算是我从一个进行日常高频编码的工程师视角出发,聊聊我是如何使用 AI Coding Agent 的一些真实体验,希望能和大家进行交流和分享。
我的 AI 开发工具使用历程
从 Copilot 开始:提升效率的“加速器”
我最早接触 AI 编码工具是 GitHub Copilot。感谢微软在推出 Copilot 之初慷慨地给了开源贡献者免费使用额度,我使用 Copilot 的主要场景有两个:
- 代码补齐:一些常见的模板结构、循环体、switch-case 等,它能非常快地补出来。这种时候我不用每次都从头写,大大节省时间。
- 英文注释生成:由于工作的开源项目注释都要求英文写作。Copilot 可以帮我自动写英文注释,作为非母语者,这一点特别有用。
不过那个时候 Copilot 对我来说更多是一个“高级代码片段补全工具”,它还没到进化到能帮你写完整模块、提 PR 的地步。不过已经算是个不错的“加速器”了,能帮我节省不少重复劳动时间。
浅尝 Cursor:比 Copilot 更强,但付费没有免费的香
后来我试了 Cursor。其功能上比 Copilot 强一些,支持更深入的上下文理解和代码生成,由于 Cursor 没有免费额度,我付费试用一个月后觉得虽然 Cursor 的体验更好,但还没有好到值我每月多掏十几美元的程度,所以后面就没有续订了。
注:我使用 Cursor 的时间不算长,因此对其的体验可能不够全面,欢迎对 Cursor 熟悉的朋友留言补充。
Claude Code:AI 开始“写代码”了
真正让我感受到 AI 不只是“自动补齐”,而是真的能写代码、做工程的,是 Claude Code。
去年夏天时,一个同事向我推荐了 Claude Code,说已经使用它写了好几个功能模块,效果不错。于是购买了 Claude Code 的订阅,开始尝试。经过使用一段时间后,我发现它的确有不少亮点,在大部分情况下,Claude Code 可以:
- 理解需求并自动生成完整的功能 PR;
- 只需要少量人工干预就能落地;
- 而不是像 Copilot 只是补全几行而已。
当然,它也有缺点:比如代码结构偏啰嗦、容易生成很多 helper 函数,代码还需要整理;而且当时只有 CLI,没有 VS Code IDE 插件,我使用时需要在 CLI 和 VS Code 之间切换,体验上不够顺畅。
Codex:AI 工程师的感觉来了!
在使用 Claude Code 一段时间之后,OpenAI 也推出了自己的 Coding Agent - Codex。 一方面,Codex 当时同时提供了 CLI 和 VS Code 插件,使用起来没有只能去使用 CLI 的限制;另一方面,我本身已经订阅了 ChatGPT,其中就已包含了 Codex 的使用额度,基本覆盖了我日常工作的需要,因此我使用 Codex 并没有额外成本。
在真实工程场景中,我明显感觉到 Codex 在几个方面更稳定:
- 对复杂上下文的理解更一致
- 在跨模块修改时更谨慎
- 生成代码的整体质量更可控
有一次让我印象非常深刻: 我在修复一个比较复杂的 Issue,在和 Codex 讨论方案时,它主动指出了我原本方案中一个潜在的安全漏洞,并给出了一个更完善的替代设计,并根据方案生成了完整的代码实现。 虽然我也对它生成的代码做了多轮 review,并和 Codex 反复讨论并完成了最终的实现,但最初的方案和代码框架确实是 Codex 提供的。那一次的经历让我感觉 Codex 已经接近了一个“经验丰富的工程师”水平。
第三方独立评测也从侧面印证了这一点。其中一个我认为比较有参考价值的是 ARC Prize(Abstraction and Reasoning Corpus)排行榜: https://arcprize.org/leaderboard。ARC Prize 是基于 François Chollet(Keras 作者、前 Google Brain 研究员)提出的 Abstraction and Reasoning Corpus (ARC) 任务构建的一个独立评测 benchmark 和排行榜。它不是由某个大模型厂商发布,而是由开源评测社区推动,采用统一数据集和规则评测模型的抽象推理和通用推理能力,因此在研究社区具有较高的参考价值。
在 ARC Prize 的排行榜中,可以看到 OpenAI 系列模型在整体表现上 “遥遥领先“ Claude 系列模型。虽然 Coding Agent 的能力不完全等同于模型能力,但模型能力是 Coding Agent 能力的基石,因此我认为这在一定程度上解释了我在使用 Codex 和 Claude Code 时的直观感受。
自动补:Antigravity 大材小用
虽然 Codex 已经非常强大了,但它不支持自动补齐功能,在需要手搓代码的场景下,自动补齐的能力还是很香的。而 Copilot 也取消了免费额度,单独花10多刀订阅 Copilot 来补齐代码又觉得不划算。 为了弥补 Codex 的这个问题,我找了个组合方案:
- 用 Google 的 Antigravity 补齐代码(它也有免费额度,我本来就订了 Google One);
- 用 Codex 来生成完整功能模块。
因为我是 Google 生态的重度用户,已经订阅了 Google One,其中已经包含 Antigravity 的使用额度,因此 Antigravity 对我来说是免费的。说实话 Antigravity 的自动补齐 能力比 Copilot 要差那么一些,但也基本够用。
目前我就是这么用的:补齐靠 Antigravity,复杂功能和 PR 交给 Codex,用下来非常顺畅,由于我自身已有 ChatGPT 和 Google One 订阅,而且还都不额外花钱,性价比拉满。
一些 AI Coding 的实践体会
是否还需要代码 Review?
在网上的新闻中,Claude Code, Cursor 等 Coding Agent 厂商经常宣传自己「在后台同时跑十几个 Agent,全自动写出一个系统」的炫酷操作,其实对真实工程场景来说还不太现实。一是这种操作将消耗大量 Token,成本过于昂贵,对于普通用户来说不现实;二是在 Coding Agent 的工作流中,人机协作其实非常重要。Cursor 曾号称使用 AI 写出了一个浏览器,结果被网友扒出其 GitHub Repo 连编译都无法通过,也说明了这些很大程度上是宣传噱头。
AWS 副总裁及杰出工程师 ,负责 Amazon Bedrock(AWS 的 serverless AI inference 平台)的 Joe Magerramov 在 《The New Calculus of AI-based Coding》中分享到,通过采用 AI 辅助编程,他所在的团队的代码产出速度达到了原来的 10 倍。
在文中,他指出通过工程实践得到的经验表明:即使在高度依赖 AI agent 编码的团队中,人类工程师的角色并没有消失,反而变得更加关键。
Joe Magerramov 团队的大部分代码已经由 AI 生成,但每一次代码提交都必须由人类工程师拆解任务、引导实现,并进行严格的代码审查和签名背书。他称这种 AI 和人类工程师合作开发的模式为 agentic coding,以区分所谓的 vibe coding —— 后者强调“感觉对就提交”,而前者强调人对代码质量的最终责任。
Joe Magerramov 在文中分享到,AI 可以将代码产出速度提升一个数量级,但如果缺乏人工 review、测试和质量控制,这种速度只会更快地放大缺陷,而不是提高工程效率。真正可持续的 AI 编码模式,并不是让 AI 自由生成代码,而是让人类工程师始终站在质量闸门的位置上。
Claude Code 自身的代码提交也验证了这一点,在 Claude Code 的 GitHub 代码库中,虽然 Claude Code 贡献了最多的 commit,但百分之九十九的 PR 都是人类工程师提交的。从下面的 GitHub 截图中可以看到,在 Claude Code 的 GitHub 仓库的历史记录中,只有三个 PR 是由 Claude Code 直接提交的。这些只是对 Repo 自身的一些非常简单的配置修改,并不涉及复杂的业务逻辑。
这些案例也进一步印证了我在日常工作中使用 Coding Agent 的真实体会。在我的工作流程中,Coding Agent 可以完成约 80% 的编码任务。但在编码之前,我会先分析仓库中的 Issue,与 AI Agent 讨论解决方案,明确技术路线后,再将主要的编码任务交由 AI Agent 来执行。
完成初稿后,我会对 AI 生成的代码进行细致的 Review:包括人工审查、交叉验证(使用另一个 AI Agent 进行二次审查),以及增加测试覆盖,确保行为一致性。我必须完全理解每一行代码并信任这个改动,才会提交 PR 到 GitHub。
在 PR 提交后,还需通过其他 Maintainer 的 Review 和 GitHub CI Pipeline 的自动验证,才能最终合并到主代码库中。同时,我也会使用 AI Agent 来帮助 review 其他 contributor 提交的 PR。
在真实的工程场景中,提交和上线代码都代表着责任。AI 可以协助写代码,但你必须看得懂、审得过、测得全。一旦出了问题,责任不在 AI,而在你。
此外,「vibe coding」这个说法可能会产生误导。现在,越来越多的人开始提倡「Agent 工程」这一更贴切、也更具系统性的表达方式。
AI 编码效果最好的场景 & 风险提醒
在实际使用 Coding Agent 的过程中,我发现它在以下几类场景中的表现尤为出色:
- 功能点非常小,输入与输出定义清晰。
- 与现有代码功能高度相似,可以遵循既定的模式和风格。
- 通用性极强的功能,如正则表达式解析、YAML 的 marshal/unmarshal 等。
在这些场景下,AI 拥有明确的上下文和丰富的参考范例,因此生成的代码往往质量很高,几乎无需修改,即可直接使用。
另外我觉得非常有价值的一点是,AI 可以帮助我们快速 进入新的领域,例如新的业务场景,或者采用自己之前不熟悉的编程语言。通过采用 AI agent 协助理解代码库的架构和实现细节,可以帮助我们快速上手。
但风险也同样存在。
在以下这类复杂或非典型的场景中,Coding Agent 的表现则大打折扣:
- 业务逻辑复杂,例如涉及多线程、异步处理、大量隐式边界条件等。
- 逻辑与现有代码库差异极大,缺乏可复用模式。
- 非通用功能,缺少足够的公开参考或训练样本。
在这些情况下,AI 生成的代码往往问题多多,甚至还不如你自己动手写更稳妥。
不可忽视的:AI 的“合理胡说”
众所周知,AI 有时会「一本正经地胡说八道」。它生成的 bug 往往隐藏得很深,仅靠直觉很难发现,必须通过系统性测试和交叉 Review来识别。
这在我使用多个 Agent 协同工作时表现得尤其明显:
当一个 Coding Agent 生成了初版代码,再由 Review Agent 进行检查时,如果代码较为复杂,经常会发生“反复拉扯”的现象 —— Review Agent 提出修改意见,Coding Agent 修改后,Review Agent 又对修改提出新的甚至相反的反馈。 如果让这两个 Agent 不断对接输出与输入,可能会陷入一个永无止境的纠缠循环。
这时,必须由人类介入,进行判断、裁决和最终定稿。
关于 “Vibe Coding”
网上很火的 “vibe coding” 概念,说得好像你边和 AI 聊天,边就把活干了,一边喝咖啡一边编码,轻松搞定。听起来很梦幻,实际上我觉得:
- 在玩具项目或者原型设计阶段,这种用法是 OK 的;
- 但在工程化落地的项目里,尤其是涉及线上系统、企业服务、高负载业务,那就得慎重。
你不能把责任甩给 AI。你得明白它写了什么,你得负责。
Agentic Coding 的效率瓶颈
在我目前的工作流程中,人类工程师(我自己)已经成为 AI 的效率瓶颈。如何提高人类工程师的效率,从而提高该协作的整体效率,是我目前主要思考的问题之一。
-
测试反馈循环: coding agent 生成代码后,自动运行测试用例,并将测试结果反馈给 coding agent,直到测试通过。我的实践证明测试反馈循环是一个非常有用 的工具,coding agent 在得到测试错误后,通常能够很好地修复生成代码的问题。
单元测试是比较轻量的,而且对环境基本无依赖,可以很好地集成到反馈循环中,由 agent 自动执行。比较麻烦的是集成测试,特别是端到端测试,由于通常对外部系统有依赖,执行代价大,反馈周期长。目前还无法很好地融入到自动反馈循环中。
如果将端到端测试的依赖 Mock 掉,并将测试环境采用沙箱进行隔离,应该可以解决该问题。因为对于后 Agent 来说,测试时间长并不是一个很大的问题,可以让其在后台执行即可。 -
人工 review: 目前人工 review 依然是人和 agent 协作中不可缺少的关键一环,review agent 可以加快人工 review 的流程,我通常会采用一个 review agent 来首先 review coding agent 生成的代码,有时候会让 agent review 多轮。
对每一个项目,我会为其创建一个 review skill,对该项目的中重点关注点进行 review,例如是否采用了该项目的最佳实践,是否有重用已有的代码,是否有潜在的安全隐患等等。
🧵以上就是我,一个还在一线写代码的开发者,关于 AI 编码工具的真实体验。
有坑有惊喜,有被惊艳也有踩雷。欢迎大家留言探讨,看看你在用什么,怎么用的,我们一起摸索最靠谱的 AI 工程化路径。
引用资料
- ARC-AGI-2 Leaderboard
- Cursor CEO Built a Browser using AI, but Does It Really Work?
- The New Calculus of AI-Based Coding