Codex Token Saver
在不削弱正确性、验证、安全性或用户期望结果的前提下优化工作流。将 token 节省视为次要约束:切勿仅仅为了减少使用量而跳过必要的文件、源代码、测试或审批。
选择最轻量的有效干预措施
在更改工作流之前,识别实际浪费:
- 反复读取未变化的项目上下文;
- 在另一个进程仍在运行时频繁轮询;
- 长对话中携带过时的决策;
- 能力强大或成本高的模型执行有边界的机械工作;
- 漂移、推测性扩展或重复返工。
仅应用下面相关的措施。不要为简短且边界明确的任务增加流程开销。
重用上下文而非重新读取
- 将持久化上下文与变化中的证据分离。持久化上下文包括项目目标、架构、编码约定、固定约束和标准命令。变化中的证据包括新需求、编辑、失败、日志和测试结果。
- 当可信时重用简洁的持久化摘要。仅重新读取可能已更改或当前决策实际依赖的文件或部分。
- 在打开大文件之前搜索符号和路径。优先使用目标范围和有焦点的查询,而不是广泛的目录或文档读取。
- 当正确性依赖于当前文件内容时,不要依赖记忆。在决定无需重新读取之前,检查时间戳、差异、搜索结果或相关源。
- 对于大型文档,在布局无关时一次提取可搜索文本。当图像、表格、分页或格式影响任务时,保留并检查原始文档。
高效等待长时间运行的工作
- 优先使用事件驱动等待或当前工具支持的最长安全等待间隔,而不是快速的空轮询循环。
- 当之前的操作已经返回可重用的会话或单元标识符时,不要重复调用空输入/轮询操作。
- 当外层执行调用封装了内部等待时,给外层调用足够的时间接收内部结果,包括合理的缓冲区。尊重平台的当前最大值和更高优先级的指令;不要硬编码当前环境禁止的间隔。
- 在真正长时间等待期间,按照当前环境要求的频率发送简洁的用户可见进展更新。
为长项目设置检查点
对于跨越多个阶段或可能在其他任务中恢复的工作,仅在持久化有用且写入在范围内时,在项目中创建或刷新 DEV_STATE.md。保持其简洁且基于事实:
# Development State
## Goal
## Verified current state
## Decisions and reasons
## Files changed
## Tests and results
## Next action
## Blockers or open questions
- 记录已验证的状态,而不是逐字记录。
- 删除被取代的计划,而不是累积它们。
- 将仓库和测试结果视为事实来源,当它们与检查点冲突时。
- 在恢复时,先读取检查点,然后只检查需要验证其是否仍然最新的文件。
在授权的情况下按难度分配工作
当模型选择或委派可用且允许时:
- 将模糊目标解读、架构决策、任务分解和最终集成保留给最强的合适模型。
- 为低成本模型分配边界明确的任务,包括明确的输入、输出、约束和验收检查,例如聚焦审查、独立实现或测试失败分类。
- 不要仅仅为了节省 token 而委派任务,如果协调或返工可能成本更高。
- 不要假设当前的模型价格或配额倍数。如果成本是建议的一部分,请使用当前官方的 OpenAI 文档进行验证。
- 遵循环境的授权规则;该技能不授予生成子代理或更改模型的权限。
防止漂移和返工
- 如果执行偏离了请求,停止无用的分支,重新陈述目标和当前证据,然后从最小的有效下一步继续。
- 当产品提供单独的侧边对话且答案在主历史中不需要时,将临时附带问题留在主实现上下文之外。
- 选择满足所述需求的最简单实现,在可选的扩展之前构建可运行的最小版本,在适当时使用成熟的依赖项,避免会导致可预见的维护债务的捷径。
- 不要在没有检查失败并改变方法的情况下反复重试相同的失败操作。
报告结果
在完成时,简要说明哪些优化对工作流产生了实质性改变,仍然读取或测试了哪些内容以确保正确性,以及任何剩余的不确定性。除非基于实际使用数据测量,否则避免声称节省了特定百分比的 token。