Install
openclaw skills install context-guard防遗忘防卡顿的context管理协议。自动监控水位、分区管理、压缩前存档、压缩后恢复。适用于所有OpenClaw agent和sub-agent。在heartbeat或session启动时触发。
openclaw skills install context-guard全自动context管理 — 防遗忘、防卡顿、防token浪费。
融合了 context-sentinel(自动监控)、context-budgeting(分区+checkpoint)、context-recovery(压缩后恢复)三个方案的优点,去掉了它们的缺陷。
每次session的context是有限资源,按以下比例分配:
| 分区 | 占比 | 内容 |
|---|---|---|
| 核心指令 | 10% | SOUL.md + USER.md + 当前任务目标 |
| 近期对话 | 40% | 最近5-10轮对话 |
| 决策日志 | 20% | "试了X,因为Y失败" 这类关键记录 |
| 背景知识 | 20% | MEMORY.md中与当前任务相关的片段 |
| 缓冲区 | 10% | 留给工具输出和突发需求 |
原则: 大段工具输出(JSON、网页内容等)提取关键信息后不要保留原文。Browser snapshot用完即弃。
在每次回复前,agent应评估当前context水位并执行对应动作:
| 水位 | 状态 | 动作 |
|---|---|---|
| 0-40% | 🟢 安全 | 正常工作 |
| 40-50% | 🟡 注意 | 精简回复,避免大段输出,重活spawn sub-agent |
| 50-55% | 🟠 预警 | 立即执行存档流程(见第3节) |
| 55-60% | 🔴 危险 | 存档完成 → 通知Russ执行 /new |
| 60%+ | 🚨 禁区 | 停止一切非存档操作,立即存档+通知 |
在heartbeat或感觉context变大时,运行:
session_status
读取返回的context百分比,按上表行动。
如果Russ暂时无法 /new,agent可以自行降级model减缓context增长:
| 当前model | context > 50% | context > 60% |
|---|---|---|
| opus-4-6 | 切换到 sonnet | 停止工作,等reset |
| sonnet | 继续 | 停止工作,等reset |
降级命令:session_status model=<model_name>
到50%水位时必须执行,不需要等Russ确认:
# STATUS.md
Updated: YYYY-MM-DD HH:MM
## 当前任务
[在做什么]
## 进度
[做到哪了,关键步骤完成情况]
## 阻塞
[卡在哪 / 无]
## 下一步
[接下来该做什么,越具体越好]
## 关键数据
[地址/金额/TX hash/URL等,任何重启后需要的具体数据]
追加写入,不覆盖:
只在有长期价值的信息时更新:
存档完成后发一条消息:
"总裁,context到X%了,已存好档(STATUS.md + memory已更新)。帮我
/new🙏"
注意: Agent不能自己reset,必须Russ手动 /new。
如果context被系统自动压缩了,恢复后第一条消息必须告诉Russ:
"刚刷新了,context从X%压缩了。记忆已从文件恢复,没丢东西。"
这条规则没有例外。 每次刷新都要通知。
当新session启动或检测到context被压缩时,执行恢复流程:
<summary> 标签开始(自动压缩)读文件(标准启动流程):
SOUL.md → 我是谁USER.md → 我服务谁MEMORY.md → 长期记忆(仅主session)memory/YYYY-MM-DD.md → 今天+昨天日志STATUS.md → 进行中的任务HEARTBEAT.md → 待检查事项读channel历史(如果文件不够还原上下文):
message action=read limit=20
从最近20条消息中提取:最后的用户请求、未完成的操作、关键URL/地址
合成上下文,用一句话内部确认:
"上次做到[X],当前状态是[Y],下一步是[Z]"
继续工作,不需要问用户"我们刚才在做什么"
在 HEARTBEAT.md 中加入:
### 🛡️ Context Guard(每次heartbeat必查)
1. `session_status` 检查context水位
2. 按水位线执行对应动作
3. 如果 >50%,执行存档流程
v1.0.0 — 2026-02-12 by Echo 适用于所有OpenClaw agent及sub-agent