OpenClaw Token成本优化实战:从600美元/月砍到20美元的7个亲测技巧

OpenClaw跑起来一个月烧掉几百美元API费用是常态。有用户24小时内烧了1.35亿Token,结果实例自己忘了配置,整晚在自言自语——这就是默认安装不加监控的真实形状。
好消息是:这些成本几乎都是机械消耗,不是必须花的。我自己从月耗600美元压到20美元左右,核心思路就一条——不要让Claude Opus去帮你查邮箱。
下面这7个技巧,按投入产出比排序,照着做就能复现。
一、模型分级:把Opus从日常任务里撤下来

OpenClaw默认所有请求都走你设的主模型。心跳检查用Opus,日历查个日程用Opus,子代理并行干活也全用Opus。用Opus做心跳,相当于雇律师帮你查邮箱。
我的分级策略很简单:
- 复杂推理(架构决策、多文件重构):Opus、GPT-5.2
- 日常干活(代码生成、研究、内容创作):Sonnet、DeepSeek R1(R1比Opus便宜90%,推理能力接近)
- 简单任务(心跳、快速查询、分类):Gemini 2.5 Flash-Lite($0.50/M tokens)、DeepSeek V3.2($0.53/M)
价格对比很直观:Gemini Flash-Lite是Opus($30/M)的60分之一。把心跳和子代理从Opus切到Flash-Lite,这两项 alone 就能砍掉一半以上费用。
配置方法:在~/.openclaw/openclaw.json里给不同任务指定模型。心跳模型单独设,子代理走中档模型,主任务保留Opus。也可以用OpenRouter的自动路由——把模型设为openrouter/openrouter/auto,它会按提示复杂度自动分配。
二、Fallback链:避免单点故障+隐性浪费

只设一个模型的问题不只是贵——一旦触发限流或宕机,OpenClaw会疯狂重试,账单跟着疯涨。
OpenClaw的Fallback机制分两层:先在同一服务商内轮换Auth Profile,再按agents.defaults.model.fallbacks链切到下一个模型。如果当前运行已经落在配置好的Fallback上,且仍在同一家服务商,会继续走完完整配置链。
我的Fallback链配置:
{
"agents": {
"defaults": {
"model": {
"provider": "anthropic",
"model": "claude-opus-4-5",
"fallbacks": [
{ "provider": "openai", "model": "gpt-5-2" },
{ "provider": "deepseek", "model": "deepseek-r1" },
{ "provider": "google", "model": "gemini-3-pro" }
]
}
}
}
}
关键细节:第一个Fallback故意选不同服务商(OpenAI),这样Anthropic全家桶限流时不会连环撞墙。如果所有候选都失败,OpenClaw会抛出FallbackSummaryError并附带每次尝试的详情,方便你排查。

三、Heartbeat调频+降级:别让心跳变成心跳刺客
默认心跳间隔30分钟,一天48次,每次带着完整的System Prompt + 上下文 + 工具定义去调用API。如果主模型是Opus,这一项一天就能烧掉不少钱。
我的做法:
- 间隔调到1小时(非关键代理甚至可以2小时)。调用次数直接从48次/天降到24次或更低。
- 心跳模型锁定廉价档:Gemini 2.5 Flash-Lite或DeepSeek V3.2。心跳内容大多是「检查下有没有新任务」,不需要推理能力。
- 配合Cache TTL:如果Cache TTL是1小时,把心跳间隔设在55分钟左右,刚好在Cache过期前触发,避免重新缓存完整Prompt。
实测:心跳频率从15分钟调到45分钟,调用次数减少67%,配合模型降级,心跳相关Token消耗下降70%以上。
四、System Prompt精简:每次请求都在重复的固定开销

OpenClaw每次运行都会组装System Prompt,内容包括:工具列表、Skills列表、自更新指令、工作区文件(AGENTS.md、SOUL.md、TOOLS.md、MEMORY.md等)、时间信息、运行时元数据。这些文件越大,每次API请求的固定开销越高。
官方文档给了几个硬上限:
agents.defaults.bootstrapMaxChars:单个大文件注入上限,默认20000字符agents.defaults.bootstrapTotalMaxChars:所有引导文件注入总上限,默认60000字符
我的优化动作:

- MEMORY.md控制在80行以内。这个文件每次回合都被重新注入,体积会复利增长。
- Skills描述尽量短,只保留必要字段。
- 定期用
/context detail检查有没有 creep 进来的工具、Skills或工作区文件。 - 截图分辨率调低:
agents.defaults.imageMaxDimensionPx降低,能减少Vision Token消耗。
一个实测案例:System Prompt从约5000字(2500 tokens/次)精简到1800字(900 tokens/次),单次省1600 tokens。按每天100次调用算,月度省240万tokens,总费用再降5-10%。
五、本地模型集成:80%的请求可以零API成本
简单任务(文本格式化、基础翻译、代码片段生成)完全不需要调用云端API。OpenClaw通过LiteLLM可以无缝接入Ollama本地模型。

我的配置:
{
"models": {
"defaults": {
"provider": "ollama",
"model": "llama3.2"
},
"fallbacks": [
{ "provider": "anthropic", "model": "claude-haiku" },
{ "provider": "anthropic", "model": "claude-sonnet" }
]
}
}
效果:约80%的请求走本地模型,零API成本;剩下20%按复杂度自动Fallback到最划算的云端模型。整体API费用再砍一大截。
注意:本地模型别用来干重活,但格式化JSON、整理日志、简单分类这种活儿,Llama 3.2足够胜任。

六、Cache TTL优化:让Prompt缓存替你省钱
OpenClaw支持Prompt缓存,但缓存只在TTL窗口内有效。窗口一过,完整上下文要重新发送,费用瞬间回升。
策略:
- 把Cache TTL设成和心跳间隔匹配。如果TTL是1小时,心跳设55分钟,保持缓存温热。
- 用
agents.list[].params.cacheRetention给不同代理单独调TTL。高频交互代理给长TTL,低频代理给短TTL。 - 长会话定期
/compact总结,减少上下文膨胀。但注意:compaction会丢细节,真正重要的信息提前写进MEMORY.md。
LiteLLM代理层也能做缓存,减少重复上下文的重新发送。适合多代理协作场景,上下文 duplication 严重时效果最明显。
七、消耗监控+预算软限制:先看见,才能控制
OpenClaw没有原生硬消费上限,但监控和软限制足够防止「一夜之间烧光预算」的惨剧。
常用命令:
/status:看当前会话模型、上下文占用、上次请求输入/输出Token数、预估费用/usage full:每轮回复末尾追加用量页脚/usage cost:从会话日志生成本地费用汇总- CLI:
openclaw status --usage和openclaw channels list查看配额窗口
我的监控脚本逻辑:定时跑session_status,Token增速异常时发告警。配合「任务消费上限+人工确认重试」,防止失败工具调用无限循环。
一个真实案例:某用户实例失控,112M tokens/天;做完上述优化后降到17M tokens/天,降幅85%。
优化顺序建议
如果你只有5分钟:切主模型从Opus到Sonnet,省50-70%。
如果你有30分钟:加上模型分级、Heartbeat降级、Fallback链配置。
如果你愿意折腾一小时:本地Ollama接入、System Prompt精简、Cache TTL调优、监控脚本部署。做完这套,月耗从600美元压到20-50美元是合理预期。
费用最终取决于你的工作负载结构——自动化调度重的场景省得最多,纯交互式会话省得相对少。但无论如何,默认配置是为最大能力设计的,不是为最小成本。每多了解一个Token的去向,就多一个省钱抓手。
最后更新:2026年6月