新榜上的记忆件(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 通道载入原文,分数为设计口径评估非长跑实测。
正文标题下的第一句是全文最贵的一句:Work like Manus: Use persistent markdown files as your "working memory on disk." 它自报家门属于 Manus 流派,并用一个隐喻压缩了整套方法论——persistent(写下去就别丢)、markdown(格式零门槛,人和模型都能读)、working memory(不是档案室,是当前正在用的那块记忆)、on disk(位置在文件系统,不在上下文窗口)。读者读完这一句,后面所有段落都只是这句话的展开。自写 Skill 的人应该记住这个密度标准:如果你的第一句不能被拆出四个设计决定,它就还只是一句口号。
开场不给理论,直接给动作:建 task_plan.md、用复选框定义阶段、每阶段完成后打勾更新、决策前先重读计划刷新目标。四步全是祈使句,第一步就给到文件名——一个从未见过这个概念的新会话,照抄四行就能跑起来。对比大量先铺三段背景再讲理念的 Skill,这个「先给可执行动作、解释后置」的开箱顺序,是它敢自称 Quick Start 的底气。
三文件用表格而不是散文交代:
| 文件 | 用途 | 更新时机 |
|---|---|---|
task_plan.md |
跟踪阶段与进度 | 每个阶段后 |
notes.md |
存研究过程与发现 | 研究进行中 |
[deliverable].md |
最终成品 | 完成时 |
这张表的真正功能是给三种内容各分配一个写入时机:状态写 plan、证据写 notes、结果写 deliverable。模型最常犯的错不是不记录,是把三类东西全糊在对话里——表格先把「往哪写」钉死,「何时写」才有了挂点。
Loop 1 建计划,Loop 2 研究(边写 notes 边更新 plan 的双写动作),Loop 3 读 notes 产出成品,Loop 4 交付。配一段伪 bash:每个大动作前 Read task_plan.md,每阶段后 Edit task_plan.md,大段信息 Write notes.md。把「读—写—再读」画成显式回路,是这件 Skill 与「一次性把计划说清楚然后开跑」那类伪规划的本质区别:它假设注意力会衰减,所以让重读成为流程的一部分而不是可选项。
Skill 没有停留在「你应该有个计划文件」的理念层,而是直接给出 task_plan.md 与 notes.md 的完整模板。plan 模板六个区块里最有价值的是 Decisions Made(决策及理由) 和 Errors Encountered(错误及解法) 两栏——跨会话交接时最容易丢的恰恰不是进度,而是「当时为什么这么选」和「这个坑已经踩过」。Status 区块要求写成「当前在第 X 阶段—正在做什么」一句话,让任何新会话三秒接管。给模具不给理念,模板本身就是这间 Skill 的 API。
Use 三条:多步任务、研究型任务、需要跨多次工具调度的活。Skip 三条:简单提问、单文件小改、快速查询。多数 Skill 只写「何时用我」,这件还划出了「别用我」的边界,给了 3+ steps 这样的粗颗粒判据。过度触发是高频 Skill 的头号翻车方式——让它去记一个两步小活,仪式成本反噬收益——负面空间就是防过触发的泄压阀。
反模式表五组对照里最刺眼的一行:Don't: Use TodoWrite for persistence → Do Instead: Create task_plan.md file。它在正面挑战宿主环境的内建任务工具。逻辑其实站得住:内建 todo 活在会话里,会话死了它就死了;文件活在磁盘上,跨会话只有文件能活。但这条也暴露了它的边界——在带原生任务系统的环境里装它,会出现双份状态,Skill 没有给出仲裁规则,装的时候得自己选边。
结尾不展开高阶技巧,只留两个指针:reference.md 讲注意力操纵、错误恢复与「来自 Manus 的上下文优化」,examples.md 给真实任务样例。正文保持接口文档的厚度,实现细节下沉到伴生文件——标准的三层披露收束。※本期通道未能读取这两个伴生文件的内容,其存在与主题以 SKILL.md 内链原文为据。
一,无清理协议:任务结束后 plan/notes 去留没有约定,目录会被便签遗骸慢慢污染。二,[deliverable].md 占位符不约束命名与位置,多任务并行时会互相覆盖。三,五条 Critical Rules 全是「要求模型自觉」,没有 hook 或脚本兜底——对比下面这件用 JSON 锁字段的做法,它的防线是纯提示词。四,3+ steps 的触发判据要模型自评,颗粒度因人而异。五,正文的 description 触发面本期通道不可见,触发表现只能留给实测(带※存疑)。
如果 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 工程得自己改轮子。
前两件管「写」,这件管「查」。它的开场是一句哲学加一个量化卖点: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」播报仪式对单人使用纯属添噪。
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 的工作回路单独看是这样转的:
flowchart LR
A["接到复杂任务"] --> B["先建 task_plan.md"]
B --> C["研究中发现写入 notes.md"]
C --> D["决策前重读计划刷新目标"]
D --> E["完成一个阶段打勾更新"]
E --> D
D --> F["全部勾完产出成品"]
# 三件来自本机装机目录,上游归属未经核实,先用 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,按三文件协议推进」。
[!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 等场景全覆盖。
