1. 核心判断
AI 编程里的额度消耗,通常不只是模型价格或调用次数的问题,而是工作流失控后的连锁成本。主要浪费集中在几类:任务没有边界、对话没有结构、上下文压缩没有校验、代码改坏后没有 checkpoint 可以回滚。
换句话说,真正昂贵的不是"让 AI 写代码",而是让 AI 在需求不清、范围不明、上下文混乱的状态下反复试错。
这套方法可以压缩成一句话:
用软件工程流程管理 AI,而不是把整个功能一次性丢给 AI。
2. 三个基本原则
2.1 拆分:大功能要拆成小工程
大功能在产品描述里可能只是一句话,但在工程上往往包含数据库、接口、状态、页面、测试、兼容性等多个部分。如果直接要求 AI "做完整功能",模型会在一轮里同时猜需求、猜架构、猜技术选型,后续偏差会非常贵。
更合适的方式是先让 AI 做拆解,而不是直接写代码:
-
列出涉及的模块、接口、状态和风险点。
-
把关键技术判断交给开发者确认。
-
前后端分阶段推进。
-
能 mock 的地方先 mock,减少互相等待。
-
每个阶段结束后做 commit,形成可回滚节点。
2.2 节制:主动管理上下文窗口
上下文不是无限缓存。对话越长,模型越容易出现遗忘约束、重复试错、推翻已确认方案、改 A 误伤 B 等现象。
不要等上下文快满才压缩,而是在阶段性节点主动压缩:
-
一个模块完成时。
-
从阅读代码切换到修改代码时。
-
从定位问题切换到修复问题时。
-
读完一批文件后,只保留结论。
-
模型开始反复、跑题、遗忘限制时。
节制的重点不是少用 AI,而是让 AI 始终在足够清晰的上下文里工作。
2.3 校准:关键判断不能完全交给模型
AI 更适合执行、起草和辅助分析,不适合独自承担最终决策。
关键节点要进行校准:
-
开始前,让 AI 复述任务目标和限制条件。
-
压缩后,让 AI 复述当前任务状态,确认摘要没有漏掉关键内容。
-
Bug 修复后,验证当前功能和可能受影响的旧功能。
-
方案选择时,由人确认取舍,而不是让模型默认选择。
校准的价值在于防止错误方向被继续放大。
3. 大功能的推荐拆法
以"登录注册功能"为例,不要直接一句话开工,而是拆成四个阶段。
阶段 0:需求梳理,不写代码
先让 AI 输出需求文档,内容包括:
-
数据库表和字段。
-
接口和请求 / 响应结构。
-
前端页面和组件。
-
技术选型的备选项。
-
风险点和边界情况。
这一阶段的目标不是生成代码,而是把关键判断暴露出来,便于审阅和修正。
阶段 1:后端接口先行
在需求文档确认后,再推进后端:
-
数据库迁移。
-
注册、登录、token 校验接口。
-
中间件。
-
单元测试。
阶段结束后做 checkpoint commit,例如:
bash
git commit -m "checkpoint: backend api done"
阶段 2:前端 mock 联调
前端先基于 mock 数据独立开发:
-
登录页和注册页。
-
表单校验。
-
状态管理。
-
路由守卫。
阶段结束后继续 commit,例如:
bash
git commit -m "checkpoint: frontend with mock"
阶段 3:真接口接入与回归验证
最后切到真实接口,跑通完整流程,并回归验证可能被中间件、鉴权状态影响的旧功能。
这种拆法的价值是:每个阶段的上下文更小,AI 注意力更集中;每个阶段都能回滚;关键决策也不会被模型默认带走。
4. 上下文压缩的正确理解
对 /compact 的核心理解是:压缩不是"清屏续命",而是生成一份可靠的任务交接文档。
错误理解:
-
把压缩当成聊天记录折叠。
-
以为压缩后模型自然会保留所有重要细节。
-
直接裸用
/compact,不指定摘要结构。
正确理解:
-
压缩要保留任务目标、约束、已读文件、已改文件、已排除方案、未解决问题和下一步计划。
-
压缩不是无损操作,摘要质量决定后续能否接上。
-
压缩后必须校验,确认模型没有漏掉关键限制。
5. Claude Code 与 Codex CLI 的差异
不同工具的上下文管理能力不完全一样,几个实践点尤其重要:
-
Claude Code 支持
/compact [instructions],可以直接把结构化压缩要求放进命令。 -
Codex CLI 的
/compact不支持参数,因此需要先用普通消息告诉 Codex "接下来压缩时必须保留哪些内容",再执行/compact。 -
Claude Code 可用
CLAUDE.md中的Compact Instructions承载持久压缩规则。 -
Codex CLI 可通过配置项调整上下文窗口和自动压缩阈值,但没有等价的压缩指令区。
团队使用不同工具时,不能把一个工具的命令习惯直接套到另一个工具上。更稳妥的做法是为所选工具写内部 SOP。
6. 什么时候该压缩,什么时候不该压缩
适合主动压缩的时刻
-
一个阶段自然完成时。
-
即将进入下一阶段时。
-
读完一批文件,只需要保留结论时。
-
模型开始重复、跑题、遗忘限制时。
-
上下文接近工具阈值前。
-
准备切换会话或交接任务时。
不适合压缩的时刻
-
任务刚开始,还没有形成有效结论。
-
需求仍然模糊。
-
多个技术方案还没有定论。
-
刚补充关键限制,还没有被吸收到执行计划里。
-
当前代码状态已经混乱,应该先回到干净状态。
-
刚贴出错误堆栈,还没有完成排查。
压缩本身也消耗 token,并且有丢信息风险,所以它应该发生在工程边界上,而不是随手发生。
7. 压缩三步法
压缩动作可以拆成三步:整理、执行、校验。
Step 1:整理
压缩前,先让 AI 列出当前任务状态:
-
当前目标。
-
明确限制和禁止项。
-
已读关键文件。
-
已改关键文件。
-
已排除方案。
-
未解决问题。
-
下一步计划。
-
必须回归验证的功能。
这一步只做状态复述,不改代码。
Step 2:执行
基于整理出的状态进行结构化压缩。
Claude Code 可以直接使用带结构要求的 /compact;Codex CLI 需要先发普通消息声明压缩结构,再执行 /compact。
Step 3:校验
压缩后不要立刻继续改代码。先让 AI 基于摘要复述:
-
当前目标。
-
已完成工作。
-
已修改文件。
-
禁止修改内容。
-
未解决问题。
-
下一步计划。
-
必须验证的功能。
复述准确后再继续;如果有偏差,先纠正。
8. 三类压缩模板
下面三类模板适合沉淀成团队标准。
8.1 任务交接版
适用于功能开发、需求实现、模块改造等阶段性交接场景。
应包含:
-
当前任务目标。
-
明确需求。
-
明确约束与禁止项。
-
项目背景。
-
已读文件。
-
已改文件。
-
当前技术方案。
-
已排除方向。
-
未解决问题。
-
下一步计划。
-
回归验证清单。
8.2 Bug 修复版
适用于问题定位、线上问题、回归问题、循环依赖等场景。
应包含:
-
问题现象。
-
复现路径。
-
影响范围。
-
相关文件。
-
已排查内容。
-
已排除原因。
-
当前判断。
-
已修改内容。
-
禁止修改内容。
-
必须保持不变的功能。
-
下一步计划。
8.3 代码生成版
适用于新功能、模块改造、大段 HTML / CSS / JS / 配置 / 文档生成。
应包含:
-
项目背景。
-
当前需求。
-
需求边界。
-
关键约束。
-
已读文件。
-
已改文件。
-
核心实现方案。
-
兼容性要求。
-
风险点。
-
未完成内容。
-
下一步计划。
-
回归验证清单。
这三类模板本质上不是格式差异,而是三种工程动作:交接、排障、继续生成。
9. Git 安全网
压缩管理的是上下文,Git 管理的是代码。两者必须配合。
9.1 Checkpoint 提交
每完成一个阶段,在继续下一阶段或压缩前提交一次。
推荐流程:
bash
git status
git diff
git add .
git commit -m "checkpoint: before fixing order pagination"
checkpoint 的意义是让回滚成为一条命令,而不是让 AI 再花大量上下文"修回去"。
9.2 分支隔离
长任务使用独立 feature 分支,不要直接在主干分支上让 AI 连续修改。
推荐流程:
bash
git switch -c feature/ai-auth-module
# 阶段性 checkpoint commit
git switch main
git merge --squash feature/ai-auth-module
git commit -m "feat(auth): add login/register module"
9.3 多任务并行 worktree
多个任务并行时,使用 git worktree 为每个任务创建独立目录,避免频繁切分支破坏上下文。
bash
git worktree add ../my-app-ai feature/ai-refactor
git worktree remove ../my-app-ai
10. 团队落地清单
可沉淀到 onboarding 或 Code Review 检查清单:
-
禁止一句话让 AI 完成整个大功能。
-
大功能先产出需求文档,确认后再进入实现。
-
每个阶段独立 commit,commit message 可使用
checkpoint:前缀。 -
长任务开独立分支,不在主干直接推进。
-
禁止裸用
/compact,必须配结构化模板。 -
压缩前先复述当前状态。
-
压缩后先校验摘要内容。
-
修 Bug 时记录已排除方向。
-
代码改动后做当前功能和相关旧功能的回归验证。
-
关键限制写进项目级配置文件,例如
CLAUDE.md或AGENTS.md。
11. 结论
AI 编程不是把需求交给模型后等待代码产出,而是用工程流程驾驭模型能力。
拆分任务,能避免 AI 在模糊目标中试错;节制上下文,能减少遗忘和反复;校准摘要,能防止压缩后丢失关键限制;Git 安全网,能让错误快速回滚;团队 SOP,能让个人经验变成可复制流程。
这就是"把 Token 额度花在刀刃上"的真正含义:不是少用 AI,而是让每一次上下文消耗都服务于明确、可验证、可回滚的工程动作。