
最近 Claude Code 的热度一直在涨很多人在终端里用 AI 写代码、改代码、批量重构效率确实高。但伴随的一个普遍问题是token 烧得太快。开一个会话聊十几轮上下文越滚越大再点几次自动修复几千 token 就没了。这次我们不聊概念直接给六条能在日常开发里落地的省 token 技巧。目标很明确在不清空上下文、不牺牲生成质量的前提下把常见开发任务的 token 消耗压到原来的一半左右。如果你正好在用 Claude Code或者正准备入坑这篇文章建议收藏。文章会覆盖Claude Code 的安装与登录、CLAUDE.md 全局记忆、Skills 精简指令、/compact 与 /clear 的上下文控制、会话恢复、子代理拆分、CI 模式批量执行以及一套完整的问题排查思路。1. 核心能力速览能力项说明工具名称Claude CodeAnthropic 推出的命令行 AI 编程工具运行方式终端 CLI云端模型推理本地不依赖 GPU安装依赖Node.js npm通过 npm 全局安装启动方式终端输入claude启动交互模式或claude -p非交互模式模型来源Anthropic Claude 系列模型走官方订阅或 API 计费计费单位token输入和输出都计费主要功能代码生成、代码修改、批量重构、git 操作、文件编辑、终端命令执行是否支持 API支持-p/--print模式可脚本化调用是否支持批量任务支持结合 shell/Python 脚本可批量处理VSCode 集成可直接在 VSCode 内置终端中运行资源占用CLI 进程本身的 CPU/内存占用很低不占显存适合场景本地开发、代码重构、CI 集成、多仓库批量任务这里要提前说清楚一件事Claude Code 不是本地模型核心推理在云端完成。所以它不需要配置 CUDA、不需要看显存你的电脑只要有一个稳定的网络环境和一个可以跑 Node.js 的终端就行。2. Claude Code 的 token 账单是怎么变大的想省 token先得知道 token 从哪里来。Claude Code 每次向模型发起请求时不只是发送你当前输入的那句话而是会把一整包内容一起发过去系统级提示词全局 CLAUDE.md 记忆项目 CLAUDE.md 记忆当前会话的完整对话历史工具调用返回的文件内容、命令输出你新输入的问题也就是说对话历史越长单次请求的 token 就越大。哪怕你只是说一句“继续”后面也要拖着前面几十轮上下文一起送出去。常见的三个烧 token 场景第一上下文无限膨胀。一个会话用到底中间让 AI 读过好几个大文件、跑过好几次测试历史里塞满了冗余输出。越到后面每次请求的输入 token 越高。第二重复交代背景。每次新开会话又把项目结构、技术栈、运行命令重新说一遍。这些重复内容被模型当成新输入处理token 自然翻倍。第三无差别读取文件。有些任务只需要改一个函数Agent 却把整个目录扫描了一遍。文件内容进入上下文后就算后面没用上也已经计费了。六大技巧基本就是围绕这三个问题设计的减少重复输入、控制上下文体积、阻止无意义读取。3. 环境准备与登录认证在进入技巧之前先把 Claude Code 装好。安装方式非常简单核心依赖是 Node.js 和 npm。建议使用较新的 Node.js LTS 版本具体版本要求以官方文档为准。# 全局安装 Claude Code npm install -g anthropic-ai/claude-code安装完成后在项目目录下直接运行claude首次运行会进入登录流程按终端提示完成官方账号的授权即可。如果走 API 计费设置好环境变量后再启动export ANTHROPIC_API_KEY你的API密钥在 VSCode 里使用也很简单打开项目然后使用内置终端运行claude命令。不需要额外安装插件终端里就能直接进入交互界面。需要注意登录阶段有几个高频报错例如sign-in could not be completed token exchange failedtoken exchange failed: token endpoint returned status 403 forbiddenyour organization has disabled claude subscription access这些报错的具体排查方法放在第 7 节统一说明。这里先说结论优先检查网络环境是否稳定、系统时间是否准确、账号是否在官方支持范围内、以及组织管理员是否开放了 Claude Code 的使用权限。不要使用来路不明的第三方中转服务避免 API 密钥泄露。4. 六大省 token 实战技巧4.1 技巧一用 CLAUDE.md 固化项目记忆很多人的 token 浪费在“重复交代背景”上。每次新开会话都要先跟 Claude 说一遍这个项目是什么技术栈目录结构怎么组织测试命令是什么代码风格有什么要求说一次两次还能接受但每天都要重复token 就悄悄跑掉了。Claude Code 原生支持CLAUDE.md文件专门用来解决这个问题。CLAUDE.md 分为两个级别全局级放在~/.claude/CLAUDE.md对所有项目生效项目级放在项目根目录只对当前项目生效当你启动 Claude Code 时它会自动读取这些文件内容作为当前任务的背景信息。你不需要每次手动重复模型天然知道项目上下文。示例项目级CLAUDE.md# 项目trade-service ## 技术栈 - Python 3.11FastAPI - PostgreSQL 15SQLAlchemy 2.0 - Redis 7用于缓存和异步任务 ## 目录结构 - app/api/接口路由 - app/services/业务逻辑 - app/models/ORM 模型 - tests/pytest 测试 ## 常用命令 - 启动服务uvicorn app.main:app --reload - 运行测试pytest -q - 代码检查ruff check . ## 编码约定 - 所有接口返回统一 JSON 结构{code: 0, data: ..., message: } - 禁止在 service 层拼 SQL必须走 ORM - 新增依赖需要更新 pyproject.toml这样写的好处有两点第一项目背景被“一次写入、反复复用”每次会话不用重新解释输入 token 大幅下降。第二模型行为更稳定。因为背景信息是固定写入的不会因为某次对话里的临时表述产生歧义。实际使用建议把团队约定、目录结构、常用命令、编码规范分成四块写越精简越好。CLAUDE.md 本身也会被当成上下文发送所以不要往里塞几十 KB 的长文尽量控制在 50 行以内写真正必要的信息。4.2 技巧二用 Skills 把长指令压缩成短命令CLAUDE.md 解决的是“背景重复”问题Skills 解决的是“操作步骤重复”问题。假设你每天都要让 Claude 执行一套代码审查流程检查 diff、看有没有硬编码密钥、确认异常处理、检查测试覆盖、最后输出审查结论。如果每次把这一大段手工粘贴进去单次输入就是几百甚至上千 token。Claude Code 支持 Skills 机制你可以把这套流程写进一个 Skill 文件之后只需要一句“执行 code-review”就能触发。Skill 的默认目录是~/.claude/skills/每个 Skill 一个子目录核心文件是SKILL.md。示例~/.claude/skills/code-review/SKILL.md--- name: code-review description: 对当前分支的代码变更进行审查 --- # Code Review 流程 1. 先执行 git diff 获取变更内容 2. 检查是否包含硬编码密钥、密码、Token 3. 检查异常处理是否完整 4. 检查新增代码是否覆盖测试 5. 按严重程度输出阻塞问题 / 建议修改 / 非阻塞提示使用方式也简单在交互对话框中输入执行 code-review只看 app/services/ 目录的变更Claude Code 会读取SKILL.md按照里面定义的步骤执行。对你来说输入只有十几个 token但模型拿到的是完整流程说明相当于把“长指令”压缩成了“短触发词”。4.3 技巧三用 /compact 和 /clear 管住上下文体积上下文越大单次请求越贵这是省 token 的核心矛盾。所以必须养成主动管理上下文的习惯。Claude Code 交互界面里提供了两个原生命令/compact对当前会话做上下文压缩保留关键信息丢弃冗余内容/clear清空当前会话上下文从零开始新一轮什么时候用/compact当你在同一个任务里已经完成了几轮修改和验证接下来还要继续追加需求但感觉对话历史已经很长时用/compact。它会把已经完成的部分压缩成摘要保住“任务目标、已完成事项、当前状态”丢掉大段大段的工具输出和代码片段。什么时候用/clear当前任务已经结束接下来要做一件完全不相干的事。此时不要犹豫直接/clear让下一轮对话从一个干净的上下文开始。一个常见错误是一个会话从早用到晚上午写接口下午调样式晚上部署。历史里存了大量无用的中间过程。每轮对话都在为这些垃圾信息付费。正确做法是一个任务一个会话。任务结束、输出确认无误后果断/clear。这样做基本能把单任务 token 消耗降下来一大截。4.4 技巧四用 --continue / --resume 精确恢复会话与上下文管理对应的是会话恢复策略。很多人的习惯是关掉终端第二天重新开一个会话然后把昨天的项目背景重新说一遍。这就等于把系统提示词 项目记忆 新输入全部重新计费一次。Claude Code 提供了两种恢复方式# 继续上一次会话 claude --continue # 查看历史会话列表 claude --resume--resume支持选择指定会话恢复可以直接用会话 ID# 恢复指定会话 claude --resume 会话ID这样昨天没做完的重构、今天继续做不需要重新解释背景模型仍然记得之前的对话上下文。既能保持任务连续性又省掉了开新会话时重复描述背景的 token。但这里有一个前提恢复会话并不等于无限续命。如果会话历史已经非常长恢复后单次请求依然会很高。所以最佳组合是先--resume恢复会话再配合/compact压缩历史然后再继续任务。4.5 技巧五用子代理和任务拆分隔离上下文Claude Code 在处理复杂任务时可以让主代理创建子代理去执行局部工作。子代理在自己的独立上下文里运行完成后只把结果摘要返回给主线程。这样大量工具输出和中间文件内容不会全部堆积在主会话里主上下文的 token 增长会慢很多。实际使用中可以把一个大任务拆成“计划、执行、验证”三个阶段第一段提示词你先不要改代码。先读取项目结构给出这份需求的最小改动方案列表输出。第二段提示词按上面的方案分三步执行每完成一步就停下来让我确认后再继续。第三段提示词全部改完后执行测试命令把失败用例逐条列出来不要直接自动修复。这样做的核心思路是让 Claude 每次只在一个小上下文里工作而不是一次性把所有文件、所有步骤、所有输出都塞进同一个对话里。特别是针对多文件重构场景分阶段执行后每一轮的输入 token 都有机会被压缩。4.6 技巧六用输出控制和 CI 模式减少无效生成交互模式下Claude 有时会输出大段解释、生成无用代码、或者连续执行超范围操作。这些输出都会变成 token。控制方法有三类。第一类限制工具权限。在.claude/settings.json或~/.claude/settings.json中自定义允许工具{ permissions: { allow: [ Read, Glob, Grep, Edit ], deny: [ Bash, WebFetch ] } }如果当前任务只涉及改代码不需要执行命令就把Bash关掉。少一次误触发的命令执行就少一次命令输出的上下文写入。第二类用非交互模式跑明确任务。claude -p 给 app/utils/string_utils.py 补充完整的 docstring --output-format text-p/--print模式适合“一次性、明确、不需要多轮对话”的任务。它天然避免了交互模式下的闲聊、追问和上下文膨胀。配合--output-format json可以拿结构化结果做后续处理。第三类指定文件而不是指定目录。需要修改代码时尽量在提示词里写具体文件路径修改 app/services/order_service.py 里的 create_order 方法补充库存扣减逻辑。而不是看看订单模块把库存扣减逻辑补上。后者会引导 Agent 先扫描目录再读取多个相关文件最终进入上下文的 token 数量会远高于前者。5. 接口 API 与批量任务场景Claude Code 的非交互模式非常适合批量任务。你可以把它理解成一个可以脚本化的 AI 编程终端给一组任务跑一堆命令拿一份结果。下面是一个用 Python 调用 Claude Code 处理多个文件的示例。需要注意这里的输出字段以你本机实际安装的 Claude Code 版本为准。import subprocess import json import time files [ app/services/order_service.py, app/services/payment_service.py, app/services/user_service.py, ] prompt_template 给 {} 中的每个函数补充类型注解不要修改业务逻辑。 for file_path in files: prompt prompt_template.format(file_path) result subprocess.run( [ claude, -p, prompt, --output-format, json, --allowedTools, Read Edit, ], capture_outputTrue, textTrue, timeout300, ) if result.returncode ! 0: print(f失败{file_path}) print(result.stderr) continue try: output json.loads(result.stdout) print(f成功{file_path}) print(output.get(result, )[:500]) except json.JSONDecodeError: print(f输出解析失败{file_path}) time.sleep(2)批量任务有几个工程化建议必须加超时时间避免单个文件卡死必须加失败重试和日志输出必须控制并发数不要同时启动几十个 Claude Code 进程每次请求间隔加一点延时避免触发频率限制6. 资源占用与成本观察Claude Code 的资源占用法和本地 AI 模型完全不同。本地大模型吃显存、吃 CPU、吃内存Claude Code 不一样它只是一个终端客户端核心推理在云端完成。本地只运行一个 Node.js 进程CPU 和内存占用都很低不涉及 GPU也不存在“多少 G 显存能跑”的问题。你需要观察的指标是单次请求的输入 token 数和输出 token 数单次请求的耗时是否触达上下文窗口上限是否出现频繁超时在交互模式中可以留意每次响应后的用量提示在 API 模式下可以从返回结果的 usage 字段读取精确数据。如果发现单次请求的输入 token 快速变大优先检查对话历史和上下文中的文件内容。降低资源与成本的方向主要有四个用/clear切断无关上下文用/compact压缩长会话用--continue复用已完成对话在提示词中指定精确文件路径减少目录扫描7. 常见问题与排查方法问题现象可能原因排查方式解决方案登录时报sign-in could not be completed token exchange failed: error sending request网络不稳定、服务端瞬时错误、系统时间不准检查网络确认系统时间查看官方服务状态重试登录校准系统时间等一段时间再试登录时报token exchange failed: token endpoint returned status 403 forbidden: country, region, or territory not supported账号所在区域不在官方支持范围或网络环境异常确认账号支持范围检查网络出口使用官方支持范围内的账号和网络渠道提示your organization has disabled claude subscription access for claude code组织策略未开放 Claude Code 权限联系组织管理员确认订阅策略让管理员开通权限或改用 API key 计费方式提示xxx is not a model this version of claude code recognizes模型标识不被当前版本识别查看claude --model支持列表检查环境变量和配置文件切换到官方支持的模型名或升级 Claude Code任务执行到一半 502 / 超时服务端繁忙或单次输入体积过大查看日志观察是否频繁超时降低单次输入体积压缩上下文退避重试上下文越来越大单次请求越来越慢对话历史无限膨胀观察历史长度使用/compact或/clear端口占用 / 多实例冲突同时启动多个 Claude Code 实例查看进程列表控制并发实例数量如何完全卸载需要清理全局包和本地配置执行卸载命令并检查残留npm uninstall -g anthropic-ai/claude-code然后删除~/.claude目录关于卸载完整命令示例npm uninstall -g anthropic-ai/claude-code rm -rf ~/.claude需要强调一点网上有些“免登录”“免费 token”“中转站”的推广本质是非官方渠道存在账号被限制、API 密钥泄露、数据内容被第三方记录的风险。建议不要使用token 成本控制靠的是使用习惯而不是走灰色渠道。8. 最佳实践与合规提醒省 token 不是单纯的“抠”而是一套工程化使用规范。第一次使用新项目时先跑一个小任务验证流程不要直接扔一个大仓库进去。确认 CLAUDE.md 内容准确、权限配置正确、输出格式符合预期再开始正式任务。模型文件、输入素材、输出结果分开目录管理方便批量任务后的结果回溯。批量任务必须加日志和失败重试避免中途卡住后全部重来。接口服务或自动化脚本里使用 API key 时不要把密钥硬编码进代码仓库。统一走环境变量或密钥管理服务。定时轮换密钥不要把 secret 写到公开日志里。涉及公司内部代码、客户数据、未公开项目的场景要提前确认数据合规要求。Claude Code 走云端推理代码内容会被发送到模型服务方敏感项目要评估数据出境边界必要时不要使用云端编程工具处理高敏内容。CLAUDE.md 和 Skills 文件也需要定期审查。项目升级了技术栈、废弃了旧命令、新增了目录结构都要同步更新。过时的记忆文件不仅浪费 token还会误导模型产生错误代码。9. 总结与下一步这六个技巧里最值得先动手的是 CLAUDE.md 和/compact。前者解决“每次重复解释”的问题后者解决“上下文无限膨胀”的问题两个都不需要改任何代码只要改使用习惯就能见效。最容易踩的坑是舍不得清上下文。一个会话开到底中间塞了几十轮历史最后每一轮请求都在为过去的内容买单。该/clear就/clear该重启就重启这是省 token 最重要的一步。后续可以继续做的方向有三个第一把 CLAUDE.md 固化成团队模板让整个小组的 Claude Code 使用保持统一的项目背景。第二把常用的审查、测试、部署流程封装成 Skills让团队成员用同一个命令触发标准流程。第三接入 CI把claude -p模式写进自动化流水线实现批量代码审查和批量重构。先把前四个技巧用熟再上批量场景。一套组合下来常见开发任务的 token 消耗降到原来的一半左右是可以预期的目标。