【实战】AI Coding 怎么省 Token 又出活:8 个立竿见影的实用技巧
很多人觉得"AI 写代码"贵,其实大头往往不是模型单价,而是 token 被白白浪费在重复上下文、方向返工、低质提示上。下面 8 条都是我在日常 AI 编程里反复验证过的手段,单条就能降 20%~50% 的 token 消耗,组合起来更明显,而且出活质量反而更稳。
1. 把"项目约定"固化进 AGENTS.md,别每次重说
每次新会话都解释技术栈、目录结构、命名规范,是最隐形的 token 黑洞。把这些写进仓库根的 AGENTS.md(Cursor 叫 .cursorrules,Claude Code 叫 CLAUDE.md,Windsurf 叫 .windsurfrules,本质一样):
AGENTS.md
技术栈:React 18 + TypeScript + Vite
目录:src/features 按功能拆分,禁止在组件里写业务逻辑
命名:组件 PascalCase,工具函数 camelCase,常量 UPPER_SNAKE
测试:每个 feature 必须有 *.test.ts,用 vitest
禁止:不要用 any;不要引入未声明的依赖
作用域:每次只改本次任务相关文件,不要顺手重构其他模块
这样模型每次自动读取,省掉每轮几百 token 的"背景介绍",且输出风格稳定,返工更少。
2. 用"引用"代替"整文件粘贴"
不要 Ctrl+A 把文件塞进对话。用编辑器原生的 @file / @symbol 引用,或只贴"相关函数 + 调用点"。
一个 2000 行文件全量投喂约 3000 token;只给相关的 30 行,约 60 token——差 50 倍。
3. 先 Plan / Explore,确认方向再写
让模型一上来就"写完整个模块",方向错一次就是整段重写。正确姿势:
这一步多花 200 token 规划,往往省下 2000 token 返工。
4. 任务越小,越省
把"实现用户系统"拆成:
每步独立验证(编译 / 单测通过再进下一步)。大任务一次性生成,出错后模型要重新理解整个上下文,token 直接翻倍。
5. 开启 Prompt Caching
Claude / OpenAI 都支持 prompt 缓存:系统提示词、AGENTS.md、长上下文前缀命中缓存后,后续请求按约 10% 的价格计费。
Anthropic 示例:把稳定前缀打 cache_control
import anthropic
client = anthropic.Anthropic()
client.messages.create(
model=“claude-opus-4”,
system=[{
“type”: “text”,
“text”: open(“AGENTS.md”).read(),
“cache_control”: {“type”: “ephemeral”} # 稳定前缀打缓存
}],
messages=[{“role”: “user”, “content”: “实现注册接口”}]
)
把"会变"的用户指令放最后,"不变"的约定放前面并打缓存标记,长会话费用能降一个数量级。
6. 给"约束"而非"步骤"
❌ 低质提示:“帮我写一个处理订单的函数,要处理各种情况” → 模型猜你意图,反复试错。
✅ 高质提示:“写一个 processOrder(order): {ok, reason?}。输入是 Order 类型(见 @types)。只做校验 + 落库,不发送通知;非法订单返回 ok:false 并说明原因;不要改其他文件。” → 约束明确,一次到位。
7. 用子 Agent 并行干"脏活"
多文件重构、跨库调研,让主 Agent 派发子 Agent 并行:各自读自己那部分,只汇总结果。子 Agent 的中间上下文不回传主上下文,比主 Agent 串行读全库省时又省 token。
8. 让模型自己写测试,少调试
要求模型交付时附带最小复现测试 / 类型注解。类型检查 + 单测能在"不消耗你的 token"的情况下暴露 80% 的错误,比你贴报错让它猜快得多。
踩坑记录
总结
省 token 的本质是减少重复 + 减少返工 + 减少歧义:
AGENTS.md 消灭重复;
Plan / 小步验证消灭返工;
约束式提示消灭歧义。
三者叠加,我日常 AI 编程的 token 成本降了约 40%~60%,而出活质量反而更稳。建议从 AGENTS.md + 小步验证这两条先落地,立竿见影。






