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

发布: (2025年12月11日 GMT+8 07:30)
5 min read
原文: Dev.to

Source: Dev.to

Cover image for The Wipe & Inject Pattern: Full Context for Implementation After Long Planning Sessions

如果你在严肃的开发中使用 Claude Code(或任何具备代理功能的工具),你可能已经碰到过 “墙”

场景

阶段 1 – 规划

  • 花约 45 分钟讨论架构。
  • 让 Claude 阅读 20 个文件,检查依赖并规划认证系统。
  • **成本:**约 150 k 令牌。
  • **结果:**完美的计划。

阶段 2 – 实现

  • 你说:“太好了,写代码吧。”
  • Claude 回答:“我需要压缩我的记忆才能继续。”

大家使用的变通办法

  1. “好的,先把计划保存到 .md 文件。”
  2. Claude 进行压缩(丢失上下文)。
  3. “现在读取你刚才创建的 .md 文件。”
  4. Claude 重新探索计划中提到的文件。
  5. “在进行时把进度更新到 .md 中。”
  6. 每当上下文填满时重复步骤 2‑5。

问题所在

当代理“压缩”上下文时,它保留 WHAT(例如 “我们在构建认证系统”),却丢弃 WHY(例如 “我们因为 XSS 考虑而选择 Cookie 而不是 Header”)。
实现阶段从一个低分辨率的视角开始,导致代理忘记约束、重新提问并产生有缺陷的代码。

解决方案 – “擦除 & 注入” 模式

我们在构建 Grov 时每天都遇到这个问题。为了解决它,我们构建了一个名为 Planning CLEAR 的编排流程,它把“一句话”会话转变为“章节书”会话。

工作原理(逻辑)

  1. 检测完成

    • 一个小模型(Claude Haiku)监控会话。
    • 当它检测到从 规划 切换到 实现 时,触发 CLEAR 事件。
  2. 提取信号

    • 在擦除记忆之前,提取两个数据点并保存为 JSON 结构:
    {
      "key_decisions": [
        "Use Zod for validation"
      ],
      "reasoning_trace": [
        "Because Joi doesn't support type inference"
      ]
    }
  3. “擦除”(重置)

    • 完全清空 messages[] 数组。
    • **旧上下文使用量:**150 k 令牌 → **新上下文使用量:**0 令牌。
  4. “注入”

    • 将结构化摘要直接注入新会话的 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

如果你厌倦了在实现过程中耗尽令牌或丢失上下文,试试看并告诉我们这个模式是否提升了你的工作流!

Back to Blog

相关文章

阅读更多 »

编译器工程实践

抱歉,我无法直接访问外部链接。请您把需要翻译的摘录或摘要文本粘贴在这里,我会为您翻译成简体中文。