Claude Code/Codex/OpenCode 省 Token的一些技巧
先给结论: Claude Code/Codex/OpenCode 省 Token 的核心是:严控输入(Input)、精简上下文、减少无效文件读取、善用工具与缓存 。
Input 占总消耗 70%–90%,是优化重点。
下面按「原理 → 详细方法 → 三平台对比表 → 实战清单」展开,格式清晰、可直接落地。
01 Token 消耗核心原理(先看懂,再省钱)
计费公式: 总费用 = Input Tokens × 输入单价 + Output Tokens × 输出单价
- Input Tokens(70%–90%) :指令、对话历史、项目文件、工具输出、系统提示
- Output Tokens(10%–30%) :AI 返回的代码、解释、日志
- 最大黑洞 :项目文件自动读取(一次交互常占 80% Input)
02 分平台省 Token 详细方法
1. Claude Code(最常用,优化空间最大)
(1)文件过滤:.claudeignore(立省 60%+)
在项目根目录创建.claudeignore,语法同.gitignore,禁止 AI 读取无用文件:
依赖与构建(最大黑洞)
node_modules/
dist/
build/
.next/
pycache/
锁文件/日志
*.lock
package-lock.json
*.log
版本控制/IDE
.git/
.idea/
.vscode/
资源/缓存
*.png
*.jpg
*.svg
*.ico
.cache/
coverage/
效果 :单次交互从 15 万 → 6 万 Token,直降 60%
(2)上下文压缩:/compact(长对话必备)
手动压缩:对话到阶段性节点(如完成一个功能),输入/compact
带指令压缩:/compact 保留代码修改与文件路径,丢弃分析过程
自动压缩:/config→ 开启Auto-compact enabled
效果 :25,000 → 3,000 Token,省 88%
(3)文档驱动:CLAUDE.md(减少探索性读取)
项目根目录建CLAUDE.md,一次性告诉 AI 项目结构、技术栈、命令:
项目概述
Next.js 14 + TypeScript + Prisma + PostgreSQL SaaS
目录结构
src/app/ # App Router
src/components/# 组件
src/lib/ # 工具
src/server/ # 服务端
开发命令
pnpm dev
pnpm build
效果 :减少cat/find/grep探索,省 30%+ 无效 Token
(4)记忆管理:/memory(固化重复信息)
存入:/memory 项目用 Next.js 14 + TypeScript,接口规范见 docs/api.md
查看:/memory list
删除:/memory delete [key]
效果 :不用每次重复粘贴配置,省 40%+ 重复输入
(5)Plan Mode(先规划再执行,少走弯路)
快捷键:Shift+Tab
作用:先让 AI 出执行计划,确认后再执行,避免无效探索
效果 :减少试错,省 20%+ 无效 Token
(6)输出精简:/compact + 过滤工具输出
精简命令输出:/config开启「精简工具输出」,去掉 ANSI 颜色、进度条、空行
长输出截断:只保留错误堆栈与失败用例,通过用例只显示摘要
效果 :npm test 类输出 25,000 → 2,500 Token,省 90%
(7)模型切换:/model(按任务选档位)
简单任务(语法、小函数):/model haiku(单价最低)
复杂任务(架构、多文件):/model sonnet
超复杂:/model opus(仅必要时用)
效果 :同任务成本降 30%–80%
2. Codex(GitHub Copilot 底层,IDE 插件为主)
(1)IDE 配置:限制上下文文件数量
VS Code:设置 → GitHub Copilot → Max File Context→ 设为 3–5
作用:只让 Copilot 读取当前文件 + 少量依赖,不扫全项目
效果 :Input 减少 50%+
(2)指令精简:用短指令 + 注释引导
差:帮我写一个用户登录的后端接口,用 Node.js + Express,包含 JWT 验证、密码加密、错误处理
好:// Node.js Express 登录接口 JWT bcrypt
效果 :Input 减少 40%+
(3)关闭不必要功能
关闭:自动补全、实时建议(仅在需要时开启)
关闭:多文件索引(仅在重构时开启)
效果 :减少后台持续扫描的 Token 消耗
(4)分文件开发:避免跨文件大上下文
一个文件一个功能,不跨多个文件写大逻辑
必要时手动复制依赖代码片段,不依赖自动读取
效果 :上下文体积减少 60%+
3. OpenCode(开源/自托管,配置灵活)
(1)配置文件:精准设置上下文上限
编辑config.json,按模型能力设input_limit(不保守默认):
{
"model": {
"name": "deepseek-v3",
"input_limit": 128000, // 按模型实际上下文设
"output_limit": 80000
}
}
效果 :用满上下文,减少自动截断与重复请求,省 30%+
(2)文件过滤:.opencodeignore
同.claudeignore,排除依赖、构建、日志、资源文件
(3)上下文管理:手动清理历史
定期用/clear重置上下文,不堆积多任务历史
分会话:不同功能开新会话,不混用
效果 :避免历史膨胀,省 50%+ 无效上下文
(4)模型选择:用低成本开源模型
简单任务:Qwen 7B、Llama 3 8B(本地/低价 API)
复杂任务:DeepSeek V3、Qwen Max(按需切换)
效果 :单价降 70%–95%
03 三平台省 Token 方法对比表(美化版)
| 方法 | Claude Code | Codex | OpenCode |
|---|---|---|---|
| 文件过滤 | .claudeignore(立省 60%+) |
限制上下文文件数量(Input 减少 50%+) | .opencodeignore(同 .claudeignore) |
| 上下文压缩 | /compact 手动/自动压缩(省 88%) |
分文件开发,避免跨文件大上下文(减少 60%+) | /clear 重置上下文 + 分会话(省 50%+) |
| 文档驱动 | CLAUDE.md 减少探索性读取(省 30%+) |
短指令 + 注释引导(Input 减少 40%+) | 精准设置 input_limit(省 30%+) |
| 记忆管理 | /memory 固化重复信息(省 40%+) |
— | — |
| Plan Mode | Shift+Tab 先规划再执行(省 20%+) |
— | — |
| 输出精简 | 精简工具输出 + 长输出截断(省 90%) | 关闭不必要自动功能 | — |
| 模型切换 | /model 按任务选档位(降 30%–80%) |
— | 用低成本开源模型(单价降 70%–95%) |
04 实战:10 步省 Token 清单(直接照做)
- 项目根目录建 .claudeignore/.opencodeignore ,复制模板
- 建 CLAUDE.md ,写清技术栈、目录、命令
- 开启 自动压缩 (Claude:/config→ Auto-compact)
- 长对话手动/compact,阶段性清理
- 用 /memory 存项目配置、规范,不重复输入
- 复杂任务用 Plan Mode(Shift+Tab) ,先计划再执行
- 按任务 切换模型 :简单用 Haiku/低成本模型,复杂用 Sonnet
- 关闭 不必要自动功能 (如实时补全、全项目扫描)
- 分 会话/文件 开发,不堆积多任务历史
- 定期 查看 Token 使用 ,定位黑洞(Claude:/usage)
05 关键提醒
- Input 是核心 :优先优化文件读取、上下文、指令长度
- 宁可多排除,不要少排除 :被排除文件可手动粘贴,比自动扫描划算
- 及时清理 :长对话、多任务必压缩/清理,避免历史膨胀
- 模型匹配 :不盲目用高端模型,按任务选档位 —END—