用 codex 这么久,从刚开始的屎山横飞慢慢调教到现在 99%的代码都由 AI 生成,并且上线质量比我自己写的还高,我以为我自己练成了。
直到我最近接了一个新模块的需求,灾难发生了。
这个模块因为比较老,从代码风格到项目规范都与我一直在维护的模块差异很大,并且由于我从来没碰过这块业务的细节,导致 codex 也没有这个模块的记忆。
为了补业务细节,从阅读需求开始我就让 AI 全程参与,并且让$Grill with Docs 一致拷问我,讨论并设计完后生成了一堆 ticket ,AI 照着 ticket 一个个执行并验收。
到了 review 代码的时候我人傻了,完全就是屎山,流程模糊、结构混乱、坏味道一堆,看完血压都能飙升,根本看不明白。
这两天我一边擦屁股一边在思考,到底问题出在哪,如何去解决。目前总结出来的主要是下面这些,抛砖引玉吧,希望大家踊跃讨论,一起提高驾驭技术。
长上下文导致失忆
我虽然知道长下文会导致失忆,但是这次体感特别明显。我在 AGENTS.MD 里积累了一些项目规范,以前都遵循的挺好,但这次代码中出现大量与 AGENTS.MD 约定不一致的情况,似乎 gpt 失忆了。 我猜测是不是跟$Grill with Docs 这个 skill 有关,因为之前的项目我只用$Grill Me ,不会让他输出成文件。当上下文中被填充了大量的约束,智商可能就会下降。之前在某篇文章中看到过,给 AI 的提示词尽量给正向引导,而不是大量的禁止约束。
自己总结代码风格而不要让 AI 总结
我们都知道,AI 会参考项目中原有代码,如果原代码是好的,就会学好,反之就会学坏。 我之前负责的模块之所以 AI 驱动运行良好,是因为经过这么多年的持续优化,已经形成了我个人的编码偏好,写新的代码时候 TA 照着抄就可以了。但是到了新模块并没有我的风格,并且原代码的风格又很差,就导致 AI 有样学样跑偏了。 后来我让 AI 总结我负责模块的编码偏好并整理成.md ,让 AI 基于这个.md 的偏好对这坨屎山进行重构。效果还不错,但是因为这个偏好文件是总结性的,比较宽泛抽象,很多细节偏好需要我手动补进去。
技能并不是银弹,反而可能是洪水猛兽
gpt5.6 出来后很多人说跟 superpower 有冲突,我因为很早就卸载 superpower 了,所以没感觉。但是经过这个项目,我感觉不仅仅 superpower 的问题,$Grill Me 那一套可能也有问题。这个项目之初我是装了$Grill Me 全家桶,现在删了只剩$Grill Me 了,因为目前来看效果并不好,并且会导致每一次对话都非常慢,严重降低了反馈效率。即使$Grill Me 我也用的有点力竭,昨天重构时他拷问了我 2 个小时才开始执行,整整 2 个小时!我就在那一直确认,人也不敢离开,结果执行重构也就花了半个小时。现在感觉还是 codex 的 plan 模式舒服,只问重点,并且更容易知道我要什么。
先写这么多,我要继续擦屎去了,毕竟留给我的时间不多了。。
