超长对话里,最早聊的技术细节被忘了。
这不是模型的问题,是上下文窗口满了之后的默认行为——早期的内容被压缩、被丢弃。你问它"我们当时怎么定的架构分层",它答不上来,因为那段对话已经在压缩过程中丢失了。
lossless-claw-enhanced 就是来解决这个问题的。
解决什么问题
OpenClaw 同一个 session 里多轮对话跑久了,上下文窗口触到阈值,早期的技术细节、讨论要点会被遗忘。
原版 lossless-claw 插件尝试解决这个问题,但有两个致命 bug:
- 中文 token 估算错误
——中文文本的 token 数算不准,压缩策略跑偏 - 摘要丢失
——压缩过程中摘要信息被丢弃,导致召回率只有 56%
你问它早期的决策细节,它大概率答错或者答不出来。
lossless-claw-enhanced 做了什么
基于开源项目 lossless-claw 二次开发,修复了上面两个 bug。
实测结果:
原版召回率:56% 增强版召回率:100%
核心改动:
修正中文 token 估算逻辑 保留压缩过程中的摘要信息 采用 DAG 有向无环图压缩架构 原始消息持久化存储到 SQLite 支持三种触发策略:增量叶压缩、阈值压缩、手动强制压缩
压缩过程完全在后台静默运行,不影响对话体验。
安装方法
三种方式,选一个:
方式一:OpenClaw 自然语言安装
直接在 OpenClaw 里说:
安装 lossless-claw-enhanced 插件OpenClaw 会自动拉取并安装。
方式二:Codex 安装
如果你用 Codex:
codex install lossless-claw-enhanced方式三:手动命令安装
openclaw plugins install https://github.com/win4r/lossless-claw-enhanced或者直接 clone:
cd ~/.openclaw/plugins
git clone https://github.com/win4r/lossless-claw-enhanced安装完成后重启 gateway:
openclaw gateway restart使用方法
安装后自动生效,不需要手动配置。
三种压缩触发策略:
- 增量叶压缩
——每次对话结束后自动执行,压缩最新的叶子节点 - 阈值压缩
——上下文窗口达到阈值时自动触发 - 手动强制压缩
——你可以手动触发压缩命令(具体命令看插件文档)
压缩后的数据存储在 SQLite 数据库里,路径默认在 ~/.openclaw/data/lossless.db。
实测验证
视频里做了三轮测试:
第一轮:检索早期分层思路
在超长会话中,问 OpenClaw:"我们最开始怎么定的架构分层?"
OpenClaw 精准回答了早期的分层决策细节,包括每个分层的职责划分。
第二轮:项目结构检索
问:"项目目录结构是什么样的?每个模块放什么?"
OpenClaw 列出了完整的项目结构,包括每个模块的职责说明,和早期讨论时的设计意图完全一致。
第三轮:Claude Code 压力测试
用 Claude Code 自动注入 5 道架构决策测试题:
数据流向是怎么设计的? 为什么选 SQLite 而不是其他数据库? DAG 压缩的具体触发条件是什么? 增量叶压缩和阈值压缩的区别? 最早期的技术选型讨论结论是什么?
OpenClaw 全部答对,一致性接近 100%。
坑点
- 首次安装需要重启 gateway
——安装后如果不重启,插件不会生效 - SQLite 数据库会随时间增长
——如果会话特别长,数据库文件会变大,但不会影响对话性能 - 压缩过程占用少量 CPU
——后台静默运行,但极端情况下可能有轻微延迟 - 和 memory-lancedb-pro 的区别
——lossless-claw-enhanced 解决的是短期精准记忆(同一 session 内),memory-lancedb-pro 解决的是长期跨 session 记忆,两者可以同时使用
结论
如果你经常在 OpenClaw 里跑超长会话,讨论架构设计、技术选型、代码重构这类需要回溯早期决策的场景,lossless-claw-enhanced 值得装。
召回率从 56% 到 100%,不是小提升。早期聊的技术细节,现在能精准记住了。
项目地址:https://github.com/win4r/lossless-claw-enhanced
配套插件:https://github.com/win4r/memory-lancedb-pro(长期跨 session 记忆)
夜雨聆风