通过预写日志 (WAL)、工作缓冲区和自动恢复防止 LLM 压缩期间上下文丢失,三项机制确保关键状态...
压缩生存系统
功能概述
压缩生存系统是一项面向实际任务的技能,主要用于压缩会破坏特定性: 文件路径、 精确值、 配置细节、 推理链;此技能可确保临界状态存活;
核心要点
- 问题: 当您的背景时。
- 它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。
- 使用时应结合输入条件选择合适的执行方式,核对必要参数、依赖环境与输出内容,并按原始要求处理异常情况。
使用与执行
该技能适合需要稳定复用相关能力的场景,可作为自动化工作流的一部分,也便于后续检查、调整和扩展。从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;
结果检查与注意事项
若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。
压缩存活系统
压缩会抹除具体信息:文件路径、精确数值、配置细节、推理链条。本机制确保关键状态在压缩中得以保留。
问题所在:当上下文窗口填满时,OpenClaw 会将较早的消息压缩为摘要。而摘要必然损失精度——精确数字变为“大约”,文件路径消失,决策失去依据。每次压缩后,你的 agent 都会“变笨”一点。
解决方案:三套协同机制,在压缩发生前捕获关键状态,并在压缩后完整恢复。
三大机制
1. WAL 协议(预写式日志,Write-Ahead Logging)
对每一条输入消息,均需扫描以下内容:
- ✏️ 修正类语句 —— “是 X,不是 Y” / “实际上……”
- 📍 专有名词 —— 人名、地名、公司名、产品名
- 🎨 偏好表达 —— 风格倾向、方法偏好、“我喜欢/不喜欢……”
- 📋 决策声明 —— “我们做 X 吧” / “采用 Y 方案”
- 📝 草稿变更 —— 对当前工作的编辑内容
- 🔢 具体数值 —— 数字、日期、ID、URL、路径
若发现任一上述内容:
- 暂停 —— 暂不生成响应
- 写入 —— 将该细节更新至
SESSION-STATE.md - 再响应 —— 完成更新后,再向用户作答
触发时机基于用户的输入,而非你的记忆。请如实记录用户所说内容,而非你自己的理解。
2. 工作缓冲区(危险区)
当上下文使用率达 60%(通过 session_status 查看)时:
- 创建或清空
memory/working-buffer.md,并写入如下头部:# Working Buffer (Danger Zone) **Status:** ACTIVE **Started:** [timestamp]
- 此后每一次对话(含 60% 后的所有轮次):将用户的输入 + 你的响应摘要追加至该文件
- 缓冲区以文件形式存在 —— 可在压缩中完整保留
- 保持该缓冲区内容不变,直至新会话再次达到 60% 阈值
存储位置: memory/working-buffer.md
3. 压缩恢复机制
自动触发条件(满足任一即触发):
- 会话启动时,上下文中包含
标签 - 你本应知晓某信息,但实际缺失
- 用户提问:“我们刚才聊到哪儿了?” / “继续” / “我们之前在做什么?”
恢复步骤(严格按顺序执行):
- 读取
memory/working-buffer.md—— 获取原始的“危险区”对话记录 - 读取
SESSION-STATE.md—— 获取当前活跃任务状态 - 读取今日及昨日的
memory/YYYY-MM-DD.md - 若仍缺少上下文,调用
memory_search - 从缓冲区中提取关键上下文 → 更新
SESSION-STATE.md - 向用户报告:“已恢复上下文。上一个任务是 X。正在继续。”
切勿主动询问“我们刚才在讨论什么?” —— 缓冲区中已有全部答案。
SESSION-STATE.md 格式规范
# Session State — Active Working Memory ## Current Task [当前正在执行的任务] ## Key Details - [通过 WAL 捕获的具体数值、路径、配置等] ## Decisions Made - [附带依据的决策记录] ## Pending - [待处理项 / 当前阻塞点] ## Last Updated [timestamp]
请高频更新此文件。它是你的 RAM —— 唯一能在两次压缩事件之间完整保留具体信息的位置。
协同工作流程
┌──────────────────────────┐
│ 用户发送消息 │
└────────────┬─────────────┘
│
┌────────────▼─────────────┐
│ WAL:扫描具体信息 │
│ 若命中,优先写入 │
└────────────┬─────────────┘
│
┌─────────────────▼─────────────────┐
│ 上下文使用率 > 60%?全部写入缓冲区 │
└─────────────────┬─────────────────┘
│
┌────────────▼─────────────┐
│ 向用户返回响应 │
└────────────┬─────────────┘
│
┌────────▼────────┐
│ 触发压缩(COMPACTION HIT) │
└────────┬────────┘
│
┌────────────▼─────────────┐
│ 恢复阶段:读取缓冲区、 │
│ SESSION-STATE、当日/昨日日志 │
│ → 全量上下文恢复完成 │
└──────────────────────────┘
集成说明
- 与
MEMORY.md(长期记忆)和memory/YYYY-MM-DD.md(每日日志)协同工作 SESSION-STATE.md= 当前任务的工作记忆- 工作缓冲区 = 危险区场景下的应急捕获机制
- 三层机制叠加运作:WAL → 缓冲区 → 恢复
- 无外部依赖。无需 API Key。纯行为模式实现。
为何有效
多数“记忆”方案试图永久保存一切内容 —— 这是错误的问题定义。真正的问题是压缩过程中的精度丢失。你不需要记住所有事,而只需在正确的时间记住正确的事。
WAL 在具体信息出现的瞬间即完成捕获;缓冲区覆盖整个危险区;恢复机制在压缩重置后重建上下文。三层设计,零依赖,零数据泄露。
由 @rustyorb + S1nthetta ⚡ 构建 —— 已在 30+ 次压缩事件中实战验证。
热门AI工具
相关专题
本专题介绍Gradle插件开发的基本流程,涵盖插件类编写、自定义任务注册、扩展参数设计和插件应用方法,帮助你理解插件如何组织构建逻辑,减少多个项目之间的重复配置。
0
2026.10.22
本专题介绍Gradle Wrapper的基本作用,涵盖文件组成、生成方法、版本配置和任务调用,帮助你理解项目如何使用指定的Gradle版本,减少不同开发环境带来的构建差异。
0
2026.10.22
本专题整理Golangci-lint常用Linters的用途与配置方法,覆盖错误处理、无效代码、安全、复杂度、命名和依赖检查,帮助项目合理选规则。
0
2026.10.22
本专题介绍Gradle Java项目构建方法,涵盖Java插件配置、依赖声明、源码编译、测试执行和打包检查,帮助你理解各阶段的任务关系,逐步完成项目构建。
0
2026.10.22
本专题汇总PHP常见时间戳漏洞,包括2038年溢出、时区漂移、时间戳伪造、重放攻击、时间盲注与日志审计失效等,并给出升级64位环境、使用 DateTimeImmutable、统一UTC、严格超时校验、预处理绑定、hash_equals 比对等修复方案,帮助开发者快速排查和加固时间相关代码。
0
2026.10.22
本专题聚焦Golangci-lint YAML配置文件,讲清运行参数、规则启停、目录排除、问题过滤及严重级别设置,便于团队统一检查标准。
0
2026.10.22
本专题讲解Golangci-lint的安装、初始化、基础命令和首次代码检查,覆盖本地环境、Docker及多平台用法,帮助Go开发者快速上手。
0
2026.10.22
PHP2Shell漏洞是什么,哪些PHP版本和运行环境会受到影响,服务器应该如何检测与修复?本专题提供版本自查脚本、Linux与Docker升级命令、PHP-FPM和Apache排查步骤,以及修复验证、临时缓解和应急响应方案。
0
2026.10.22
热门下载
相关下载
精品课程
共86课时 | 27.7万人学习
共18课时 | 6.1万人学习
共31课时 | 5万人学习
