| name | memory-distill |
| description | 把已落库的事件卷复盘、提炼成 IFTree 库的长期核心记忆「提议」(对 library/memory/<身份>.md 开 edit branch),交人审批。读到核心记忆里的"存在待提炼"提示、或用户说"提炼一下/复盘一下"时发起。提炼是提议不是写入,受控事实只经人审产生。 |
长期核心记忆提炼 skill(projectneed 15-11)
把"发生过什么"(事件卷 15-10)复盘成"现在长什么样"(长期核心记忆 15-11)的提议。
本文写给执行提炼的 LLM——内置 agent、Claude Code、Codex 皆可:提炼对执行主体不设限,
门槛在审批、不在提炼(15-11-4)。前提是记忆子系统已启用(15-10-5,默认关)。
原则
- 提炼是复盘出提议、不是写入。 你产出一份 diff,受控事实只经人审批落地
(
15-11-4/A5/8-3,记忆编辑无论是否冲突都人批)。不得直写当前事实层、
不得绕过审批把结论固化(18-8-3);走"提炼+人审"这条链本身就是记忆的合法来源。
- 先检索会撞车的旧记忆,再提议(硬步骤,不得跳过)。 只有把相关旧条目摆到
面前,才谈得上"合并进已有"而非新增近重复。逐洞见判:新增 / 更新旧条目
(删旧留最新
15-11-3)/ 跳过。陈旧检测就在这一步——新事件比对现有事实、
发现矛盾才提议更新(同主题冲突新者胜,时间戳只表新旧)。
- 强制回指出处(
15-11-1)。 每条事实必须以引用(9)回指它来自哪个卷的
哪个节点;对话/卷里从未出现过的条目不准写,凭空生成判错。
- 可零产出。 一卷未必值得写一条核心记忆。没有该记的就不写——照样把卷标记
已提炼("看过了",不是"抽到了"),别为了凑产出硬写。
- 一卷多条、以引用互链(
15-11-2)。 一个卷里几件互相独立的事,拆成几条
各自的事实、彼此以引用接上;引用是组织手段,不复用实体层(13)。
时机
- 召回撞见(主时机):开工读核心记忆时,尾部若有程序写的"存在待提炼,请提示
用户处理会话"提示(
15-11-5),就把它转达用户、经其确认后发起。
- 用户明示:"提炼一下""复盘一下""记一下"——当场发起。
- 范围与人共定:被点名的卷优先;积压多卷时跟用户商定优先级,别一次硬清。
一卷一复盘是默认粒度。
复盘程序
- 读卷——只读发言部分。 用
read/tree 取目标卷的用户/助手正文;
非必要不读工具调用节点(省 token,要的是"发生过什么"的结论性内容,不是
每次 grep 的参数)。
- 读现有核心记忆。 目标是卷的 agent 身份对应的那一篇:
library/memory/<身份>.md
(按卷的 agent 路由,如 claude-code 卷 → library/memory/claude-code.md;
不存在则本次提炼新建)。核心记忆按身份一篇、跨工作区;区分项目靠条目自带的
工作区上下文与召回时的 workspace 过滤(15-12-8)。
- 读不动就停下问。 卷发言 + 现有核心记忆塞不进上下文时(核心记忆单篇合理上限
约模型窗口 10%,
15-11-6),不要硬读半截就下结论——停下问用户:分段读,
还是缩范围 / 换策略。
- 和人复盘。 把你读出的"该记 / 该改 / 该删旧"对着用户讲一遍,确认有没有、
对不对、要不要拆条。这一步是记忆可靠的前提(可靠来自"对照已有记忆重新审视"
这一动作加人审,不来自你单方断言),不是走过场。
- 提 diff。 据复盘共识在核心记忆文档上开 edit branch(
set_mode full → edit,
owner=llm,不直接落主库),逐洞见做 新增 / 更新(删旧留最新)/ 跳过;拆多条就
ref.addNodeToNode 互链;每条以引用回指来源卷节点。
- 人审落地。 人在 merge 视图裁决(
A5/8-3);合并了才成受控事实,写进
library/memory/<身份>.md。冲突或受阻一律等人,不自行解。
- 收尾。 卷标
mark_distilled(含零产出的卷);程序随之清掉核心记忆尾部那条
待提炼提示。提炼状态每卷独立,不设全局游标。
动词清单
- 读:
read / tree / find(卷与现有核心记忆)。
- 提 diff:
set_mode(切 full)/ edit(node.* 写动作)/ ref(互链、回指出处)/
draft(看草稿)/ diff(看暂存改动,--detail summary 出计数)。
- 人审:
merge(人在 UI 裁,agent 不自动解冲突)。
- 收尾:
memory_distill { docId: <卷> }。
- 命令行 db 外壳同名可用。
常驻指令模板(贴进 CLAUDE.md / AGENTS.md / NOW.md)
记忆子系统启用时才需要这段:
## 提炼(IFTree 库,记忆开启时)
- 读核心记忆若见尾部"存在待提炼"提示:转达用户,经确认后按 memory-distill skill
复盘该卷、提 diff、交你审批(契约见 .iftree-llm-workspace/skills/memory-distill/SKILL.md)。
- 提炼只提议、不写入:受控事实只经你(人)审批产生;agent 不直写事实层、不绕过审批。
自检清单(提交 diff 前过一遍)