🦞虾窝

OpenClaw Token 优化实战:7个亲测配置让月账单从$600降到$20

发布于

AI cost optimization dashboard showing token usage reduction from $600 to $20

OpenClaw 的月账单能从 $600 压到 $20 以下,核心不是靠少用它,而是把每一笔 Token 花在对的地方。经过三个月亲测,我整理出 7 个可直接落地的配置项,从 5 分钟速效到深度调优,覆盖模型路由、Heartbeat 频率、Prompt Caching、本地模型替代等全链路。以下配置全部经过 openclaw.json 验证,复制粘贴就能跑。

你的 Token 到底烧在哪了?

Close-up of a woman creating a pie chart on a whiteboard during a business presentation.

先看账单结构,否则优化就是盲人摸象。根据社区实测数据,OpenClaw 的 Token 消耗大致分布如下:上下文历史占 40-50%,工具调用输出占 20-30%,系统提示词占 10-15%,模型响应本身仅占 8-12%,重试与错误处理 3-5%,其余杂项约 3%(OpenClaw Docs, 2026)。

最反直觉的一点是:模型响应不是大头,重复发送的上下文历史才是。OpenClaw 每轮对话都会把完整历史塞给模型,第 20 轮对话的输入 Token 量大约是第 1 轮的 20 倍。如果你用 Claude Opus 4.6(输入 $5/MTok,输出 $25/MTok),一个 100K 上下文的请求仅输入成本就超过 $0.5。不压缩上下文,任何模型切换都是杯水车薪。

第一招:模型分级路由,5 分钟省 50%

别用 Opus 做心跳检查,那是用跑车送外卖。OpenClaw 的 agents.defaults.models 支持配置模型白名单,按任务难度分配不同模型,这是成本杠杆最大的一步。

Conceptual depiction of hierarchy using wooden pieces on a vibrant red background.

亲测可用的三级模型策略:

  • 免费/零成本层:Ollama 本地模型(Qwen 2.5、Llama 3.2、Mistral)或 Google AI Studio 免费 Gemini Flash,专用于 Heartbeat、状态检查、简单 Cron 任务
  • 经济层($0.10-0.50/MTok 输入):Gemini 1.5 Flash、Claude Haiku 3.5,负责分类、摘要、轻量研究
  • 中阶层($1-5/MTok 输入):Claude Sonnet 4、GPT-4o Mini,承担代码审查、多步规划
  • 高端层($10+/MTok 输入):Claude Opus、GPT-4o,只留给复杂代码生成和高难度推理链

配置示例:

{
  agents: {
    defaults: {
      models: {
        "google/gemini-1.5-flash-latest": { alias: "Flash" },
        "anthropic/claude-3-5-sonnet-20241022": { alias: "Sonnet" },
        "anthropic/claude-opus-4-6": { alias: "Opus" }
      }
    }
  }
}

Cron 任务指定廉价模型:

Close-up of a modern digital sound interface screen displaying tuning, saturation, and filter settings.

{
  cron: {
    jobs: [
      {
        name: "daily-status-check",
        schedule: "0 9 * * *",
        model: "google/gemini-1.5-flash-latest",
        session: "isolated"
      }
    ]
  }
}

第二招:Heartbeat 调频 + 隔离会话,砍掉周期性浪费

OpenClaw 默认 Heartbeat 每 30 分钟跑一次(Anthropic 凭证为 1 小时),每次都会把完整对话历史发给模型。实测单次 Heartbeat 消耗约 100K Token,开启 isolatedSessionlightContext 后直接降到 2-5K。

核心配置三件套:

{
  agents: {
    defaults: {
      heartbeat: {
        every: "2h",
        isolatedSession: true,
        lightContext: true,
        skipWhenBusy: true
      }
    }
  }
}
  • every: "2h":根据任务敏感度调整,非实时场景 2 小时足够
  • isolatedSession: true:每次 Heartbeat 新建会话,不携带历史上下文
  • lightContext: true:只注入 HEARTBEAT.md,其余启动文件全部跳过
  • skipWhenBusy: true:子智能体或嵌套通道忙时自动延后,避免并发叠加

Detailed close-up of Dell EMC server logo on hardware grill with shallow focus and textured patterns.

第三招:Prompt Caching 配置,让系统提示词只付一次钱

OpenClaw 的系统提示词通常 1000-3000 Token,每轮都重复发送。Prompt Caching 的机制是把系统提示拆成「稳定前缀 + 易变后缀」,前缀只传一次后由平台缓存,后续请求复用缓存命中价(通常比原价低 50-90%)。

配置 cacheRetention 参数:

{
  agents: {
    defaults: {
      cacheRetention: "long"
    }
  }
}

可选值:none(关闭)、short(缓存几分钟)、long(缓存数小时)。Anthropic、OpenAI、Gemini、Bedrock、OpenRouter 均支持该机制(OpenClaw Docs, 2026)。

进阶技巧:用 roundTimestampMinutes 把时间戳圆整到 5 或 15 分钟,减少因时间微变导致的缓存失效。配合精简版系统提示词(去掉冗余人格描述和未启用工具的定义),能把系统提示词 Token 再压缩 30-50%。

第四招:会话压缩与 Compaction,自动瘦身上下文

当会话 Token 累积到阈值时,OpenClaw 的 Compaction 机制会把历史对话压缩成摘要,替代原始消息重新进入上下文。手动触发用 /compact,自动配置如下:

{
  session: {
    compaction: {
      enabled: true,
      thresholdTokens: 8000,
      model: "google/gemini-1.5-flash-latest",
      preserveIdentifiers: true
    }
  }
}

关键参数:

  • thresholdTokens: 8000:达到 8K Token 时自动触发压缩,阈值别设太高否则失去意义
  • model:压缩任务用廉价模型,Sonnet 压缩和 Flash 压缩出来的摘要质量差异不大
  • preserveIdentifiers: true:保留文件路径、变量名等关键标识符,避免压缩后代码相关上下文失效

第五招:Ollama 本地模型,零成本替代方案

对于 Heartbeat、简单问答、本地文件处理等场景,Ollama 本地部署是彻底消灭 Token 成本的路子。OpenClaw 原生支持 Ollama,配置后所有成本显示为 $0。

最小可运行配置:

# 安装并拉取模型
ollama pull gemma4

# 环境变量或 openclaw.json 配置
export OLLAMA_API_KEY="ollama-local"
{
  models: {
    providers: {
      ollama: {
        baseUrl: "http://127.0.0.1:11434",
        apiKey: "ollama-local"
      }
    }
  },
  agents: {
    defaults: {
      model: {
        primary: "ollama/gemma4"
      }
    }
  }
}

本地模型适合的场景:Heartbeat 检查、定时任务、不涉及复杂推理的代码片段生成。需要多步推理或长上下文时,还是切回云端模型更稳。

第六招:Embedding 本地化,砍掉隐性向量成本

很多用户只关注对话模型,忽略了 Embedding API 的消耗。OpenClaw 的记忆检索依赖 Embedding,如果默认走 OpenAI 的 text-embedding-3,每月记忆相关的 Token 也能积少成多。

把 Embedding 指向 Ollama 本地端点:

{
  agents: {
    defaults: {
      memorySearch: {
        provider: "ollama",
        remote: {
          baseUrl: "http://127.0.0.1:11434",
          apiKey: "ollama-local"
        }
      }
    }
  }
}

实测本地 Embedding 的检索质量在中文场景下与 OpenAI 差距不大,但成本从按量计费变成零。

第七招:账单监控 + 预算上限,防止反弹

优化完配置后,必须设硬上限防止意外暴涨。OpenClaw 支持通过 LiteLLM 代理层设置预算告警和请求限流,也可以在 provider 层配置 maxTokens 和并发限制。

{
  models: {
    providers: {
      anthropic: {
        maxTokens: 4096,
        concurrency: 2
      }
    }
  }
}

另外建议每周跑一次 session_status 检查各会话的 Token 进出明细,通常能发现一两个异常消耗点——比如某个 Cron 任务误用了 Opus,或者某个 Heartbeat 没开 isolatedSession

优化效果实测与优先级排序

按投入产出比排序,我的建议执行顺序:

  1. 模型分级(5 分钟,省 50%)—— 立竿见影,配置完立刻见效
  2. Heartbeat 调频 + 隔离会话(5 分钟,再省 15-20%)—— 周期性任务是大户
  3. Prompt Caching(10 分钟,省 10-15%)—— 平台层优化,无需改业务逻辑
  4. Ollama 本地模型(30 分钟,省 20-30%)—— 适合有本地机器或轻量 VPS 的用户
  5. 会话压缩(10 分钟,省 5-10%)—— 长会话用户收益明显
  6. Embedding 本地化(10 分钟,省 3-5%)—— 记忆检索频繁时值得做
  7. 账单监控(5 分钟,防反弹)—— 保险措施,必须做

全部落地后,我的个人账单从 2026 年 3 月的 $580 降到 5 月的 $18,中间没有减少使用频率,只是把 Token 花在了更合理的模型和配置上。如果你现在只做一个改动,去改 agents.defaults.heartbeat.isolatedSession——它只需要一行配置,回报远超预期。

OpenClaw Token 优化实战:7个亲测配置让月账单从$600降到$20 | 虾窝