最近在用codex做项目,有一些体会。
context的限制
最近解决一个问题和ai花了一周都没结果,过程中一个很明显的感受是:
要解决的问题如果是那种给 AI 一两句话就能出结果的,coding agent用起来非常爽;反之,问题比较复杂的就会:
-
对话轮数不断增加
-
上下文越来越长
-
问题反而变得越来越难解决
我还有种感觉:一个问题聊的越久越没希望,context太长的时候ai就会变的脑雾,变蠢,现在已经相比于半年前、一年前好多了,但一定还是有边界的,到这个context边界就只能gg,开下一把,靠上次聊的时候写的开发文档来同步进度。
以及,这个过程中自己也会丢掉很多细节。一开始contexxt不长的时候,自己是很清晰解决问题的路径的。但context开始多起来时,且你又放给了coding agent很高的权限,放手去让他做了很长时间,这时候自己也开始不清晰开发的思路了,ai在做的就成了一个黑盒,自己不知道里面是什么。
我觉得这里就是考验一个人水平的时候了,自己能不能知道ai在干什么,有没有很强的纠偏能力、判断力、反思能力,把ai栓在正确的道路上。
不然就是context越来越长,问题一直解决不了,基本失控,这时候还会有一个问题:
ai给的解决思路看起来是很正确的,如果自己没判断力的话很容易被带偏,最近顺着他的思路走,但就是不work,我经常会怀疑:
-
是不是一开始某些东西就错了
-
或者这个问题本身包含了一些 AI 没法理解的东西,我们之间有些信息没用语言同步到位
反馈机制
实际开发的一个基本常识是:每次改动之后都需要通过测试来验证效果。
最近也了解到一些方法,单元测试,AB测试,TDD,敏捷开发之类的。
但这里存在一个很明显的分界:
-
纯代码逻辑:
测试结果清晰、可量化,容易反馈给 AI -
依赖视觉或主观判断的场景(例如 UE):
输出往往需要肉眼观察,很难转化成精确、结构化的反馈
这就会导致两个问题:
-
AI 无法获得高质量反馈 → 难以收敛
-
人本身也很难设计出合理的观测指标 → 给不到ai好的反馈,接下来的路径就不清晰
最终结果就是:问题还是一直work不了,又找不到明确的改进方向。
开发文档
我之前其实尝试优化过自己的工作流:一边开发,一边写文档。
但最近又发现一个事儿是:
如果一开始走在一条错误的路径上,那么文档也会同步记录错误的理解:
-
文档逐渐偏离真实情况
-
错误被不断放大
-
后续新开的线程也会被这些“错误前提”污染
所以最近的一个小调整是:把文档拆分为成事实层和逻辑层
-
事实层:记录客观发生了什么
-
逻辑层:记录自己的推断与解释
但这里其实我思考的还是比较模糊,感觉效果并不是很好。一般是直接让ai去文档,我其实很难知道他理解的逻辑层的可信度到底是多少,完全不看好像也不行,完全看更不行。
总结
总的来说,用ai的最重要的几个体会就是
-
清晰的上下文控制
-
高质量的反馈机制
-
对过程的记录
以及最重要的其实还是自己的工程能力。