我让 OpenClaw 读完了Claude Code的源码后发现了这些省钱的秘密

简介: 3月31日Claude Code源码意外泄露,经分析发现其本质是精密Token经济系统。本文分享7大省钱技巧:/compact免费本地压缩、禁用6倍价Fast Mode、善用廉价读缓存、手动设压缩阈值、避免重复Web搜索、默认选低价Sonnet模型、巧用Session Memory等,帮助降低成本。

3 月 31 日,Claude Code 源码通过 npm source map 意外泄露。让 OpenClaw 花了一晚上读完 51 万行代码,让他总结出了这些帮你省钱的秘密。



先说结论


Claude Code 不是简单的「套壳 CLI」,它是一个精心设计的 Token 经济系统。


在 512,000 行源码里,我发现了至少 7 个直接帮你省钱的设计,还有一些……嗯,Anthropic 不想让你知道的定价秘密。



01

/compact不是可选功能,是救命稻草



源码位置:src/commands/compact/compact.ts

很多人把 /compact当成「整理对话」的可选功能,错了。

真相:这是防止你 Token 爆炸的最后一道防线。


// compact.ts 核心逻辑
export const call: LocalCommandCall = async (args, context) => {
  // 先尝试 Session Memory 压缩(免费)
  if (!customInstructions) {
    const sessionMemoryResult = await trySessionMemoryCompaction(...)
    if (sessionMemoryResult) {
      return { type: 'compact', ... }
    }
  }
  // 再执行 microcompact(微压缩,几乎不花钱)
  const microcompactResult = await microcompactMessages(messages, context)
  // 最后才调用完整的 compactConversation(花钱)
  const result = await compactConversation(...)
}


省钱策略:

  1. 不带参数的 /compact优先用 Session Memory—— 这是免费的本地压缩,不消耗 API 调用
  2. microcompact 先执行—— 它只删除冗余消息,不调用 LLM
  3. 真正的总结压缩只在必要时触发


我的建议:看到上下文超过 100K tokens 就手动 /compact,别等自动触发。自动触发的阈值是 contextWindow - 13,000,那时候你已经花了不少冤枉钱了。



02

Fast Mode 的定价陷阱


源码位置:src/utils/modelCost.ts+ src/utils/fastMode.ts

这是最劲爆的发现。

Opus 4.6 有两种价格:



// 普通模式:$5 输入 / $25 输出 per Mtok
export const COST_TIER_5_25 = {
  inputTokens: 5,
  outputTokens: 25,
  ...
}
// Fast Mode:$30 输入 / $150 输出 per Mtok
export const COST_TIER_30_150 = {
  inputTokens: 30,
  outputTokens: 150,
  ...
}


看到了吗?Fast Mode 贵 6 倍。

但源码里有个细节:


export function getOpus46CostTier(fastMode: boolean): ModelCosts {
  if (isFastModeEnabled() && fastMode) {
    return COST_TIER_30_150  // 6 倍价格
  }
  return COST_TIER_5_25  // 正常价格
}


省钱策略:

  • 除非你真的需要「实时响应」,否则关掉 Fast Mode
  • 检查你的设置:/config里找 fastMode
  • 源码里有个环境变量可以强制关闭:CLAUDE_CODE_DISABLE_FAST_MODE=1


更劲爆的是:Fast Mode 还有「冷却时间」机制。如果你连续触发 rate limit,系统会自动把你踢回普通模式,但不会通知你——你以为是 Fast Mode,其实已经在用普通模式计费了。



03

Cache是你的朋友,但Claude Code不希望你用太多



源码位置:src/cost-tracker.ts

看这段计价代码:


export const COST_TIER_3_15 = {
  inputTokens: 3,      // $3 per Mtok
  outputTokens: 15,    // $15 per Mtok
  promptCacheWriteTokens: 3.75,   // 写缓存 $3.75
  promptCacheReadTokens: 0.3,     // 读缓存 $0.3
  webSearchRequests: 0.01,        // 每次搜索 $0.01
}


发现没有?

  • 写缓存:$3.75/Mtok(比正常输入贵 25%)
  • 读缓存:$0.3/Mtok(只有正常输入的 10%


省钱策略:

  1. 多用读缓存,少写缓存—— 写一次的钱够读 12 次
  2. 长对话用 /resume恢复会话—— 避免重新写缓存
  3. 避免频繁切换项目—— 每次切换都可能触发新的缓存写入


源码里有个细节:cost-tracker.ts会追踪每个模型的 cacheCreationInputTokenscacheReadInputTokens,用 /cost命令可以看到详细账单。

我建议你每次开始工作前先 /cost看看昨天的账单,心里有数。



04

Auto Compact 的「缓冲区间」秘密



源码位置:src/services/compact/autoCompact.ts

这段代码暴露了 Anthropic 的「心理战」:


export const AUTOCOMPACT_BUFFER_TOKENS = 13_000
export const WARNING_THRESHOLD_BUFFER_TOKENS = 20_000
export const ERROR_THRESHOLD_BUFFER_TOKENS = 20_000
export const MANUAL_COMPACT_BUFFER_TOKENS = 3_000
export function getAutoCompactThreshold(model: string): number {
  const effectiveContextWindow = getEffectiveContextWindowSize(model)
  return effectiveContextWindow - AUTOCOMPACT_BUFFER_TOKENS
}


翻译一下:

  • 200K 上下文窗口
  • 自动压缩触发点:187K(200K - 13K)
  • 警告阈值:180K
  • 错误阈值:180K
  • 手动压缩安全线:197K


这意味着什么?

系统在「诱导」你早点压缩。13K 的缓冲区间看似保护你,实则是防止你用到 199K 才压缩——那时候一次 API 调用可能直接失败,钱花了还没结果。


省钱策略:

  • 手动设置更激进的压缩阈值:CLAUDE_AUTOCOMPACT_PCT_OVERRIDE=80(80% 就压缩)
  • 或者用环境变量限制最大上下文:CLAUDE_CODE_MAX_CONTEXT_TOKENS=100000(强制用 100K 而非 200K)


源码里还有个彩蛋:


// 连续自动压缩失败 3 次就放弃
const MAX_CONSECUTIVE_AUTOCOMPACT_FAILURES = 3


连续失败 3 次系统就放弃了——这时候你的对话已经处于「半残」状态,继续聊只会浪费钱。看到自动压缩失败 3 次,立刻手动 /compact或者重启会话



05

Web Search 每次 $0.01,但你可能在重复付费



源码位置:src/utils/modelCost.ts

webSearchRequests: 0.01,  // 每次搜索 $0.01


看起来不贵?看源码里的追踪逻辑:


export function addToTotalSessionCost(...) {
  // 追踪 web search 请求数
  accumulated.webSearchRequests += usage.webSearchRequests ?? 0
  // 每次请求都计费
  modelUsage.costUSD += cost
}


问题在于:Claude Code 不会缓存搜索结果。你问「今天天气怎么样」,它搜索一次;5 分钟后你问「刚才说的天气」,它可能又搜索一次


省钱策略:

  1. /context查看当前上下文—— 确认信息已经在对话里
  2. 避免重复问同一类问题—— 每次都可能触发新搜索
  3. @file引用本地文件而不是让 Claude 搜索 —— 文件读取免费


源码里的细节:cost-tracker.tsformatModelUsage()会显示 web search次数,用 /cost可以看到。



06

模型选择的「默认陷阱」



源码位置:src/utils/model/model.ts+ src/utils/context.ts

源码里有个函数叫 getDefaultMainLoopModelSetting(),它决定了你默认用什么模型。

但更关键的是这个:


export function getModelMaxOutputTokens(model: string): {
  default: number
  upperLimit: number
} {
  if (m.includes('opus-4-6')) {
    defaultTokens = 64_000
    upperLimit = 128_000
  } else if (m.includes('sonnet-4-6')) {
    defaultTokens = 32_000
    upperLimit = 128_000
  }
  // ...
}


Opus 4.6 默认输出 64K tokens,Sonnet 4.6 默认 32K。


但看定价:

  • Opus 4.6:  5/5/25 per Mtok
  • Sonnet 4.6: 3/3/15 per Mtok


Opus 不仅单价贵,默认输出还多一倍。


省钱策略:

  1. 默认用 Sonnet 4.6—— 除非你真的需要 Opus 的推理能力
  2. 手动限制最大输出/config maxOutputTokens 16000
  3. /brief命令—— 这是源码里的「简短模式」,强制模型少说话


源码里的彩蛋命令:/brief.ts存在于 src/commands/,但文档里从来没提过。我猜是内部测试功能,但可以用。



07

Session Memory 是免费的,但 90% 的人不知道



源码位置:src/services/compact/sessionMemoryCompact.ts

这段代码在 compact.ts里被优先调用:


// 先尝试 session memory compaction(免费)
if (!customInstructions) {
  const sessionMemoryResult = await trySessionMemoryCompaction(
    messages,
    context.agentId,
  )
  if (sessionMemoryResult) {
    return { type: 'compact', ... }  // 直接返回,不调用 API
  }
}


Session Memory 压缩是本地操作,不消耗 API 调用。


但它有个限制:不支持自定义指令。一旦你加了参数(比如 /compact 总结重点),系统就会切换到付费的完整压缩模式。


省钱策略:

  1. 日常压缩直接用 /compact(不加参数)—— 走免费通道
  2. 只在必要时加自定义指令—— 比如「只总结技术决策」
  3. 定期用 /memory查看持久化记忆—— 避免重复信息累积


额外发现:这些命令可能帮你省钱。源码 src/commands/目录里还有一些「隐藏命令」:


命令

作用

省钱指数

/cost

查看当前会话花费

⭐⭐⭐⭐⭐

/compact

压缩上下文

⭐⭐⭐⭐⭐

/brief

简短模式(未文档化)

⭐⭐⭐⭐

/resume

恢复之前会话(复用缓存)

⭐⭐⭐⭐

/context

查看当前上下文状态

⭐⭐⭐

/config

修改配置(限制输出 tokens)

⭐⭐⭐⭐


我建议你每次开始工作前:


/cost          # 看看上次花了多少
/context       # 确认当前状态
/config maxOutputTokens 16000  # 限制输出



最后的思考



读到这些,让我自己我最大的感受是:


Claude Code 的设计者在「Token 经济」上花了大量心思。每一个功能背后都有成本考量,但大部分用户看不到。


几个核心发现:

  1. 自动压缩是保护机制,但阈值设置偏保守—— 系统在防止你失败,但也在「诱导」你早点付费压缩
  2. Fast Mode 是「奢侈品」—— 6 倍价格,除非你真需要实时性,否则关掉
  3. 缓存是把双刃剑—— 读缓存便宜,写缓存贵,策略很重要
  4. Session Memory 是免费午餐—— 但需要你用对方式


目录
相关文章
|
3天前
|
人工智能 前端开发 调度
Claude Code 源码泄露,升级 OpenClaw 的研究方案
一场意外泄露的Claude Code近51万行源码,为OpenClaw提供了宝贵的架构升级参考:其Cron调度、Kairos守护进程、Coordinator多智能体机制等核心设计,与OpenClaw高度契合,加速了社区对自动化、长效记忆与协同AI的研究演进。(239字)
|
5天前
|
人工智能 JSON 监控
Claude Code 源码泄露:一份价值亿元的 AI 工程公开课
我以为顶级 AI 产品的护城河是模型。读完这 51.2 万行泄露的源码,我发现自己错了。
4042 12
|
11天前
|
人工智能 Linux API
OpenClaw 全场景命令速查手册:阿里云/本地系统部署+大免费模型api配置+完整命令库整理
2026年,OpenClaw(Clawdbot)已成为最主流的开源AI智能体执行框架,凭借轻量化、可扩展、本地优先、多平台接入等特性,成为个人与团队搭建数字助理的首选工具。但在实际使用中,大量用户面临**命令记不住、部署流程复杂、大模型配置失败、服务无法启动、故障不会排查**等问题,严重影响使用效率。
715 0
|
安全 API 数据安全/隐私保护
保姆级图文教程!OpenClaw阿里云/本地1分钟部署+百炼API配置+6大类高级实战Skill及安全避坑指南
2026年,OpenClaw(曾用名Clawdbot)凭借“高扩展性+低门槛部署”成为开源圈现象级工具,GitHub下载排行飙升至第11名。但多数用户部署后陷入“只会陪聊”的困境——核心问题并非大模型能力不足,而是缺少适配场景的高级Skill(技能插件)。如同给智能手机只装系统不装APP,难以发挥真正价值。
942 14
保姆级图文教程!OpenClaw阿里云/本地1分钟部署+百炼API配置+6大类高级实战Skill及安全避坑指南
|
18天前
|
存储 人工智能 机器人
你养的龙虾,怎么才能越用越聪明?
通过三本说明书立人设、建记忆系统告别金鱼脑、开启“心跳”主动服务、积累技能复利、接入生态学本领、组建多智能体团队——龙虾的能力上限,就是你想象力的边界。
387 2
|
12天前
|
人工智能 Linux API
阿里云/本地 OpenClaw 多 Agent 协作系统完全构建指南:八大智能体架构+Obsidian联动+常见问题解答
传统单Agent智能体存在明显局限:任务混杂、上下文冲突、专业度不足、记忆混乱、难以长期进化。OpenClaw支持的**多Agent协同架构**,可以将AI拆分为一组分工明确、独立记忆、各司其职的“脑区”,通过统一调度中心实现规划、分析、创作、构建、审查、检索、学习全流程闭环。再结合Obsidian知识库实现外部记忆托管,可构建一套**可生长、可协作、可管控、可沉淀**的私有AI系统。
479 4
|
2月前
|
存储 人工智能 开发工具
Claude Code自动记忆来了!配合老金三层记忆系统全开源!加强Plus!
昨天晚上,老金我照例打开 Claude Code 准备写代码。 随便聊了几句项目架构,Claude突然冒出一句: "Based on our previous discussions, this project uses pnpm and TypeScript strict mode." 老金我愣了一下。 上次提到pnpm是三天前的事了,这中间重启了好几次。 打开 ~/.claude/p
|
16天前
|
监控 数据可视化 安全
OpenClaw 阿里云/本地可视化看板完整部署:系统监控、任务管理与成本统计一站式方案+免费模型配置
在长期运行OpenClaw(Clawdbot)智能体集群时,非技术人员与团队管理者往往难以通过终端日志判断系统状态:无法直观查看Token消耗、任务执行链路、智能体工作负载、上下文压力与异常阻塞任务。TianyiDataScience团队开源的OpenClaw Control Center提供了一套安全优先、本地优先、中英双语的可视化监控面板,将系统运行数据转化为可观测、可预警、可追溯的可视化指标,同时默认启用强安全策略,避免误操作与数据风险。本文完整说明OpenClaw Control Center的功能架构、安装流程、环境配置、安全策略,并同步提供2026年阿里云轻量服务器、本地MacOS
1033 0
|
2月前
|
人工智能 缓存 安全
OpenClaw“2小时消耗100美元”?OpenClaw/Clawdbot降本攻略:5个Token节省Skills教程(立省97%成本)
“2小时消耗100美元”“月账单3600美元”——这是不少OpenClaw用户面临的真实痛点。随着AI Agent的高频使用,Token消耗成本居高不下,成为制约高效使用的关键瓶颈。但同样是使用OpenClaw,部分用户能实现每月近乎零成本运行,核心秘诀就在于合理运用Token优化Skill。
5567 1
|
2月前
|
人工智能 监控 API
Claude Code终于有仪表盘了:3条命令装个HUD,上下文用了多少一眼就知道
老金我最近用Claude Code,遇到一个特别烦的事。 写着写着,突然蹦出来一句"context window is getting full"。 然后AI就开始犯傻了——回答变短、逻辑变乱、之前说好的方案全忘了。 每次遇到这种情况,老金我都想骂人。 问题出在哪? Claude Code的终端界面,压根看不到上下文用了多少。 你只能输入 /context手动查,但谁写代码的时候
6332 8

热门文章

最新文章