本机认知沉淀与演化
准备目录
将 ~/.agent-knowledge/ 作为数据根。首次写入前先读取根 README.md;若缺失,则复制 assets/root-readme-template.md 后重新读取,若已存在则绝不要覆盖。按照 README 中的数据契约只补齐缺失目录,目录结构仅以 README 为准。
若根 maintenance.md 缺失,则复制 assets/maintenance-template.md;若已存在则绝不要覆盖。该文件只保存维护游标,不参与认知条目的检索、分类、晋升、归档或答案;模板值 YYYY-MM-DD 表示尚无成功维护记录。
仅将 README 作为稳定数据契约,不要让它参与认知条目的检索、分类、晋升或归档。
只创建缺失目录;不要覆盖已有文件。
学习信号速查
| 信号 | 动作 | |---|---| | 用户明确要求记住、确认或纠正 | 先去重;按现有规则新建、晋升或纠正 | | 意外失败形成可复用修复 | 提炼失败护栏与修复,按证据写为候选或活动经验 | | 知识缺口补齐或发现更好的重复性做法 | 写为原子候选,验证后再晋升 | | 重要工作、功能或修复完成,收到反馈 | 回答自我反思三问;没有可复用结论就不写 | | 用户指定本机文件或目录 | 按“从本机文件蒸馏”生成候选 | | 用户明确要求删除 | 只删除指定条目 |
不学习
- 不从沉默、未反对、寒暄或语气推断偏好与事实。
- 不学习一次性指令、仅当前上下文、假设问题或未经验证的猜测。
- 普通成功若没有新方法、新约束或新护栏,不形成条目。
- 不把原始日志、完整会话、文件全文、易变快照或敏感内容当作长期认知。
分类
- 将事实、定义和稳定约束归为 knowledge。
- 将做法、适用条件和失败护栏归为 experience。
- 一个条目只表达一个可复用结论;不要混合两种类型。
scope仅使用global、domain:<name>、workspace:<name>或customer:<name>。- 选择已明确的最窄范围,不把特定范围内容写成
global;范围影响适用性且不明确时,先询问用户。 - 遇到版本、价格、地址、人员、数量、日期或运行状态等易变信息,优先沉淀稳定约束、权威来源和回查方法;不要把一次快照晋升为长期事实。
写入条目
- 先在对应类型的三个状态目录中搜索同类内容,避免机械重复。
- 若同一
active条目的语义和适用范围完全相同,不新建也不刷新,只报告已有路径。 - 若同一
candidate获得用户确认或再次独立验证,晋升原条目,不另建重复条目。 - 去除凭据、未脱敏隐私、客户原文、完整会话和不必要的长篇摘录。
- 用户明确确认或纠正的内容可以直接设为
active。 - 自我推断的内容必须先设为
candidate。 - 只有再次独立验证、重复出现或用户确认后,才将候选晋升为
active。 - 为知识生成
k-YYYYMMDD-HHmmss-<slug>,为经验生成e-YYYYMMDD-HHmmss-<slug>;若文件名冲突,追加-2、-3。 - 每条内容写入一个 Markdown 文件,并放入与
status一致的目录。
复制匹配的模板:
- 知识:
assets/knowledge-template.md - 经验:
assets/experience-template.md
只保留 id、title、scope、tags、status、learned_at、source 和正文 content。仅在确认纠正旧条目时增加 supersedes。
source 只使用 human-confirmation、conversation:<opaque-ref>、file:<path>、url:<url>、command-readback:<opaque-ref> 或 external-record:<opaque-ref>。将 external-record 视为不透明引用;不要解析其内部结构或据此赋权。
从本机文件蒸馏
- 将“索引”只理解为本次只读枚举候选文件;不要创建长期全文索引。
- 仅处理用户明确指定的文件或目录与已确认 scope;未指定路径时不要扫描,绝不扫描整机。
- 解析并校验指定根;递归时不要跟随指向指定范围外的符号链接、junction 或 reparse point。
- 先列出处理清单。默认跳过隐藏或系统内容、版本控制目录、依赖、缓存、构建产物、二进制、过大、不可读及疑似敏感文件,并记录跳过原因;不要设置任意固定大小阈值。
- 保持原文件只读,不移动、改写或删除;不要复制全文或长摘录到认知库,也不要访问网络补充内容。
- 从每个文件蒸馏 0..N 个原子条目:将事实与约束归入 knowledge,将做法与护栏归入 experience;没有可复用结论时不要产出。
- 先剔除目录结构、版本或日期、实施状态和重复解释;将必须共同理解的高度相关结论合并为一条,仅在可独立复用时拆分,禁止按段落机械产出大量候选。
- 将文件蒸馏视为自我提取并默认写为
candidate;即使用户说“导入这个目录”,也不代表确认每条结论。仅在用户逐条或明确确认,或另一次独立验证后晋升。 - 使用
file:<path>作为source,写前按语义、scope 与 source 去重。相同内容不要写;与active冲突时保留旧条目并将新内容写为候选;已有同一候选后续获确认时晋升原条目。 - 完成后报告指定范围,发现、读取和跳过的文件数及跳过原因,生成、去重和冲突条目数,以及生成路径。
- 不要引入后台监听、自动同步、OCR、Office 或 PDF 专用解析、长期全文索引、hash 数据库或定时执行。
纠正与冲突
- 确认纠正时,将旧文件的
status改为archived并移入archive/。 - 创建新的
active条目,并用supersedes指向旧条目 id。 - 冲突尚未确认时,保留旧活动条目,将新说法写为候选;不要自动覆盖。
自我反思
在自然维护节点先回答三问:
- 哪一步意外困难、出错或产生了不必要的反复?
- 得到了什么可复用结论,它在什么范围适用或不适用?
- 有什么证据,应该归为知识还是经验、候选还是活动?
三问不能形成有证据、可复用且范围明确的结论时,不写条目。
复盘与维护
- 在重要工作前或进入可能已有经验的领域时,轻量检查相关活动条目、候选和冲突。
- 在重要多步骤工作或功能完成后、修复后、收到反馈或纠正后,执行自我反思并按需复盘。
- 活跃期间,仅在当前会话已因其他信号自然触发本 Skill 时,读取根
maintenance.md的last_reviewed_at。 - 若该值是有效日期且距当前本地日期不足 7 天,跳过每周补检;若为模板值、无效日期或已满 7 天,执行下面的完整补检。
- 搜索并合并重复候选。
- 删除没有可复用价值的候选。
- 晋升已经满足验证条件的候选。
- 将不再适用的活动条目改为
archived并移入归档目录。 - 完整补检全部成功后,将
last_reviewed_at更新为当前本地日期;任一步失败都不要更新时间。 - 不启动后台任务、监控或定时器。
删除与安全
- 仅在用户明确要求删除时删除指定条目。
- 写前拒绝或去除密码、token、cookie、私钥、未脱敏个人信息和客户原始数据。
- 不访问网络;只保存调用方已经提供的通用来源引用。
- 不得修改本 Skill、
use-self-improving或任何其他 Skill 包内容。
报告
完成后报告条目路径、类型、状态,以及本次执行的是新建、晋升、纠正、归档还是删除。
微信扫一扫