<!-- title: 工作记忆上磁盘：三件装机实拆 -->

# 工作记忆上磁盘：三件装机实拆

## 概述

新榜上的记忆件（okf-agent-memory、agent-memory 之流）已经连上两期周报，但记忆这门课的第一批成熟教材其实不在新架上，而在每一台 Claude Code 的装机目录里。本期从本机真实装机中取出三件正本原文逐段拆解：**planning-with-files**（任务内工作记忆）、**long-running-agent**（跨会话项目状态）、**remembering-conversations**（跨会话情景检索）。三件恰好拼成一张「写—存—查」记忆栈：一件管把发现落成文件，一件管让工程在断点后复活，一件管开工前先查过去。核心发现：这三件把同一套「别塞上下文」哲学做成了三个方向的机械结构，其中 planning-with-files 的负面空间写法和 long-running-agent 的「格式即权限」是本期最值得抄走的两个设计。

## 评测对比表

| Skill | 功能完整度 25% | 设计质量 25% | 实战效果 20% | 上手难度 15% | 可移植性※ 15% | 加权 |
|---|---|---|---|---|---|---|
| planning-with-files | ★★★★☆ 4.5 | ★★★★☆ 4.5 | ★★★★☆ 4.5 | ★★★★☆ 4.5 | ★★★★★ 5.0 | **4.58** |
| long-running-agent | ★★★★☆ 4.5 | ★★★★☆ 4.5 | ★★★★☆ 4.0 | ★★★☆☆ 3.5 | ★★★☆☆ 3.5 | **4.11** |
| remembering-conversations | ★★★★☆ 4.0 | ★★★★☆ 4.0 | ★★★☆☆ 3.5 | ★★★☆☆ 3.0 | ★★☆☆☆ 2.0 | **3.43** |

> ※装机直读通道只能核正文、无法核星数，本期以「可移植性」替入社区活跃度维度：不依赖任何外部插件得满分，绑死特定 MCP 得底分。三件正本均经 Skill 通道载入原文，分数为设计口径评估非长跑实测。

## 主拆：planning-with-files——把「记性」写成一个文件协议

### 第 1 段：开场一句隐喻，四个词各扛一个设计决定

正文标题下的第一句是全文最贵的一句：**Work like Manus: Use persistent markdown files as your "working memory on disk."** 它自报家门属于 Manus 流派，并用一个隐喻压缩了整套方法论——persistent（写下去就别丢）、markdown（格式零门槛，人和模型都能读）、working memory（不是档案室，是当前正在用的那块记忆）、on disk（位置在文件系统，不在上下文窗口）。读者读完这一句，后面所有段落都只是这句话的展开。自写 Skill 的人应该记住这个密度标准：如果你的第一句不能被拆出四个设计决定，它就还只是一句口号。

### 第 2 段：Quick Start 四步，二十秒可执行

开场不给理论，直接给动作：建 `task_plan.md`、用复选框定义阶段、每阶段完成后打勾更新、**决策前先重读计划刷新目标**。四步全是祈使句，第一步就给到文件名——一个从未见过这个概念的新会话，照抄四行就能跑起来。对比大量先铺三段背景再讲理念的 Skill，这个「先给可执行动作、解释后置」的开箱顺序，是它敢自称 Quick Start 的底气。

### 第 3 段：3-File Pattern，一张表定义写入时机

三文件用表格而不是散文交代：

| 文件 | 用途 | 更新时机 |
|---|---|---|
| `task_plan.md` | 跟踪阶段与进度 | 每个阶段后 |
| `notes.md` | 存研究过程与发现 | 研究进行中 |
| `[deliverable].md` | 最终成品 | 完成时 |

这张表的真正功能是给三种内容各分配一个**写入时机**：状态写 plan、证据写 notes、结果写 deliverable。模型最常犯的错不是不记录，是把三类东西全糊在对话里——表格先把「往哪写」钉死，「何时写」才有了挂点。

### 第 4 段：Core Workflow 四个 Loop，任务生命周期画成回路

Loop 1 建计划，Loop 2 研究（边写 notes 边更新 plan 的双写动作），Loop 3 读 notes 产出成品，Loop 4 交付。配一段伪 bash：每个大动作前 `Read task_plan.md`，每阶段后 `Edit task_plan.md`，大段信息 `Write notes.md`。把「读—写—再读」画成显式回路，是这件 Skill 与「一次性把计划说清楚然后开跑」那类伪规划的本质区别：它假设注意力会衰减，所以让重读成为流程的一部分而不是可选项。

### 第 5 段：两份模板即接口

Skill 没有停留在「你应该有个计划文件」的理念层，而是直接给出 `task_plan.md` 与 `notes.md` 的完整模板。plan 模板六个区块里最有价值的是 **Decisions Made（决策及理由）** 和 **Errors Encountered（错误及解法）** 两栏——跨会话交接时最容易丢的恰恰不是进度，而是「当时为什么这么选」和「这个坑已经踩过」。Status 区块要求写成「当前在第 X 阶段—正在做什么」一句话，让任何新会话三秒接管。给模具不给理念，模板本身就是这间 Skill 的 API。

### 第 6 段：Critical Rules 五条，条条是注意力管理技术

1. **ALWAYS Create Plan First**——先写后做，防目标漂移；原文甚至写了 non-negotiable。
2. **Read Before Decide**——决策前重读计划，原文点破机理：keep goals in your attention window，把目标反复推回注意力窗口，对抗长上下文里的目标稀释。
3. **Update After Act**——动作完成立即落盘，防会话中断丢状态。
4. **Store, Don't Stuff**——全文最狠的一条：大输出进文件，工作记忆里只留路径。这五个字就是整件 Skill 的原子操作。
5. **Log All Errors**——错误入档，理由写得诚实：builds knowledge for future tasks。

### 第 7 段：负面空间——它花了整整一节讲「何时别用我」

Use 三条：多步任务、研究型任务、需要跨多次工具调度的活。Skip 三条：简单提问、单文件小改、快速查询。多数 Skill 只写「何时用我」，这件还划出了「别用我」的边界，给了 3+ steps 这样的粗颗粒判据。过度触发是高频 Skill 的头号翻车方式——让它去记一个两步小活，仪式成本反噬收益——负面空间就是防过触发的泄压阀。

### 第 8 段：Anti-Patterns 表里，藏着一行和宿主抢地盘的宣言

反模式表五组对照里最刺眼的一行：**Don't: Use TodoWrite for persistence → Do Instead: Create task_plan.md file**。它在正面挑战宿主环境的内建任务工具。逻辑其实站得住：内建 todo 活在会话里，会话死了它就死了；文件活在磁盘上，跨会话只有文件能活。但这条也暴露了它的边界——在带原生任务系统的环境里装它，会出现双份状态，Skill 没有给出仲裁规则，装的时候得自己选边。

### 第 9 段：渐进披露收尾

结尾不展开高阶技巧，只留两个指针：reference.md 讲注意力操纵、错误恢复与「来自 Manus 的上下文优化」，examples.md 给真实任务样例。正文保持接口文档的厚度，实现细节下沉到伴生文件——标准的三层披露收束。※本期通道未能读取这两个伴生文件的内容，其存在与主题以 SKILL.md 内链原文为据。

### 短板清单

一，无清理协议：任务结束后 plan/notes 去留没有约定，目录会被便签遗骸慢慢污染。二，`[deliverable].md` 占位符不约束命名与位置，多任务并行时会互相覆盖。三，五条 Critical Rules 全是「要求模型自觉」，没有 hook 或脚本兜底——对比下面这件用 JSON 锁字段的做法，它的防线是纯提示词。四，3+ steps 的触发判据要模型自评，颗粒度因人而异。五，正文的 description 触发面本期通道不可见，触发表现只能留给实测（带※存疑）。

## 副拆一：long-running-agent——同一个哲学的工程重量版

如果 planning-with-files 是便签，这件就是脚手架。它开宗明义针对「跨多个上下文窗口的长期工程」，并总结了三种没有脚手架时的死法：一次梭哈（one-shot）、提前宣布胜利（premature completion）、中间态烂尾（undocumented states）。

结构上它是两代理制：**Initializer 只在第一场出场**，搭好 init.sh、feature_list.json、进度日志并完成首次提交；**Coding Agent 每场出场**，按一套七步开场仪式复工——pwd、读进度文件、读功能清单、看 git log、跑 init.sh、冒烟测试、挑一个失败项开工。每场会话从「我在哪」开始，而不是从「我记得」开始。

最值得抄的设计是 **feature_list.json 用 JSON 格式的理由**，原文写得毫不掩饰：to prevent inappropriate edits——格式即权限。模型只被允许翻转 `passes` 字段，不许动测试描述，比提示词里写一百遍「请不要乱改」硬得多。配套规则同样刚性：只有端到端验证过才许标 pass；收工前必须提交并更新进度文件。

短板也真实：仪式重（每场七步加一次提交），和「不自动 commit」的用户守则可能打架，装机前要调和；端到端验证绑定浏览器自动化（原文点名 Puppeteer MCP），虽然末节自称可泛化到其他领域，跨出 Web 工程得自己改轮子。

## 副拆二：remembering-conversations——读的那一半

前两件管「写」，这件管「查」。它的开场是一句哲学加一个量化卖点：**Search before reinventing. Searching costs nothing; reinventing or repeating mistakes costs everything.** 检索历史对话比重新发明便宜，且走子代理比直接载入省 50–100 倍上下文。

两个设计动作值得拆。其一，**强制中转**：正文用 YOU MUST 规定一切历史检索必须派发给 search-conversations 子代理，直接调 MCP 工具被明标 Discouraged——理由还是保护上下文窗口。它和 Store, Don't Stuff 是同宗的镜像：一个管写的时候别塞，一个管读的时候别整页重载，合起来才是完整的「上下文卫生协议」。其二，**触发面写成人话**：它把用户口语直接列成触发词表——「last time」「we discussed」「do you remember」——再配一张 Don't search first 反向清单（当前代码库结构、当前对话内信息不许检索），一正一反夹出触发边界。这是三件里把 description 之外的触发设计写得最细的一件。

短板是三件里最硬的：它绑死 episodic-memory 这个 MCP 插件，工具名 `mcp__plugin_episodic-memory__search` 直接写死在正文——插件不在，整件 Skill 形同虚设，可移植性垫底；「Announce」播报仪式对单人使用纯属添噪。

## 三层记忆栈：三件拼起来的完整结构

```mermaid
flowchart TB
  subgraph S1["任务内工作记忆：planning-with-files"]
    A["task_plan.md 阶段与状态"]
    B["notes.md 发现与证据"]
    C["成品文件"]
    A --> B
    B --> C
  end
  subgraph S2["跨会话项目状态：long-running-agent"]
    D["feature_list.json 功能清单"]
    E["进度日志"]
    F["init.sh 环境复活脚本"]
    D --> E
    E --> F
  end
  subgraph S3["跨会话情景记忆：remembering-conversations"]
    G["search 检索过去对话"]
    H["show 读取命中片段"]
    G --> H
  end
  S1 -->|"会话结束留下计划与笔记"| S2
  S2 -->|"多个项目的教训沉淀"| S3
  S3 -->|"下次开工前先查往事"| S1
```

单看每一件都只是便签或清单，叠起来才是一台记忆机器：任务内的发现流向项目状态，项目状态里的教训沉淀为情景记忆，情景记忆在下一个任务开工前被检索回来。而主拆 planning-with-files 的工作回路单独看是这样转的：

```mermaid
flowchart LR
  A["接到复杂任务"] --> B["先建 task_plan.md"]
  B --> C["研究中发现写入 notes.md"]
  C --> D["决策前重读计划刷新目标"]
  D --> E["完成一个阶段打勾更新"]
  E --> D
  D --> F["全部勾完产出成品"]
```

## 自写 Skill 可抄的五个模式

1. **隐喻压缩开场**：第一句同时回答格式、位置、用途三个问题（working memory on disk）。
2. **模板即接口**：给模具不给理念，模板区块就是你的 API 签名。
3. **负面空间**：写一节「何时别用我」，比十节「何时用我」更防翻车。
4. **格式即权限**：要锁死的行为用数据格式锁（JSON 只许改一个字段），别指望提示词自觉。
5. **读写分离的记忆协议**：写走文件、读走子代理，两条路都不占上下文主航道。

## 安装与使用命令

```bash
# 三件来自本机装机目录，上游归属未经核实，先用 CLI 现查再装
npx skills find planning-with-files
npx skills find long-running-agent
npx skills find remembering-conversations

# 通用装法：把含 SKILL.md 的目录放进用户级技能目录
git clone <上游仓库> ~/.claude/skills/<skill-name>

# remembering-conversations 需先装 episodic-memory MCP 插件，
# 否则正文写死的检索工具无从调用
```

手动点火最简单的方式：复杂任务开场说一句「先建 task_plan.md，按三文件协议推进」。

## 推荐排行榜

- **综合第一：planning-with-files（4.58）**——零依赖、二十秒上手、五模式全占，装机首选。
- **设计最硬：long-running-agent**——「格式即权限」是三件里唯一的非提示词防线。
- **触发设计最细：remembering-conversations**——口语触发词表加反向清单的写法最值得借鉴，但请先确认插件在手。
- **上手最快：planning-with-files**——无任何前置依赖。
- **可移植性垫底：remembering-conversations**——绑死单一插件。

## 诚实条款

## 参考来源

> [!tip] 51学通信知识星球
> **星主：爱卫生**（微信：gprshome201101）——公众号「51学通信」创办者，19 年通信行业运维与讲师经验，著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书（各大电商平台有售）。
> **星球定位**：深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域，主打运维岗位与信令分析。
> **当前规模**：5200 篇主题 / 990 个回答，198 元/年。
> **加入福利**：加入星球后请加爱卫生微信，拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题，另有群内分享。
> **AI 加持**：51学通信知识星球已作为 skill 接入 WorkBuddy，使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例，做总结、找文档和 PPT 等场景全覆盖。

![51学通信知识星球海报-扫码加入](https://wiki.500nian.com/images/zhixingqiu_qrcode.png)
