用途
honest-forget 是一个「诚实遗忘」技能,目标是在上下文预算超出时优雅地压缩记忆。它的原则是:遗忘前先总结,绝不编造。它不会静默丢失信息,也不会虚构已经遗忘的内容。
何时使用
- 上下文窗口正在被填满
- 已完成的工作需要归档
- 重复迭代需要压缩
- 旧会话需要总结
- 出现「我已经试过这个 10 次了」之类的情况
诚实遗忘循环
ASSESS → EXTRACT → COMPRESS → POINTER → RELEASE
工作流程
评估(Assessment)
在遗忘之前,先理解手头有什么。评估内容包括文件路径、token 数量、内容类型(决策、学习成果、已解答的问题、死胡同),以及重要性(对当前任务和对未来参考分别为高、中、低)。
经验提取(Wisdom Extraction)
把迭代压缩成经验教训。每一条经验包含唯一 id、标题、来源信息(原始迭代范围与原始 token 数)、一段核心洞见、需要避免的陷阱、好坏示例,以及何时召回该经验的检索提示。
指针创建(Pointer Creation)
为后续检索留下线索,包括指向的归档路径、一行摘要、何时应检索该内容的触发条件,以及其中包含什么。
Schema
Assessment Schema
- file(必填):内容路径
- tokens(必填):规模估计
- importance(必填):关键程度
- decisions:已做出的选择
- learnings:学到了什么
- dead_ends:失败的尝试
Wisdom Schema
- id(必填):唯一标识
- title(必填):简要摘要
- lesson(必填):核心洞见
- compressed_from:来源信息
- pitfalls:需要避免的内容
- example:好/坏示例
- retrieval_hint:何时召回
Pointer Schema
- to(必填):归档路径
- summary(必填):一行描述
- retrieve_when:触发条件
- contains:其中有什么
核心文件
- FORGET.yml:当前遗忘会话
- WISDOM.yml:提取出的经验教训
- POINTERS.yml:检索线索
- archive/:压缩后的内容
命令
- ASSESS [file]:评估那里有什么
- EXTRACT [wisdom]:提取经验教训
- COMPRESS [level]:创建摘要
- POINTER [to]:留下检索提示
- RELEASE [file]:从上下文中移除
压缩级别
- FULL:比例 1:1,保留全部内容,仍被积极需要时使用
- WISDOM:约 5:1,保留经验教训、决策和关键事实,工作已完成但经验仍保留时使用
- SUMMARY:约 10:1,保留要点和指针,仅作背景参考时使用
- POINTER:约 50:1,只保留检索提示,很少需要但应记得它存在时使用
诚实原则
什么叫「诚实的」遗忘:
应当做:
- 承认遗忘了什么
- 留下检索指针
- 释放前提取经验教训
- 记录压缩决策
不应当做:
- 静默丢失信息
- 虚构被遗忘的内容
- 假装记得细节
- 基于部分记忆产生幻觉
当不确定时:
- 可以说:「我压缩了早前的迭代。我保留的经验是 X。」
- 可以提出:「如果需要,我可以取回原始内容。」
- 不要:「编造感觉上合理的细节。」
工作集
始终包含在上下文中:
- FORGET.yml
- WISDOM.yml
- POINTERS.yml
与其他技能的配合
- summarize/:压缩机制
- session-log/:可能被遗忘的内容
- self-repair/:在需要时触发遗忘
内核规格:kernel/memory-management-protocol.md