防遗忘防卡顿的context管理协议。自动监控水位、分区管理、压缩前存档、压缩后恢复。适用于所有OpenClaw agent和sub-agent。在heartbeat或session启动时触发。
Context Guard是一项面向实际任务的技能,主要用于全自动context管理 — 防遗忘、防卡顿、防token浪费;融合了 context-sentinel(自动监控)、context-budgeting(分区+checkpoint)、context-recovery(压缩后恢复)三个方案的优点,去掉了它们的缺陷;
从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。
执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。该技能适合用于一次性任务,也可以接入自动化工作流,与其他技能或上层代理配合完成更完整的业务链路;在组合使用时,应明确每一步的输入输出关系,并避免不同步骤之间出现参数冲突。
全自动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=
到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被压缩时,执行恢复流程:
标签开始(自动压缩)读文件(标准启动流程):
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
相关专题
热门下载
相关下载
精品课程
共6课时 | 54.7万人学习
共89课时 | 134.1万人学习
共49课时 | 82.6万人学习
最新文章