OpenClaw 如何优化 Token 消耗
在进行 OpenClaw 对话或训练技能时,每次运行都消耗大量 token,肉疼。如何才能降低 token 消耗呢,首推使用本地运行的模型(无token消耗),如果坚持使用外部大模型,则通过如下设置可以显著降低对 token 的消耗。
附:如下配置基于 OpenClaw 2026.3.13 版本,其他版本则命令可能会有变化,若报错请参考 官方文档
PS C:\Users\Administrator> openclaw --version
OpenClaw 2026.3.13 (61d171a)
针对当前会话 [即刻生效]
- 针对不同的场景,直接在 OpenClaw 聊天框里发送如下命令(主要通过 /new 或 /reset 新开对话,避免历史累积)可以显著降低 Token 消耗。
| 命令 | 作用 | 适用场景 |
|---|---|---|
| /compact | 压缩当前会话上下文 | 当前话题还要继续,尽量保留关键信息,不用保留所有细节 |
| /reset | 重置当前会话的短期上下文 | 接下来要聊完全不同的事情,但又不想清空所有历史记忆,会话ID不变 |
| /new | 开启一段全新的对话 | 接下来要聊完全不同的事情,不希望任何历史上下文干扰当前的问题,会话ID会变 |
闭眼配 [即刻生效]
- 第1步,精简 Workspace 文件(立刻见效),比如
AGENTS.md/SOUL.md/TOOLS.md都是消耗token的大户,可以直接对 AI 说:帮我压缩 Workspace 文件,保留核心功能,删除冗余规则
长期有效 [重启生效]
- 第1步,针对不同的模型,限制上下文长度
#.示例针对 qwen-portal 模型
openclaw config set models.providers.qwen-portal.models[0].contextWindow 128000
openclaw config set models.providers.qwen-portal.models[0].maxTokens 8192
#.确认配置
openclaw config get models.providers
- 第2步,启用上下文自动压缩,将阈值调低则可以让压缩更早触发
#.设置压缩模式,默认safeguard(仅上限时压缩),default(按阈值主动压缩)
#.以下是基于 128K 上下文的推荐配置(Qwen Coder 系列模型的上下文窗口通常为 32K-128K)
openclaw config set agents.defaults.compaction.mode default
openclaw config set agents.defaults.compaction.reserveTokens 100000
openclaw config set agents.defaults.compaction.keepRecentTokens 30000
openclaw config set agents.defaults.compaction.reserveTokensFloor 20000
openclaw config set agents.defaults.compaction.memoryFlush.enabled true
openclaw config set agents.defaults.compaction.memoryFlush.softThresholdTokens 70000
#.确认配置
openclaw config get agents.defaults.compaction
- 第3步,开启缓存并配置会话剪枝(相同查询不重复调用,大幅减少重复Token消耗)
#.先开启缓存再配置会话剪枝
openclaw config set agents.defaults.contextPruning.mode "cache-ttl"
openclaw config set agents.defaults.contextPruning.ttl "1h"
openclaw config set agents.defaults.contextPruning.keepLastAssistants 3
openclaw config set agents.defaults.contextPruning.softTrimRatio 0.3
openclaw config set agents.defaults.contextPruning.hardClearRatio 0.5
openclaw config set agents.defaults.contextPruning.minPrunableToolChars 50000
#.确认配置
openclaw config get agents.defaults.contextPruning
- 第4步,只加载必要技能(默认会自动加载 53 个内置技能),示例只允许加载 skill-vetter、self-improving-agent等技能(请根据实际场景调整)
#.查看当前所有技能
openclaw skills list
#.设置允许加载的skills列表(数组形式)
openclaw config set skills.allowBundled '[]'
openclaw config set skills.allowBundled[0] skill-vetter
openclaw config set skills.allowBundled[1] self-improving-agent
openclaw config set skills.allowBundled[2] ontology
openclaw config set skills.allowBundled[3] summarize
#.确认配置
openclaw config get skills.allowBundled
- 第5步,只加载必要的插件(亦可取消 plugins.allow is empty; 这个提示),示例只允许加载 钉钉、千问等插件(请根据实际场景调整)
注:白名单内的插件须已安装,否则会报错 plugin not found
#.查看已安装的插件
openclaw plugins list
#.设置允许加载的plugins列表(数组形式)
openclaw config set plugins.allow '[]'
openclaw config set plugins.allow[0] dingtalk
openclaw config set plugins.allow[1] qwen-portal-auth
#.确认配置
openclaw config get plugins.allow
- 第6步,只加载必要的工具,避免 Token 用于无意义的重复校验,示例只允许加载 session_status、browser等工具(请根据实际场景调整)
#.调整工具权限
openclaw config set tools.profile minimal
#.设置允许加载的tools列表(数组形式)
openclaw config set tools.allow '[]'
openclaw config set tools.allow[0] session_status
openclaw config set tools.allow[1] browser
#.确认配置
openclaw config get tools.profile
openclaw config get tools.allow
- 第7步,精简系统提示词,减少对输入 token 的消耗
- 第8步,启用 QMD 记忆系统,不再把整个
MEMORY.md塞进上下文,只提取最相关的几句话(过滤掉 90% 以上无关信息)
#.先安装 qmd
npm install -g https://github.com/tobi/qmd
qmd --version
#.再安装 sqlite3
$ProgressPreference = 'SilentlyContinue'
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser -Force
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass -Force
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
Invoke-WebRequest -Uri "https://www.sqlite.org/2026/sqlite-tools-win-x64-3510300.zip" -OutFile "sqlite-tools-win-x64-3510300.zip"
unzip .\sqlite-tools-win-x64-3510300.zip
mv .\sqlite3.exe c:\windows\system32\
sqlite3 --version
#.配置 OpenClaw
openclaw config set memory.backend "qmd"
openclaw config set memory.citations "auto"
openclaw config set memory.qmd.command "qmd"
openclaw config set memory.qmd.update.interval "5m"
openclaw config set memory.qmd.update.onBoot true
openclaw config set memory.qmd.limits.maxResults 6
openclaw config set memory.qmd.limits.timeoutMs 8000
openclaw config set memory.qmd.scope.default "allow"
#.重启服务使配置生效
openclaw gateway restart
openclaw doctor
- 第9步,选择更便宜的模型,不同模型的 Token 单价差异巨大,比如 GPT-3.5 Turbo 比 GPT-5.4 便宜约 5-10 倍
#.查看当前模型配置
openclaw config get models
- 最后一步,重启网关服务使配置生效
#.重启服务使配置生效
openclaw gateway restart
openclaw doctor
