Codex 上下文不够用?五个立竿见影的压缩技巧
上下文不够时的表现很典型:它开始忘记前面的约束、改错文件、给出和上文矛盾的方案。这不是它变笨了,是它真的「看不全」了。
先看症状对不对
这几个表现说明上下文已经接近上限:
- 开始重复问你已经回答过的问题。
- 改动的风格和前面几轮不一致。
- 明明说好只改 A 文件,它跑去动 B 文件。
- 给出的方案和你前面提的约束冲突,而且它自己没意识到。
五个压缩技巧
按见效速度排序:
- 只给相关文件:不要让它读整个仓库,明确指出要看的 2-3 个文件。这是最有效的一招。
- 给片段不给全文:几千行的文件只贴相关函数,前面加一句「这是文件的一部分,只关注这个函数」。
- 用摘要代替历史:多轮对话太长时,让它先总结「目前已确定的约束」写进文件,然后开新会话带上这份摘要。
- 拆任务:一次只说一件事。多任务并行是上下文杀手。
- 维护一份项目约定文件:把编码规范、目录结构、常用命令写进文件,每次启动自动读,省掉反复解释。
一个反直觉的事实
上下文塞得越满,准确率反而越低。这不是玄学,是注意力被稀释——无关的代码会干扰它判断哪一段才重要。
所以「多给它一些信息」经常是错的。精准给两三处,比给二十处效果好得多。
长期做法
把项目按模块切成清晰的边界,每个模块有自己的说明文件。让它一次只在一个模块里工作,上下文问题基本就不存在了。
这个习惯的副作用是:你的项目结构会变清楚,人看也舒服。