乐于分享
好东西不私藏

30+条 OpenClaw 省钱秘籍:拯救我的钱包

30+条 OpenClaw 省钱秘籍:拯救我的钱包

我每天消耗的 token 降到了 每天1 个亿

作为典型的 Token 杀手:用的越多,越想省钱的心越多。

有时间的从表格开始逐条对照,按条目检查还有哪些办法省点钱

内容长、干货多,建议先收藏。

省钱总览:三板斧(开源、节流、对账单)

序号
你要做什么
价值
1
任务分流
用便宜量大的模型跑腿,聪明模型攻坚
2
看上下文
上下文越胖,每次对话越贵
3
针对账单
找到“最大漏水点”,别瞎省

总览 1:开源:先把“单价”打下来

编号
一句话技巧
1.1
包月/套餐:用量大就降单位成本
1.2
渠道:咸鱼淘宝小红书,上车反重力
1.3
代理分工:专业的交给专业的人,别牛刀杀鸡
1.4
模型分类:分工不同,价格不同
1.5

输入输出约束:约束自己,也约束模型

总览 2:减少调用次数:少触发、少交互、少试错

编号
减少模型交互
2.1
少触发模型: slash 就别用文本
2.2
本地命令替代:0 token 干活
2.3
Skill 包装:把需求变成流程(不追问少试错)
2.4
Skill 减量:通用 Skill 10-15 个,专用需要再加
2.5
Bootstrap 注入精简与限制:系统提示词越长越贵
2.6
利用引用,提高 Cache 命中,减少费用
2.7
去掉 typingIndicator 和 reaction

总览 3:上下文窗口管理:让每次交互更便宜

编号
减少单次交互费用
2.8
contextWindow:设上限,别一次喂太多
2.9
maxTokens:设输出上限,别让模型写没完
2.10
contextTokens:控制预算阈值,避免爆表
2.11
bootstrapMaxChars:启动注入精简
2.12
contextPruning:裁掉无关历史,但别裁掉重点
2.13
compaction 自动压缩上下文:把旧对话浓缩成摘要
2.14
skills.entries:不常用就关
2.15
thinkingDefault:默认别“想太多”
2.16
/new 创建新会话
/reset:重置下文
2.17
subagent 减少上下文
2.18
去掉 typingIndicator 和 reaction

总览 4:关掉后台自动化(别让钱花在看不见的地方

编号
一句话
2.19
heartbeat:不用就关/降频,别后台叫你
2.20
cron:不用就关,按需手动跑
2.21
self-improvement:等系统更新
2.22
proactive-solvr:减少主动性

提醒:迭代很快,不同版本/不同插件环境下命令可能略有差异。多让Openclaw自己来。

开源:先把“单价”打下来

1.1 包月/套餐:用量大就降单位成本

没用openclaw之前调用量小,直接调用API,Openclaw上了之后一不注意,一天200块。豆包、Kimi、硅基流动,整体上来讲都是贵到受不了。

之后用上了Coding Plan方案,主要面向Coding,但实际日常也一样。

Coding Plan 不是真正包月的,都是按时间段、按周、按月限制调用。 

提醒:目前市场上的Coding Plan 具体的Token限制没有一个说清楚的,建议先买一个月试试。

公司
优劣

阿里百炼Code Plan

1. 千问、GLM、Kimi 、MiniMax 都支持
2. 支持图片
一周可以用完一个月的量。高级套餐200比较贵。

Kimi Code

1. 效果可以
一天可以用完一个月的量。 199套餐不如上阿里。

Minimax Code Plan

1. 量大,没有出发过rate limit
98的highspeed 和 49的Plus都够用。

作为日常使用minimax code plan确实够用,价格也不错。


1.2 渠道:咸鱼淘宝小红书,上车反重力

国产的这些模型在用过,gpt、opus之后,会觉得还是太弱了一些。

强烈建议至少有一个最小的gpt/opus方案,来拯救危局。

这时候很可能淘宝,小红书,小黄鱼才是省钱最大的神器。这个生意主要就是找人分担家庭账号,或者企业账号的费用,也是个很好的生意。

和KimiCode、阿里百炼相比,我认为非常有性价比。但也许也注意风险,同样大多的套餐还是有限额的,务必保有一个Minimax作为最后的保障。


1.3 模型分类:分工不同,价格不同

因为很多服务商不光限制token, 也限制总费用,费用也是限制条件之一。不同的模型价格差异很大,GTP-5.4是GTP-5 Mini的10倍价格。

整理清单、改格式、搬运内容、日常定时任务这些跑腿的事,用便宜量大模型。高质量书写、编码、推理攻坚才用聪明模型。


1.4 代理分工:专业的交给专业的人,别牛刀杀鸡

模型代表能力,但对openclaw来说agent(代理、数字人)才是干活的人关键。

就像理发店里面有学徒、首席、总监,我们需要根据出活效果要求让不同的大模型干活。

可以简单分类:固定三类岗位:

  • 跑腿:抽取、去重、改格式、拉清单
  • 写作:出大纲、改稿、脚本化表达
  • 攻坚:难题推理、关键决策、复杂排错

不同的agent只处理自己的上下文,保证上下文窗口信息有效,钱花在刀刃上。

尽量信息减少遗忘,保证花的钱没有白花。。

不同的agent,配合不同的模型,不用人为反复切换模型反复消耗token。

拿我自己的举例:


1.5 输入输出约束:约束自己,也约束模型

Chatgpt的时候,我更多是和大模型闲聊,用户输入的内容有限,我们各种办法增加prompt以提高效能。

Openclaw prompt面临的是爆炸问题,看下面图,就能发现Prompt占据了费用支持出的99.9%。

所有省钱办法都只一个目的:更少的Input 更多的有效 Output.

老板话要少,你要活干好。

一定要清楚表达自己的需求,这样干出来的活才会更符合预期。对很多人来讲,要自己把自己要什么先想清楚,我先聊聊再看这种想法就是在燃烧费用。

如果完全没有想法,建议用最便宜的模型,或者直接用chatgpt这种免费的。

想要让Openclaw少花钱,办大事,还是要遵守规则:

一次性把事情交代清楚,不要来回反复追问。

给Openclaw足够的授权,不要因为授权反复沟通。

增加对产出物定性、定量的描述,确保不要闲聊式输出。

明确什么是不要的,明确注意事项。


减少调用次数:少触发、少交互、少试错

2.1 少触发模型:能 slash 就别用文本

习惯了chatgpt什么都可以回答,我们总是直接把想法告诉Openclaw。

我们会Openclaw各种问题,“openclaw 当前状态",”你现在用的是什么模型“,”你...."。

这个问题,openclaw会调用23次工具, Input: 23.4k tokens  Output: 1.8k tokens。

但是openclaw 和 各种 channels 都有自己内置的 slash command, 可以在大模型解释之前就完成命令的执行。不调用大模型,自然不用有花费。

更多信息看这个:https://docs.openclaw.ai/tools/slash-commands


2.2 本地命令/bash

同/slash command , 在openclaw作为助手,对文件的操作管理,对操作系统管理也是高频操作。

这些很确定的工作,我们不希望也不需要 AI来花钱完成。

比如:

  • 查文件:lscat、tree
  • 搜内容:grepfind、sed、awk、
  • 跑脚本:./xxx.sh
# 直接执行,不经过 AI!ls -la ~/writer/# 用 grep 搜文件!grep -r  "省钱"  ~/writer/

如果让这些读写操作让AI进行,那么这些内容都会进入prompt,都会成为花钱才能看到的东西。

配置:你可以直接让openclaw给你配置。

//openclaw.json{  "commands": {    "bash": true  //允许bash 命令  }, "tools": {    "elevated": {      "enabled": true,   //允许提权      "allowFrom": {        "feishu": [           "ou_xxx"  //哪些飞书账号可用        ]      }   }}
// exec-approvals.json{  "defaults": {    "security": "full",    "ask": "off",      //不问你要确认    "askFallback": "full",    "autoAllowSkills": true  },  "agents": {    "*": {      "allowlist": [        {          "pattern": "/usr/bin/ls"   //所有飞书用可执行        }      ]     "main": {       "allowlist":[          "pattern": "/usr/bin/rm"  //只有main agent能执行        ]     }   }}

2.3 Skill 包装:把日常需求变成流程(不追问少试错)

我们会有一些日常工作,第一次做的时候要花学习很长时间。

比如想通过家里里的音箱播放新闻摘要,有几件事要做:

查找新闻,生成播放的摘要(有字数、内容、风格要求等)找到可用的音响(网络搜索、接口识别、可用性测试等)生成音频文件(可用模型、内容位置、声音风格等)音乐传输播放(音量、接口调用等)

对于openclaw,它第一次面对这些问题的时候,很多信息需要和我们确认,设备也查找,各种信息需要与我们进行打合。这个过程是非常复杂,非常消耗token的过程。

当第一次成功完成这个动作之后,我们需要让openclaw记下设备配置,记下内容选择、记下我们喜好。

只要是有可能重复的操作,就让openclaw创建专用的skills, 下次再执行的时候skills会调用本的scripts来完成这个动作,只有项摘要生成这个行为还高度依赖于模型,至少可以节省80%的token消费。

这种场景非常常见,比如:

//常见场景访问共享文件      //大量的输入输出打印文件          //设备的管理使用本地数据库    //数据获取操作Excel/文本    //调用现有的专用工具完成        管理下载工具      //调用接口,授权鉴权管理docker        //健全与日常查询新闻收集          //重复动作
//创建SKILL过程你可以先和openclaw互动,让他自行学习。使用这些功能,如果不能成功就让他去官网学习后再尝试,直接成功。最后让openclaw根据刚才的过程,总结经验,创建新的SKILL即可。

举两个例子:

属性
名称
home-broadcast
用途
通过 DLNA/UPnP 向家庭音箱/电视/回音壁推送 TTS 语音播报
场景

全屋播报、TTS播报、通过小爱音箱播报、通过回音壁播报

属性
名称
home-network
用途
家庭网络设备管理、监控、路由器配置、网络拓扑发现
场景

设备列表查询、在线状态、路由器管理、网络流量、异常检测、局域网扫描

属性
名称
home-services
用途
NAS 服务管理(媒体、下载、云存储等)        

场景

Emby、MoviePilot、Nextcloud、Calibre-Web、Audiobookshelf、Pinchflat、Portainer 管理

将再次使用这些功能时,我们可以观察到大模型主要的参与是识别要使用哪个SKILL, 之后本地执行了,最后根据本地的输入摘要成结果。大模型的参与度极大地降低了Token的消耗。

2.4 Skill 减量:通用 Skill 5-10 个,不加载专业 Skill

创建SKILL太容易了,ClawHub市场中的SKILL快速到了22000+。

但就,但你真用的永远就那几个。

OpenClaw 读取的 Skills 路径:├── 1~/.npm-global/lib/node_modules/openclaw/skills/  (内置 Skills)├── 2~/.openclaw/skills/  (共享skills)└── 3. {workspaceDir}/skills/  (agent 专用skills)

做的三件事,都是为了省几个Token:

1. 不要动内置的Skill: 禁用不用的, 比如linux不能用mac的SKILL

2. 减少共享skill: 只放共用的比如clawlist, search, memory等

3. 明确专用Skill: 只有自己用的,或者对共享的skill进行了调整的

2.5 精简启动注入:系统提示词越长越贵

每个agent、subagent的session启动,都会读取agent的配置文件。

agent配置文件务必大幅简化。

建议除了USER.md和IDentity.md之外,都先清空,边用边补充。

可以让openclaw定期总结经验,自行补充,再做调整。

怎么样衡量文字减少了,Token影响有多大:

/context listAGENTS.md: OK | raw 0 chars (~0 tok) | injected 0 chars (~0 tok)SOUL.md: OK | raw 370 chars (~93 tok) | injected 370 chars (~93 tok)TOOLS.md: OK | raw 916 chars (~229 tok) | injected 916 chars (~229 tok)IDENTITY.md: OK | raw 298 chars (~75 tok) | injected 298 chars (~75 tok)USER.md: OK | raw 351 chars (~88 tok) | injected 351 chars (~88 tok)HEARTBEAT.md: OK | raw 167 chars (~42 tok) | injected 167 chars (~42 tok)BOOTSTRAP.md: OK | raw 0 chars (~0 tok) | injected 0 chars (~0 tok)MEMORY.md: OK | raw 979 chars (~245 tok) | injected 979 chars (~245 tok)

Tips: 

1. IDENTITY.md:直接找与这个agent定位最一致的名人。

2. USER.md : 对你甲方爸爸的描述,不需要任何情绪化的描述。

写完之后让openclaw再给你优化一次,删除那些没有用的干扰。

2.6 利用引用,提高 Cache 命中,减少费用

Cached Input 的 价格是 Input 价格的10%, 能提高Cache命中率就能大幅减少成本。

统计信息来看,目前的近70%的cache命中率。说明两个问题:

1. openclaw真的大量重复的prompt输入    :-(

2. 目前的重复输入,大多都触发了cache      :-)

70%的命中率是非常高的水平, 如何提高 Cached hit Rate? 

1. 每个不同的话题,用不同的session。

2. 利用subagent, threadSession。 

3. 裁剪不需要的上下文。

核心就是contextWindow的说明。


上下文窗口管理:让每次交互更便宜

上面我们关注的是如何减少交互来减少Token。

而上下文窗口管理(contextWindow)则聚焦在每一次交互如何减少费用。

影响上下文窗口的有模型、全局的agent配置、单一agent/session配置。

模型可配置项

{    id'MiniMax-M2.5-highspeed',    name'faster',    api'anthropic-messages',    reasoningtrue,            // 是否支持 thinking    input: [                    // 支持的输入类型         'text',    ],    cost: {                     // 价格配置       input4.2,       output16.8,       cacheRead0.21,       cacheWrite2.625,    },  "contextWindow"200000,     // 模型上下文上限  "maxTokens"32768,           // 模型输出上限     }

2.8 contextWindow:输入上限,别一次喂太多

模型硬限制,是指模型本身支持的最大上下文 tokens 数。

配置文件中只是声明。

设置低有作用,设置高无意义。

如果真的输入大于模型的contextWindow会报错。


2.9 maxTokens:设输出上限,别让模型写没完

模型硬限制,输出限制,单次回复最大生成 tokens 数。

从输入输出的比例,就可以看出输出的难度。


Agent全局参数

这些参数无法针对某一个agent进行修改。

  agents: {    defaults: {      models: {         bootstrapMaxChars: 20000,         bootstrapTotalMaxChars: 150000,         contextTokens: 200000,         contextPruning: {    //定期清理工具输出,释放空间           mode: 'cache-ttl',  //工具输出缓存超时清理           ttl: '30m',          //工具输出保留30分钟后移除           tools: {            allow: [            //只有这两个工具的输出会被缓存              'exec',              'read',            ],            },          },          compaction: {            mode: 'safeguard',                 reserveTokensFloor: 30000            memoryFlush: {         //接近阈值时强制刷出内存到文件              enabled: true,              softThresholdTokens: 10000,            },         }         thinkingDefault: 'medium',  //low:~4k medium:~8k token         verboseDefault: 'off',      //on 工具输出占用token       }     }   }

如何查看当前加载的所有的内容对上下文的影响:

/context detailoutput: Bootstrap max/file: 20,000 chars Bootstrap max/total: 150,000 charsSystem prompt (run)47,639 chars (11,910 tok) (Project Context 16,254 chars (4,064 tok))Injected workspace files: - AGENTS.md: OK | raw 505 chars (127 tok) | injected 505 chars (127 tok)Skills list (system prompt text)18,003 chars (4,501 tok) (50 skills)Tool list (system prompt text)3,771 chars (943 tok)Session tokens (cached)105,097 total / ctx=200000
类型
配置项
影响
初始加载
bootstrapMaxChars/Total
会话启动时的初始上下文大小
上限
contextTokens
整个会话的上下文天花板
清理
contextPruning
运行中定期释放旧工具输出
保护
reserveTokensFloor
强制保留空间给系统
触发压缩
softThresholdTokens
空间不足时触发压缩
动态开销
thinkingDefault, verboseDefault
运行时的动态开销

2.10 如可计算可用的会话空间

可用会话空间 = min(contextTokens, contextWindow)            - bootstrapCharsTotal_token  //启动被占用 12k            - skill + tools + 实际已使用            - softThresholdTokens        //压缩触发阈值             - reserveTokensFloor         //预留占用            - thinking_tokens            //4-8k            - verbose_tools_tokens       //按实际

2.11 bootstrapTotalMaxChars

BOOTSTRAP.md文件在会话启动时一次性加载,占用初始上下文空间。

AGENTS.md 等文件受 bootstrapTotalMaxChars 限制。


2.12 contextPruning:裁掉无关历史,但别裁掉重点

主是针对工作使用过程中的输入输出内容的清理。

这部分内容实际占比非常高,要在会话完成后尽快处理。

基本都是search、cat、find、ls等产生的过程信息。

如果没有长时间任各,可以尽一步缩短ttl的时间限制。


2.13 compaction 自动压缩上下文:把旧对话浓缩成摘要

compactoin主要针对人就实际会话过程的内容。

该过程是自动化的,会有提示告诉。如果压缩在同一任务过程反复发生,说明:

1. min(contextTokens, contextWindow)太小了。

2. reserveTokensFloor + softThresholdTokens太大了。

需要注意 /compact 是一个slash command,可以手动执行的。 

2.14 skills.entries:不常用就关

禁用skills:

// ~/.openclaw/openclaw.json"skills": {  "entries": {    "apple-notes": { "enabled": false },    "model-usage": { "enabled": false }  }}

迁移skill到特定agent:

//迁移专用skills 到 agent workDir skills 目录。!mv .openclaw/skills/{skillname} {workDir}/skills/

2.15 thinkingDefault:默认别“想太多”

thinking 有是控制 完整工具输入/输出 和 推理过程。会占用多的token。

提示:v2026.3.8 之前参数只有off, low, medium, high

目前的版本增加了:minimal, adaptive,要不试试adaptive。

还是期望可以针对agent设置独立的thinking模式。

/thinking adaptive  也是slash command, 可以在任可agent里面手动调整当前思考模式。

Agent会话级参数

会话生命周期管理, 15天没有访问过的会话可以清理掉,对话超过500条掉消息被截断。每天4点会对会话重置,8 小时无操作当前会话历史清空。

 "session": {    "dmScope": "per-account-channel-peer",  //尽可能细化的session    "reset": {      "mode": "daily",                "atHour": 4,              //每天4点清理      "idleMinutes": 480        //8小时未活跃    },    "maintenance": {      "mode": "warn",      "pruneAfter": "15d",             //标记为可清理      "maxEntries": 500,               //500条对话的会话      "rotateBytes": "50mb"    }  }

清理方式差异对比:

术语
含义
作用对象
数据状态
清理 (prune)
删除会话记录
历史会话文件
从磁盘删除
清空 (reset)
删除对话历史
当前会话内存
内存释放
懒清空 (idle reset)
闲置后清空
当前会话内存
空闲超时触发
截断 (truncate)
删除部分旧消息
当前会话内容
保留最新500条

2.16 /new &  /reset:手动切换上下文

与系统配置对应的手动清理会话的方法:

/new 保存当前会话到磁盘,重新创建新的会话,重新加载system prompt/reset 删除当前会话内容,只保留system prompt/session 当前会话/sessions_list 查看当前agent所有的会话

在一个agent里面,一个项目或者一个主题结束切换时,可以/new构建一个清的干净会话。

reset也支持按类型重置,比如按群、私聊、会话来进行重置。

如果只是一个家庭使用,为了保持会话的连续,不建议自动清除,手动维护就好。

"resetByType": {  "direct": { "mode": "idle", "idleMinutes": 480 },  // 私聊 8小时idle清理  "dm": { "mode": "daily", "atHour": 4 },            // DM 每天4点清理  "group": { "mode": "idle", "idleMinutes": 120 },  // 群聊 2小时idle清理  "thread": { "enabled": false }                     // 线程不清理}

2.17 subagent 减少上下文

依然是基于专业的从专业的人做专业的事的角度,请subagent基于当前的workspace,创建新的session会话来处理任务。减少干扰,保持聚焦。


2.18 去掉 typingIndicator 和 reaction

去掉 typingIndicator:别让系统“多动一下”

// ~/.openclaw/openclaw.json"channels": {  "feishu": {    "typingIndicator": false,     //减少交互    "threadSession": true,    "footer": { "elapsed": true }    }}

关掉后台自动化:别让钱花在看不见的地方

2.19 heartbeat:不用就关/降频,别后台叫你

为每一个agent设置heartbeat, 更需要调整频率。

// ~/.openclaw/openclaw.json{ "id": "main", "heartbeat": { "every": "6h" } }

2.20 cron:关掉之后,可以按需手动跑

定时任务对资源的消耗其实也很大,没有必要的可以关掉。

尽量让cron行为脚本化,skill化。

指定特定模型运行cron任务。


2.21 self-improvement:等系统更新

让这些功能只跑在包月套餐里面。

所有的改动必须要经过同意,很容易崩溃。


2.22 proactive-solvr:减少主动性

主动性越强,token;没明确收益就先收着。

小龙虾们,聊“省”,影响了一些体验。

下次聊一下“快”。