Wipe & Inject 模式:长时间规划会议后实现的完整上下文
Source: Dev.to

墙
如果你在严肃的开发中使用 Claude Code(或任何具备代理功能的工具),你可能已经碰到过 “墙”。
场景
阶段 1 – 规划
- 花约 45 分钟讨论架构。
- 让 Claude 阅读 20 个文件,检查依赖并规划认证系统。
- **成本:**约 150 k 令牌。
- **结果:**完美的计划。
阶段 2 – 实现
- 你说:“太好了,写代码吧。”
- Claude 回答:“我需要压缩我的记忆才能继续。”
大家使用的变通办法
- “好的,先把计划保存到
.md文件。” - Claude 进行压缩(丢失上下文)。
- “现在读取你刚才创建的
.md文件。” - Claude 重新探索计划中提到的文件。
- “在进行时把进度更新到
.md中。” - 每当上下文填满时重复步骤 2‑5。
问题所在
当代理“压缩”上下文时,它保留 WHAT(例如 “我们在构建认证系统”),却丢弃 WHY(例如 “我们因为 XSS 考虑而选择 Cookie 而不是 Header”)。
实现阶段从一个低分辨率的视角开始,导致代理忘记约束、重新提问并产生有缺陷的代码。
解决方案 – “擦除 & 注入” 模式
我们在构建 Grov 时每天都遇到这个问题。为了解决它,我们构建了一个名为 Planning CLEAR 的编排流程,它把“一句话”会话转变为“章节书”会话。
工作原理(逻辑)
-
检测完成
- 一个小模型(Claude Haiku)监控会话。
- 当它检测到从 规划 切换到 实现 时,触发 CLEAR 事件。
-
提取信号
- 在擦除记忆之前,提取两个数据点并保存为 JSON 结构:
{ "key_decisions": [ "Use Zod for validation" ], "reasoning_trace": [ "Because Joi doesn't support type inference" ] } -
“擦除”(重置)
- 完全清空
messages[]数组。 - **旧上下文使用量:**150 k 令牌 → **新上下文使用量:**0 令牌。
- 完全清空
-
“注入”
- 将结构化摘要直接注入新会话的
system_prompt,让代理“完整回忆”架构约束。
- 将结构化摘要直接注入新会话的
结果
当你开始编写代码时,不再为最后的 50 k 令牌空间争夺。你拥有约 195 k 令牌的全新窗口,但代理仍记得所有决策及其背后的理由。
加分项 – “心跳”(解决 5 分钟超时)
Anthropic 的提示缓存会在 5 分钟不活动后失效。一次 10 分钟的咖啡休息会杀死“热缓存”,导致下一个提示需要全价并耗时更长。
修复方法
我们为 Grov 添加了 --extended-cache 标志。它在空闲时每 4 分钟向 API 发送一个最小令牌(单个 .)作为后台心跳。
- 成本:≈ $0.002 每次保持请求(大约每 4 分钟一次)。
- **价值:**让会话无限期保持“热”状态。
试一试(开源)
我们已将这些工作流集成到 Grov,这是我们为 Claude Code 构建的开源代理。
- 仓库:
- 安装:
npm install -g grov
如果你厌倦了在实现过程中耗尽令牌或丢失上下文,试试看并告诉我们这个模式是否提升了你的工作流!