文件化规划(Planning with Files)
概述
像 Manus 一样工作:用持久化 Markdown 文件作为"磁盘上的工作记忆"。创建三个核心文件(task_plan.md、findings.md、progress.md),让规划在 /clear 后依然可恢复。
核心比喻
上下文窗口 = 内存(RAM)——易失、有限
文件系统 = 磁盘(Disk)——持久、无限
→ 任何重要信息都必须写入磁盘。
三文件系统
| 文件 | 用途 | 更新时机 |
|---|---|---|
task_plan.md |
阶段划分、进度追踪、决策记录 | 每个阶段完成后 |
findings.md |
研究发现、技术发现 | 每次有新发现时 |
progress.md |
会话日志、测试结果 | 贯穿整个会话 |
工作流程
- 创建规划文件 — 复杂任务开始前,先创建三个 Markdown 文件
- 检查历史会话 — 运行 session-catchup 脚本恢复之前的上下文
- 决策前重读计划 — 刷新目标到注意力窗口
- 每阶段更新 — 标记
in_progress→complete,记录错误 - 2-Action 规则 — 每 2 次浏览器/搜索操作后,立即将关键发现保存到文件
关键规则
1. 先写计划再动手
复杂任务不写 task_plan.md 就不开始。不可协商。
2. 2-Action 规则
"每 2 次查看/浏览器/搜索操作后,立即将关键发现保存到文本文件。"
防止多模态信息(截图、PDF 内容)在上下文中丢失。
3. 决策前重读
在重大决策前读一遍计划文件,让目标保持在注意力窗口中。
4. 记录所有错误
## 遇到的错误
| 错误 | 尝试次数 | 解决方案 |
|------|----------|----------|
| FileNotFoundError | 1 | 创建默认配置 |
| API 超时 | 2 | 添加重试逻辑 |
5. 三击出局协议
第 1 次:诊断并修复 → 仔细阅读错误,定位根因
第 2 次:换条路走 → 同样的错误?换方法、换工具
第 3 次:重新审视 → 质疑假设,搜索方案,考虑修改计划
3 次失败后:上报用户 → 说明尝试过什么,分享具体错误
读 vs 写决策矩阵
| 场景 | 操作 | 原因 |
|---|---|---|
| 刚写完文件 | 不要读 | 内容还在上下文中 |
| 查看了图片/PDF | 立即写发现 | 多模态内容会丢失 |
| 浏览器返回数据 | 写入文件 | 截图不持久 |
| 开始新阶段 | 读计划/发现 | 重新定位方向 |
| 恢复中断的会话 | 读所有规划文件 | 恢复状态 |
5 问重启测试
如果你能回答这 5 个问题,说明上下文管理到位:
| 问题 | 答案来源 |
|---|---|
| 我在哪? | task_plan.md 当前阶段 |
| 我要去哪? | 剩余阶段 |
| 目标是什么? | 计划中的目标声明 |
| 我学到了什么? | findings.md |
| 我做了什么? | progress.md |
何时使用
适用: 多步骤任务(3+ 步)、研究任务、项目构建、跨多轮工具调用的任务
不适用: 简单问答、单文件编辑、快速查找
反模式
| 不要 | 应该 |
|---|---|
| 用 TodoWrite 做持久化 | 创建 task_plan.md 文件 |
| 目标说一次就忘 | 决策前重读计划 |
| 隐藏错误静默重试 | 记录错误到计划文件 |
| 把所有内容塞进上下文 | 大内容存文件 |
| 立即开始执行 | 先创建计划文件 |
| 重复失败的操作 | 追踪尝试,变换方法 |