1. 引言:OpenClaw 的“吞金”之痛 OpenClaw 无疑是当前最强大的 AI Agent 框架之一,它让开发者能够构建出真正自主的智能体。然而,几乎所有深度用户都面临两个核心痛点 :
失忆 :长对话中,关键信息被内置的压缩机制随机丢弃,任务执行到一半就偏离目标,Agent 的行为发生退化。
吞金 :默认的滑动窗口压缩机制虽然试图控制上下文长度,但往往导致上下文冗余,Token 消耗剧增。
更糟糕的是,这两个问题会形成恶性循环:脏上下文导致高 Token 消耗,为了省钱被迫降低模型规格,结果 Agent 表现更差,用户体验直线下滑。
转折点出现在 2026.3.7 版本 ——OpenClaw 引入了上下文引擎的插件架构,为社区贡献者打开了优化的大门。而 2026.3.13 紧急修复版本 进一步修复了压缩一致性、记忆文件重复注入等关键问题 。
本文基于 OpenClaw 2026.3.13 最新版本 ,从配置调优、记忆系统、上下文管理三个层面,提供一套完整的、可落地的降本增效方案。
2. 原因剖析:Token 都花在了哪里? 在动手优化之前,先要理解钱到底花在了哪儿。每次你与 OpenClaw 对话,发送给模型的远不止你的问题,而是一个完整的工作包:
组成部分
说明
系统提示词
给 AI 的”员工手册”
Workspace 文件
AGENTS.md、TOOLS.md、MEMORY.md 等配置文件
对话历史
越聊越长,产生雪球效应
工具输出
执行命令的 stdout/stderr、抓取的网页内容
你的问题
这才是你真正想问的
Token 消耗的底层逻辑可以用一个公式来概括 :Token 消耗 = (输入 + 输出) × 调用次数 × 模型价格 其中输入才是真正的大头 。OpenClaw 的设计哲学是从无状态到有状态的转变,为了让 Agent 记住一切,框架每次都会默认将完整对话历史发送出去。一次请求的输入可能就有 2-3 万 tokens,聊了 10 轮就是 20-30 万 。
好消息是:2026.3.13 版本修复了多个与 Token 消耗相关的核心问题 :
压缩后的会话 token 计数不准确 → 已修复,可开启 postCompactionCheck
大小写不敏感挂载上记忆文件被注入两次 → 已修复
会话重置提示触发 Azure 内容过滤器 → 已优化
3. 架构级优化:引入分层路由思路 3.1 传统方案的局限 将不同职能拆分到独立 Agent(多智能体架构)虽然能实现上下文隔离,但系统复杂度急剧增加,且主控 Agent 的意图识别本身也在消耗 Token。
3.2 分层路由的核心思想 Viking 分层路由系统的思路值得借鉴:在调用昂贵的主模型之前,先用一个极轻量的模型做意图识别,判断用户到底想干什么,然后只加载与之相关的工具、技能和上下文片段。
如何借鉴 :即使不 fork 项目,你也可以手动精简 AGENTS.md 等引导文件,移除对终端用户无用的开发规范、不常用技能的详细说明,从源头减少基础提示词的长度。
4. 配置级优化:精细化管理上下文 4.1 利用新版压缩修复 2026.3.13 修复了压缩后会话 token 计数不准的问题,建议开启完整性检查 :
1 2 3 4 5 6 7 8 9 10 { "agents" : { "defaults" : { "compaction" : { "postCompactionCheck" : true , "dropThinkingOnReplay" : true } } } }
4.2 开启会话剪枝 自动移除旧的对话内容,保持上下文在合理范围内 :
1 2 3 4 5 6 7 { "contextTokens" : 200000 , "contextPruning" : { "mode" : "cache-ttl" , "ttl" : "55m" } }
4.3 子任务模型降级 后台任务(如定时早报、心跳检查)不需要最强的模型 :
1 2 3 4 5 6 { "subagents" : { "model" : "minimax/MiniMax-M2.5" , "maxConcurrent" : 12 } }
4.4 合并连续消息 设置防抖,避免用户在短时间内连续发送多条消息时重复触发处理:
1 2 3 4 5 { "inbound" : { "debounceMs" : 3000 } }
4.5 降低无效心跳 心跳(Heartbeat)是 OpenClaw 的定时唤醒机制,用于检查任务、发送提醒。但如果不加控制,它会成为隐形的 Token 杀手 :
算笔账 :心跳频率 30 分钟/次,每月心跳次数 1,440 次,每次输入 3,000 Token,每月仅心跳就消耗 432 万 Token!
优化建议:
设置工作时间间隔为 45-60 分钟
深夜 23:00-08:00 设为静默期
精简 HEARTBEAT.md 到最少行数
4.6 关闭非必要附加功能 以下配置项对 Token 消耗的影响程度 :
配置项
功能
影响程度
说明
ENABLE_TITLE_GENERATION
自动标题生成
低
仅在新建对话时触发
ENABLE_TAGS_GENERATION
自动标签生成
低
保存记忆时触发
ENABLE_FOLLOW_UP_GENERATION
后续问题建议
中等
每次回复后额外调用模型
ENABLE_AUTOCOMPLETE_GENERATION
输入自动补全
低
通常在端侧实现
建议根据场景选择性关闭,尤其是 ENABLE_FOLLOW_UP_GENERATION。
5. 记忆系统优化:从默认 Memory Search 切换到 QMD 5.1 默认 Memory Search 的问题 OpenClaw 默认的记忆搜索存在几个关键缺陷 :
使用 SQLite 做向量存储,性能不佳
单一向量搜索,结果不够精准
容易把整个记忆文件塞进上下文,导致 Token 爆炸
5.2 QMD 简介 QMD(Queryable Markdown Database) 是 Shopify 创始人 Tobi 开发的一个本地语义搜索引擎,专为 AI Agent 量身定制 。
它的核心逻辑是:不再读全库,只读最相关的那几段。
技术原理 :
基于 TypeScript + Bun 开发
三层混合检索:BM25 全文搜索 + 向量语义搜索 + LLM 重排序
所有模型在本地运行,完全离线
实际效果 :
📊 Token 削减:60-97%(平均 95% 以上)
⚡ 响应速度提升:5-50 倍
🎯 精准度:93%(纯语义搜索仅 59%)
5.3 QMD 与默认 Memory Search 的关系 QMD 是替代关系 ,配置后 QMD 完全接管记忆检索职责,但依然兼容原有记忆文件 。
5.4 QMD 详细配置指南 前置条件
OpenClaw 版本 ≥ 2026.2.2
SQLite ≥ 3.40.0
安装 QMD CLI 1 2 3 4 5 bun install -g @tobilu/qmd npm install -g @tobilu/qmd
修改 OpenClaw 配置文件 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 { "memory" : { "backend" : "qmd" , "citations" : "auto" , "qmd" : { "includeDefaultMemory" : true , "update" : { "interval" : "5m" , "debounceMs" : 15000 , "onBoot" : true } , "limits" : { "maxResults" : 7 , "maxSnippetChars" : 700 , "timeoutMs" : 4000 } , "scope" : { "default" : "allow" } , "paths" : [ { "name" : "memory" , "path" : "~/.openclaw/workspace/memory/" , "pattern" : "**/*.md" } , { "name" : "notes" , "path" : "~/obsidian/" , "pattern" : "**/*.md" } ] } } }
Windows 特别注意事项 :
command: "qmd.exe" 可能需要显式指定
scope.default: "allow" 必不可少,避免权限拒绝
初始化索引 1 2 cd ~/.openclaw/workspaceqmd update --dir .
验证效果 1 openclaw memory search "你的搜索词"
观察日志确认 Using QMD memory backend。
6. 上下文管理革命:lossless-claw 插件深度解析 6.1 lossless-claw 原理与优势 为什么需要 lossless-claw OpenClaw 内置的上下文压缩机制存在一个根本性缺陷:它是有损的(lossy) 。具体来说,内置压缩会:
把数十轮对话一股脑压成一段几百 Token 的摘要
不保留原始消息——压缩后细节永远丢失
导致 Agent 行为退化:跳过验证步骤、忽略安全规则
当 LCM 论文的作者告知 OpenClaw 维护者 Josh Lehman 他们的工作时,Josh 立刻意识到这会是 OpenClaw 的一个极棒的补充。他花了 9 天时间疯狂开发,在自己的 Agent 上运行了一周,结果令人印象深刻:”对话感觉永远不会丢失信息(因为某种程度上确实不会),始终在 30-100K Token 范围内运行,零维护” 。
LCM 核心原理:DAG 层次化摘要 Lossless Context Management (LCM) 插件用 DAG(有向无环图)结构的摘要系统替代滑动窗口压缩 :
graph TD
A[Immutable Store<br>所有原始消息的逐字副本]
subgraph B [DAG摘要层]
direction LR
B1["Depth 0:<br> [摘要A] ← 消息1-8 <br>[摘要B] ← 消息9-16"]
B2["Depth 1:<br> [浓缩X] ← 摘要A+摘要B"]
B3["每个摘要都链接回源消息 ← '无损'"]
end
B["DAG摘要层<br>Depth 0:<br> [摘要A] ← 消息1-8 <br>[摘要B] ← 消息9-16<br>Depth 1:<br> [浓缩X] ← 摘要A+摘要B<br>每个摘要都链接回源消息 ← '无损'"]
subgraph C [模型接收内容(Context)]
direction TB
C1[系统提示词]
C2[DAG摘要]
C3[最近N条原始消息]
end
A --> B --> C
B1 --> B2 --> B3
关键创新 :
全量持久化 :所有消息存入 SQLite,无信息丢失
分层摘要 :超出最新 N 条消息后异步生成摘要,同层摘要积累后向上凝练o
动态上下文组装 :每轮自动拼接”最新原始消息 + 历史层级摘要”
按需回溯 :提供 lcm_grep、lcm_describe、lcm_expand 工具,随时调取原始内容
性能实测:OOLONG 基准测试 OOLONG 是什么 :长上下文推理基准测试,测的是模型能否理解和推理整段长文本的全局信息 。
测试结果 (使用相同模型):
lossless-claw :得分 74.8
Claude Code :得分 70.3
关键发现 :上下文越长,差距越大——在所有测试的上下文长度上,lossless-claw 的得分都高于 Claude Code。
Token 消耗 :实测降低 30% 以上 ,额外消耗的 Token 主要是摘要计算,不会大幅增加总消耗 。
6.2 lossless-claw 配置指南 前置条件
OpenClaw 版本 ≥ 2026.3.7(推荐 2026.3.13)
SQLite(OpenClaw 默认预装)
Node.js ≥ v22
安装步骤 1 2 3 4 5 6 npm install -g openclaw@latest openclaw --version npm install -g @martian-engineering/lossless-claw
配置文件示例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 { "agents" : { "defaults" : { "contextEngine" : "lossless-claw" , "compaction" : { "postCompactionCheck" : true , "dropThinkingOnReplay" : true } } } , "losslessClaw" : { "maxRecentMessages" : 32 , "summaryModel" : "gpt-4" , "enableTools" : true } }
注意事项
现有会话不能直接切换 :需要 /reset 重置或 /new 开新会话才能使用 lossless-claw
磁盘存储增长 :长期使用会导致磁盘存储占用增长,建议定期清理旧会话
重启网关 :修改配置后务必重启服务 openclaw gateway restart
7. 综合实践:一次完整的优化旅程 假设你有一个运行了一段时间的 OpenClaw 实例,以下是建议的优化步骤:
7.1 升级到最新版本 1 2 npm install -g openclaw@latest openclaw --version
7.2 开启配置级优化 合并以下配置到你的 ~/.openclaw/openclaw.json:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 { "agents" : { "defaults" : { "contextEngine" : "lossless-claw" , "compaction" : { "postCompactionCheck" : true , "dropThinkingOnReplay" : true } , "contextTokens" : 200000 , "contextPruning" : { "mode" : "cache-ttl" , "ttl" : "55m" } , "heartbeat" : { "every" : "55m" , "target" : "last" , "model" : "ollama://qwen2.5:7b" } } } , "inbound" : { "debounceMs" : 3000 } }
7.3 切换到 QMD 记忆后端 按照第 5 章的配置指南安装 QMD 并修改配置文件。
7.4 安装 lossless-claw 插件 按照第 6 章的指南安装插件,并开新会话验证效果。
7.5 检查并停止重复服务 1 2 systemctl list-units | grep openclaw
7.6 优化前后对比 建议用实际监控数据展示效果。根据社区反馈,这套组合拳通常可以实现:
Token 消耗降低 60-90%
响应速度提升 5-10 倍
记忆精准度大幅提升
8. 避坑指南与注意事项
现有会话不能直接切换到 lossless-claw ,需要 /reset 或 /new
不要同时运行用户级和系统级 OpenClaw 服务 ,会导致冲突
修改配置后务必重启服务 :openclaw gateway restart
QMD 首次索引可能需要时间 ,耐心等待完成
定期检查磁盘空间 ,防止旧会话占用过多存储
注意版本号差异 :Git Tag 是 v2026.3.13-1,但 npm 版本是 2026.3.13,升级时无需纠结
Windows 用户特别注意 QMD 的 scope 配置
9. 总结与展望 本文基于 OpenClaw 2026.3.13 版本,从三个层面提供了完整的降本增效方案:
优化层面
核心方案
效果
配置级优化
会话剪枝、消息合并、心跳本地化
减少 30-50% 无效消耗
记忆系统
QMD 混合检索
Token 削减 60-97%,精准度 93%
上下文管理
lossless-claw DAG 摘要
无损记忆,OOLONG 得分 74.8
这三者并不互斥,而是可以协同工作 :QMD 负责外部知识的精准检索,lossless-claw 负责对话历史的高效管理,配置优化则贯穿始终。
核心指导思想 :按需加载、本地优先。让昂贵的云端模型只处理真正需要它的事情,其他工作尽可能交给本地计算。
展望未来,OpenClaw 社区仍在快速进化。2026.3.13 版本带来的浏览器控制、安全加固、Slack 深度集成等更新 ,为 AI 智能体打开了更广阔的应用空间。期待更多优秀的插件和方案涌现,让 OpenClaw 既强大又亲民。
附录:常用命令速查表
目的
命令
查看 OpenClaw 版本
openclaw --version
升级到最新版
npm install -g openclaw@latest
安装 lossless-claw
npm install -g @martian-engineering/lossless-claw
安装 QMD
bun install -g @tobilu/qmd
重启网关
openclaw gateway restart
查看日志
openclaw logs --follow
重置会话(启用新插件)
/reset 或在聊天中发送 /new
QMD 手动索引
qmd update --dir .
QMD 测试搜索
qmd search "关键词" -c .
查看服务状态
systemctl list-units | grep openclaw
本文基于 OpenClaw 2026.3.13 版本编写,配置路径和参数可能随版本更新而变化,请以官方文档为准。