用 Codex 写代码,最容易遇到两种憋屈:一种是任务跑到一半额度没了,另一种是额度明明还有,但花了半天没产出像样的东西。这篇不重复额度怎么算、用完怎么办那些事,只讲一个角度——同一份额度,怎么切分任务、怎么控制上下文、怎么选时机,让它尽量变成能合并的代码。判断标准给你,具体数值和档位到站内对应页面核对。
用 Codex 写代码,最容易遇到两种憋屈:一种是任务跑到一半额度没了,另一种是额度明明还有,但花了半天没产出像样的东西。这篇不重复额度怎么算、用完怎么办那些事,只讲一个角度——同一份额度,怎么切分任务、怎么控制上下文、怎么选时机,让它尽量变成能合并的代码。具体档位和消耗数值,到 /price-watch 核对当时的数字。
先给一个判断框架:额度划算不划算,不看单次任务花多少,看「能合并的代码量 ÷ 总消耗」。同样一个需求,让它自己找文件、自己试错、自己返工,消耗会成倍放大;你先定位、先划边界、先给验收标准,它就能一次改对。下面按「花在哪、怎么拆、怎么压上下文、什么时候别省」四块讲。
额度花在哪:先认清三类消耗
很多人以为额度是按最终写出的代码量算的,其实一轮任务里,读文件、跑命令、反复试错这些中间过程往往占大头。所以省额度的重点是压缩中间过程,不是少写代码。你少写两行代码省不了多少,但少让模型把整个仓库扫一遍,差别就出来了。
| 消耗类型 | 典型场景 | 划算的做法 |
|---|---|---|
| 读文件与检索 | 让它自己找改哪个文件、哪个函数 | 你先指到文件和函数,再让它动手 |
| 试错与返工 | 需求没说清,改一版不对再改一版 | 开头说清边界和验收标准,一次改对 |
| 上下文重复 | 大文件、长日志、全量报错反复带进每一轮 | 只贴关键片段,结论落盘成文件 |
上下文是复利。一次塞进去的大文件、长日志、全量报错,会在后续每一轮里重复被带进去,开头图省事,后面一路加价。另一个常被忽略的点是把「探索」和「实现」混在一次会话里:等于让模型带着所有试错记忆去写正式代码,成本最不划算。
拆任务的四个动作
拆任务不是为了好看,是为了让每一步都能中途停、能验证、能判断方向对不对。长任务最怕跑到大半断掉,前面花的额度全部沉没。下面四个动作按顺序做,基本能把大部分浪费挡掉。
- 先自己定位动手前先自己找到要改的文件和函数,把路径和行数告诉它。让它从零找位置,等于把人的检索换成更贵的方式。
- 一次说清边界改哪几个文件、不要动什么、验收标准是什么,一次讲完。返工是额度最大的漏斗,边界不清就是主动开漏斗。
- 大改拆成三步先出方案,再改一处,跑通再下一处。每步都能停,避免长任务到后面断掉、前功尽弃。
- 只接能验收的活需求本身是「你觉得怎么好怎么改」时,先自己想清楚再交给它;没有验收标准的任务,产出大概率要重来。
这里也有不适用的情况:需求本身还很模糊、你自己也没想清楚的时候,硬拆反而拆错方向。这种阶段适合先让它读代码、出两三个方案给你选,方案定下来再走上面四步。方案阶段的消耗要控制,别让它顺手就把代码改了。
上下文和日志的省钱写法
上下文管理是省额度里最见效、也最容易被忽略的一环。原则只有一条:进会话的每一段内容,都要能回答「它接下来几轮还用得上吗」。用不上就删,不确定就截短。
- 报错只贴关键几行和调用栈顶端,整段终端输出先自己删掉无关部分再贴
- 别要求它输出「请确认要不要继续」这类多余回合,多一轮就多一份上下文
- 同一任务尽量续会话,方向错了才重开;反复重开等于把前面的上下文费再付一次
- 会话结束把结论写成文件留在仓库里,下次新会话从这里读,比让模型重新理解代码便宜
- 长日志先本地过滤成几十行再贴,全量日志基本是纯消耗
会话续不续,判断标准很简单:方向还对、只是细节没改完,就续;方向已经错了、或者上下文里堆满了无关试错,就重开。重开前记得把已经确认的结论写下来,别让新会话从零开始。
什么时候不该省
省额度有边界,有些场景省下来的额度,代价是事故或返工。下面是几个明确不该省的场景,以及一个容易被忽略的「过期浪费」。
| 场景 | 为什么不该省 | 怎么把握 |
|---|---|---|
| 上线前安全审查 | 漏掉一处权限或注入问题就是事故 | 让它完整读一遍相关代码,别为了省额度只给片段 |
| 数据迁移与删除操作 | 改错一行数据很难恢复 | 让它把影响面列全,你逐条确认再执行 |
| 一次性脚本和临时验证 | 拆分收益很低,纯属自我折腾 | 直接跑通就行,别套复杂流程 |
| 额度快到期用不完 | 过期清零才是真浪费 | 拿来做重构、补测试、补文档这类平时舍不得花的活 |
最后一类值得单独说:如果你的订阅周期快结束、额度还剩不少,这时候的「省」没有意义。把平时觉得费额度不敢做的整理工作排上——补测试、补注释、清理死代码、更新文档,这些活产出确定、验收简单,正好消化余量。具体周期和余量口径,到 /price-watch 核对当时的数字。
下一步先翻一遍你最近的会话记录,看看有多少轮是「它在找文件、你在等」——这就是最直接的浪费来源。然后到 /tools/speed-test 跑一轮对比,确认换一种拆法之后,同样的任务消耗有没有变化。→常见问题
把任务拆得很小,会不会反而更费额度?
会,拆到「改一个变量」这种程度,每轮都要重新建立上下文和背景说明,反而更贵。合适的粒度是:一次能独立验证结果、涉及一到三个文件、自己能说清验收标准。达不到这个粒度就别拆。
同一件事,让 Codex 多做几轮和一次说完,哪个更省?
通常一次把约束和验收标准说完更省,因为中间轮次会重复携带上下文。但需求本身没想清楚时,硬要一次说完会导致方向错误和大改,反而更贵。判断标准是:你能不能写出验收条件,能,就一次说完;不能,先自己想清楚或让它先出方案。
额度用得快,是不是我的用法有问题?
不一定,先分清三种情况:大仓库、上下文天然大;任务类型偏探索式、需要大量试错;或者档位本身偏紧。前两种靠拆任务和控制上下文能改善,第三种是档位选择问题,到站内的编程套餐页面比一遍额度口径,别只盯着单次消耗猜。