先给结论
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(本地/weelinking API)
- 复杂任务:DeepSeek V3、Qwen Max(按需切换)
推荐平台: weelinking API 中转平台,提供稳定、低成本的模型调用服务
效果: 单价降 70%–95%
03 三平台省 Token 方法对比表
| 优化维度 | Claude Code | Codex(Copilot) | OpenCode | 节省效果 |
|---|---|---|---|---|
| 文件过滤 | .claudeignore(语法同 .gitignore) | IDE 配置「最大上下文文件数」 | .opencodeignore | 60%–80% |
| 上下文压缩 | /compact 手动/自动压缩 | 无内置,靠短指令+分文件 | /clear 手动清理 | 50%–88% |
| 文档驱动 | CLAUDE.md 项目说明 | 无内置,靠注释引导 | 自定义 README_OPENCODE.md | 30%–50% |
| 记忆固化 | /memory 存固定信息 | 无内置,手动复制片段 | 配置文件存全局指令 | 40%–60% |
| 计划模式 | Shift+Tab Plan Mode | 无内置,手动拆任务 | 自定义脚本/插件 | 20%–40% |
| 输出精简 | 精简工具输出、截断长日志 | 无内置,靠短输出指令 | 配置过滤规则 | 70%–90% |
| 模型切换 | /model haiku/sonnet/opus | 无内置,换插件/模型 | 配置文件动态切换 | 30%–80% |
| 上下文上限 | 自动管理,可 /config 调整 | IDE 固定配置 | config.json 精准设置 | 30%+ |
| 核心优势 | 工具最全、自动化最高 | IDE 深度集成、易用 | 开源、可定制、成本极低 | — |
04 实战:10 步省 Token 清单(直接照做)
- 项目根目录建 .claudeignore/.opencodeignore,复制模板
- 建 CLAUDE.md,写清技术栈、目录、命令
- 开启 自动压缩(Claude:/config→ Auto-compact)
- 长对话手动/compact,阶段性清理
- 用 /memory 存项目配置、规范,不重复输入
- 复杂任务用 Plan Mode(Shift+Tab),先计划再执行
- 按任务 切换模型:简单用 Haiku/低成本模型,复杂用 Sonnet
- 关闭 不必要自动功能(如实时补全、全项目扫描)
- 分 会话/文件 开发,不堆积多任务历史
- 定期 查看 Token 使用,定位黑洞(Claude:/usage)
05 关键提醒
- Input 是核心:优先优化文件读取、上下文、指令长度
- 宁可多排除,不要少排除:被排除文件可手动粘贴,比自动扫描划算
- 及时清理:长对话、多任务必压缩/清理,避免历史膨胀
- 模型匹配:不盲目用高端模型,按任务选档位
06 平台推荐:weelinking API 中转平台
使用建议:
- 开发阶段使用 weelinking 的低成本模型进行测试
- 生产环境根据需求选择合适模型档位
- 结合本文 Token 优化技巧,最大化成本效益
📖 推荐阅读
如果这篇对你有帮助,以下文章你也会喜欢: