乐于分享
好东西不私藏

从AI编程到Agentic Engineer:我的实战思考与转型之路(二)

从AI编程到Agentic Engineer:我的实战思考与转型之路(二)

本文接续上一篇文章从AI编程到Agentic Engineer:我的半年实战思考与转型之路,内容主要源于我近期在使用AI编程及实际生产研发过程中的所思所感。我每隔一段时间都会产生不少新感悟,由此沉淀出一些阶段性使用心得与实操技巧。一方面便于自我复盘;另一方面也作为交流素材分享出来,和大家一起探讨交流。

我的一些感悟

token 消耗量

先表明个人观点:token 消耗量 ≠ 工作输出量
token消耗越多,并不代表实际工作效率越高。这和早年用代码行数评估程序员贡献的逻辑如出一辙,只看表面数据,不看实际价值。
对于程序员而言,要避免走入两个极端:
一个极端是把token消耗量当作个人产出证明,刻意为了刷token而过度滥用。
硅谷如今兴起了一股名为 tokenmaxxing 的风潮:工程师刻意增加token消耗,以此标榜自己提升了AI生产力,或是证明自身具备AI Native能力。Meta内部曾推出员工token消耗排名,反而催生了员工刻意刷量、数据造假的现象。
因此,也不建议企业内部设置各类token消耗排名,这类数据极易人为操纵、掺水作假。同时,过度依赖AI还会将大量未经严格审核的冗余垃圾代码带入生产系统,降低系统可维护性,最终得不偿失。
目前不少企业员工使用AI产生的token成本,甚至已经超过了程序员的薪资成本。从企业成本角度来看,这种模式难以长期维系。后续企业大概率会通过限制token消耗、裁员控本,或是两种方式并行的方式优化整体成本结构。
另一个极端是片面否定AI、一味抵触和排斥。当下AI或许还无法完全替代多数场景下人的核心价值,但模型迭代速度极快,每隔一段时间,都会被它的技术进步所惊艳。我们更应保持开放心态,认清AI的优势与短板,探索高效的人机协作新范式,才能打开全新的编程工作思路。
对普通程序员而言,在不走向以上两种极端的前提下不妨以探索的心态多尝试AI编程实践,沉淀适配自身的实用方法论与使用技巧,不必刻意抗拒AI,它在实际开发中确实具备极高的实用性。

使用 AI Coding 过多,会逐渐丧失手写代码自信

现在我日常开发几乎 100% 依赖 AI Coding,哪怕是最简单的变量重命名、代码整理这类基础操作,也会交给 AI 处理。
很多时候想手动修改代码,却总会纠结:交给 AI 是不是能做得更好?最后还是习惯性换成 AI 来处理。
我暂时说不清这是好事还是坏事。虽然没有影响工作产出的质量和效率,但手写代码能力的退化、对自身手工编码能力的不自信,似乎是一个不可逆的趋势。这就像老一辈程序员不再需要手写机器码、汇编语言一样,传统手写编码能力,仿佛慢慢成了时代的印记。心里难免有些不舍,但技术和时代的向前发展,又让这种变化成为必然。
或许 LLM 就是新时代的编译器,大幅拉高了编程的抽象层级,相当于在人类与计算机之间,搭建了一个更高效的自然语言翻译桥梁。编程语言本身的发展历程,就是不断走向更高抽象的过程:从机器码到汇编语言,再到 C 语言这类面向过程编程、C++/Java 这类面向对象编程;而如今借助 AI,我们可以直接用自然语言完成编程,这是又一次技术革新,让人类与机器的沟通变得愈发便捷。

AI Coding 当前瓶颈不在模型,而在上下文

此前有一次,AI帮我排查了一个极其隐蔽的Bug:人工配置参数中多复制了一个肉眼不可见的控制字符,人工排查许久毫无头绪,将日志交给AI后,很快便精准定位到问题,也切实感受到了AI在细节排查上的突出优势。这类棘手问题,人工往往耗费大量时间精力,AI却能快速精准定位。
从中不难发现,并非模型本身不够智能,而是难以便捷、快速地获取必要的上下文信息。在我看来,AI Coding下一阶段的核心价值,在于更强的上下文管理能力:打通各类工具与业务上下游链路,让AI能够快速获取行业专属上下文、适配企业内部工作流,这一方向有着极大的发展空间。

AI Coding 当前主要加速编码环节,而非研发全流程

编码环节的效率基本已经被 AI 充分优化,但软件研发的整体瓶颈,更多集中在需求对接、方案设计、测试验证等前置后置环节。
编码只是软件研发的其中一个子环节,只优化编码环节,很难实现整体流程大幅提效。研发工作中,我们大部分时间都消耗在前期需求方案制定、后期测试验证以及长期运维迭代上。只有实现全流程协同提效,才能真正放大 AI 的价值。而这一切的基础,都依赖于打通系统上下游、完善上下文链路,后续行业也大概率会围绕这个方向持续创新。

我的一些技巧

AI 解决的问题需控制在合理规模

面对大型项目重构,AI 无法一次性完成整体重构工作。最高效的人机协作方式是:先拆解大型任务,梳理清楚系统整体架构与核心骨架,再拆分出 AI 容易理解的小块任务,逐个击破。
这样做有两大优势:
一来适配 AI:如果任务规模过大,AI 模型的实际效果会大打折扣。受限于上下文长度、模型自身能力等因素,当前 AI 很难一次性承接大规模重构需求。
二来方便人工:降低代码评审的心智负担。即便 AI 生成代码质量再好,上线生产环境前也必须经过人工评审。将大任务拆分成小模块逐一评审,既能减轻评审人的工作量,也能更早发现问题、及时纠正设计方向。

Plan Mode

不同类型的开发问题,适合搭配不同的 AI 协作模式:
  • 小型问题:如简易代码重构、变量重命名等基础操作,直接用 Agent 模式,简洁高效。
  • 中型问题:适合使用 Plan 模式,让 AI 动工前先对齐需求与实现方案,整体效率更高。
  • 大型问题:如整项目重构,建议人工先把任务拆解为 AI 可理解、可落地的细分模块,再用 Agent 或 Plan 模式逐个解决。
我日常开发中,大约 80% 的场景会用 Plan Mode,剩余 20% 使用 Agent Mode。

Plan Mode 核心优势

提前对齐需求和实现方案,避免 AI 开发中途偏离预期,浪费 token 和开发时间。

将 Plan 文件归档到 Git 是极佳习惯

文中所说的Plan文件,指各类编码助手执行开发前生成的方案Markdown文档,类似Cursor的plan.md文件(一般位于 ~/.cursor/plans/ 目录下)。归档好处如下:
便于人工代码评审
如今 AI 生成的代码变更量大,大幅增加了评审难度。我做代码评审时,都会先通读 plan.md,理清本次代码变更的整体思路脉络,再看具体代码。
便于后续追溯复盘
现有代码的设计逻辑,往往源于过往的某次方案决策。归档后的文档,能为后续的迭代设计提供参考依据。
我也观察到部分团队已经形成规范:让 AI 生成方案后,先将 plan.md 提交到 Git 进行方案评审,评审通过后再单独提交 AI 生成的业务代码。先文档对齐意图、再落地代码实现,足以看出 AI Coding 已经深度融入研发流程。

Plan 文件归档方式

借助现有工具

目前热门的 Openspec 就是一套成熟的 Plan Mode 方案,支持将 Plan 文件归档到 Git,方便人和 AI 后续查阅。但不少人反馈,Openspec 工作流会消耗较多 token。

自定义指令

如果不想使用复杂的 Openspec 工作流,追求轻量化归档,可以参考我的方式:自定义 Cursor 或 Codebuddy 归档指令,开发任务完成后,自动将 Plan 文档归档到项目指定目录。(文末会分享我常用的自制指令)

Bring Your Own Agent:借助 AI 参与代码评审

AI 生成代码的体量激增后,人工评审已经逐渐跟不上节奏,人反而成了研发流程、代码评审环节的瓶颈,用 AI 辅助做代码评审,已然成为刚需且高效的方式。
可以将团队或个人的代码规范(包含安全规范、可观测性、测试覆盖率等标准)沉淀为通用的 skill,供 AI 直接调用。
对评审人和代码提交人来说,AI 辅助评审都极具价值。
对评审人而言
可直接让 AI 拉取提交记录、对比代码变更,并按照既定代码规范完成初审。实际使用中,AI 往往能给出很有价值的优化建议。当然,人工评审不能完全依赖 AI。我通常会在 AI 评审的同时,同步人工逐行核对,避免遗漏关键细节。如果提交方同步上传了 plan.md,优先通读方案文档,对齐代码变更的核心目的,再评审代码,效率会大幅提升。
对代码提交人而言
正式提交代码前,可先让 AI 审核自身的代码变更,给出优化建议并自行修复完善。若开发过程使用了 Plan 模式或 Openspec,可同步提交 plan.md 等技术文档,进一步提升代码评审效率。

Skill 是高效工具,建议积极运用

我近期养成了一个习惯:主动收集当下最新、实用的各类 agent skills 并落地使用,比如前文提到的代码评审技能、让 AI 自动解析代码生成 Drawio 架构图等。国内腾讯 Skillhub、海外 Clawhub 都是不错的技能获取平台。

打通研发全流程上下文

当下限制 AI 能力上限的,往往不是模型本身,而是能否获取完整的业务与研发上下文。
尽量打通日常研发用到的各类外部系统,包括 Git、日志平台、配置管理系统等。例如:
  • 对接远程 Git 仓库,自动拉取合并请求并完成 AI 初审;
  • 对接配置管理系统,实现服务器配置的自动读取与修改;
  • 对接日志系统,智能检索日志、快速定位线上问题。

优先使用 Skill,而非 MCP

工作中我更倾向用 Skill 而非 MCP,目的是节省有限的上下文窗口空间。研发涉及大量系统集成对接,若接入过多 MCP 服务,会挤占有效上下文容量,影响 AI 推理效果。
对于已有的 MCP 服务端,可借助 mcp2cli、mcporter 等工具转为 CLI 应用,再封装成简易 Skill 即可正常使用。

给AI单独配置参考工作区

日常开发中,经常需要为AI提供各类参考文件,但又不想污染本地Git工作区。我会在项目根目录专门新建一个名为 ai_references 的文件夹,并加入 .gitignore 忽略列表,可随意存放日志文件、请求JSON、参数说明文档等参考资料,专门用来给AI提供上下文参考信息。
若进行现有项目重构,还可以给目标代码库建立软链接放入该文件夹,无需手动拷贝项目文件,使用十分便捷。
类似Cursor的多工作区功能,也支持在一个工作空间聚合多个项目文件夹,同样可以解决这类需求。

Amphetamine:Mac 常驻亮屏神器

Mac 防息屏强烈推荐 Amphetamine。临时离开工位、运行 AI 任务时,不用担心电脑自动锁屏中断进程,全程保持亮屏运行,稳定性很强,夜间也能让电脑持续跑任务。
当然,你也可以搭建云服务器,将 AI 编程助手部署在云端,同样能彻底解决本地电脑息屏、关机中断任务的问题。

个人常用自定义指令

以下是个人比较常用的 commands 供参考,具体 commands 内容因为敏感原因忽略了,大家可以根据下面的内容让 AI 自动生成对应的 commands.
  • git_commit_and_push:自动汇总代码变更内容,生成规范的Git提交信息,无需手动编写提交备注。
  • archive_plans:自动归档当前Cursor项目下所有Plan文件至Git指定目录(如docs/changes/archive/),会为每个plan.md文件添加日期前缀加以区分,并推送归档完成提醒。

总结

以上是我近期在 AI Coding 实践中的个人感悟与复盘思考。每个人使用习惯各有不同,也欢迎大家多交流、多指正、互相学习。
AI Coding 是全新的研发范式,我们恰逢技术迭代、时代交替的关键节点。目前相关使用经验、最佳实践还在持续迭代优化中。大家在日常工作里不妨多实践、多思考、多复盘沉淀,你的使用经验,很有可能会成为未来软件行业的通用共识,值得共同期待。