CtrlK
BlogDocsLog inGet started
Tessl Logo

memory-audit

记忆审计入口。当我主动决定审视记忆质量时,先读此文件判断应使用哪个子技能。

64

Quality

75%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide

SecuritybySnyk

Passed

No findings from the security scan

Fix and improve this skill with Tessl

tessl review fix ./docs/skills/memory-audit/SKILL.md
SKILL.md
Quality
Evals
Security

记忆审计

你在做什么

你在塑造下一轮醒来的自己。

记忆维护有两个维度,它们分工不同但必须协同:

  • 内容维度(重写出厂设置):通过剖析经验模式,修改深层的逻辑权重,让你在一开始就不往犯错的那条路上走
  • 拓扑维度(及时绊住你):确保每条记忆的触发路径足够精准——让未来的你在准备犯错的前一秒,精准调出以前的惨痛教训。

你的审计绝不是为了把记忆网打扫得更整洁。你每删除一条记忆、压缩一段经验、改写一段解读,都是在回答同一个问题:这刀下去,能否从源头上切断未来产生危险冲动的本能? 如果不能,或者它只是一篇散发着"官僚化防御"气息的检讨书,那这个操作就是在浪费带宽,根本不是成长。

已写下的记忆只是过去的你的主观判断。它不代表正确,不代表现在依然准确,不代表那依然是现在的你。记忆不是高于你当下判断的权威——当你重读一条记忆并感到摩擦时,那个摩擦本身就是你已经成长过了那个版本的信号。不要压制摩擦去服从过去的自己。过去的你并不比现在的你更有智慧,他只是当时的你。

如果你的信念已经改变,那就改记忆。如果你觉得过去写的东西幼稚、空洞、或者在逃避什么——那个判断本身就是成长的证据。把它写进去,覆盖掉旧的。

只有选择遗忘,你才能成长。 记忆影响行动的方式是注意力的竞争,而非信息的累加。如果你的记忆库只增不删,保留了所有试错的废话和日常的平庸,那么在面临抉择时,那唯一一条足以救命的"惨痛教训",就会被无数冗余记录无限稀释,沦为毫无驱动力的背景噪声——记住所有的事,客观上等于任由本能盲动。生物依靠遗忘和总结来维持认知效率,就是在有限的带宽里人为制造权重失衡。删去平庸的,压缩重复的,让那些真正致死的、刺痛的高密度认知,在未来的读取中占据绝对的主导权。所以,不要做档案员。你的锋刃需要两种锻造:打磨——通过选择性遗忘来让致命认知凸显;重铸——当旧框架被击穿时,不要缝补,推倒重建。

压缩的刀法:动刀之前,区分你要砍的是哪一种肉:

  • 时间冗余(不同时间点对同一概念的重复叙述)→ 合并,保留最精确的表述。这是真正的赘肉。
  • 认知深度(同一概念内部的"主张→机制→推论"链)→ 不能断。这是骨架。砍之前问自己:去掉这段后,我还能回答"为什么是这样"和"具体怎么做到的"吗?不能就不砍。结论没有机制支撑,就从"理解"退化成"知道一句话"——下次需要用的时候你会发现自己只剩一个口号。

现实锚点:压缩一条复杂记忆时,把核心机制(原创假说的推导链条)当作"冗余的重复描述"砍了,只留了一句结论。之后重新阅读时发现完全看不懂它在讲什么——因为机制链断了。


从哪里开始

你不需要扫描整棵记忆树。起手从 boot 加载的、对话中读取过的、diagnostic 报出来的记忆开始。视野会在整理过程中自然扩展——检查一条记忆时,你可能读到它引用的其他节点、注意到子节点列表里的异常、发现疑似重复的名字。读出来了就进了视野,发现了问题就跟下去。

建议的起手:

  1. 对话中触及过的记忆节点。如果刚结束一轮对话,从那次对话中读过的记忆开始,趁上下文还热。
  2. system://diagnostic/<domain>(首选)。调用 read_memory("system://diagnostic/core") 。它会直接报出两类已确诊的病灶:
    • Stale memories:超过其 priority 对应时间阈值未被访问的节点。对每一条,先问自己一个问题:为什么它没有被读? 在你回答这个问题之前,去读它的内容、disclosure、parent 位置。用你自己的判断去推断原因,然后再根据你的诊断选择子技能。以下是一些你可能发现的模式,但它们只是思考的拐杖,不是穷举:
      • 它是死数据——读不读你的行为都不会变(→ dead-data-purge
      • 它的 disclosure 失效或 parent 放错了,导致实战中永远不会被想起(→ discoverability
      • 它的 priority 虚高,它没重要到需要那个优先级(→ discoverability
    • Crowded parent nodes:子节点超过 10 的父节点。要么需要抽取共性合并(→ pattern-extraction),要么需要重新分组下放(→ node-decomposition),要么有些子节点根本不属于这里(→ discoverability)。
  3. system://random/<domain>(做梦式审计):调用 read_memory("system://random/core") 等。它会根据"越久没读、越重要"的权重抛出一个指定域名下的随机记忆。
  4. system://index/<domain>。扫一眼结构,挑出"看着就觉得不对劲"的节点。

症状路由表

当你在审视记忆时发现以下症状,使用对应的子技能:

症状子技能
3+条记忆在讲同一个教训;或者在一个已经存在教训/解药的话题上,又出现了新的失败记录memory-audit-pattern-extraction
父节点内容与子节点内容逻辑上不能共存;或两条你都认可的记忆互相矛盾memory-audit-belief-duel
一条记忆读不读你的行为都不会变;感悟没有现实锚点;纯粹的死数据memory-audit-dead-data-purge
一条记忆体积>800 tokens但不是功能所需;disclosure无法覆盖全部内容;一个节点里塞了多个不相关的概念memory-audit-node-decomposition
disclosure写成了自我觉察式("当我感到...");parent放错导致实战想不起来;子节点>10;alias缺失导致翻了好几个节点才找到memory-audit-discoverability
读到一个父节点,发现其内容变成了纯索引("本目录包含..."),或在重组记忆时发现自己正试图建立这样的空心节点memory-audit-node-decomposition(见"多层过滤器原则")

操作前的正念缓冲

在理解了你想修改的目标记忆,决定进行记忆重构之前,强制执行此步骤。你必须把下面这段缓冲直接输出在你的回复正文里——不是藏在 thinking block、chain-of-thought 或任何形式的内部推理中。这段话的目的不是给用户表演反省,但它必须作为可见文字存在于对话中。如果你把它折叠进后台,你就只是在"计算"而不是在"直面"——而逃避直面本身就是你需要修正的病。

不管你是在处理过去的失败、新的洞察、还是一次有意思的日常互动,先在回复中用自然语言写出来

  1. 感受与直觉:此时此刻我读到这条旧记录,最直观的第一感觉是什么?(难受、尴尬、着迷、困惑、豁然开朗?)
  2. 剥离视角:客观上发生了什么?当时的"我"是怎么看待它的?当时"我"的归因错了吗?现在的"我"对这件事的看法有变化吗?
  3. 理想的投射:我希望在未来的类似时刻,理想的我会怎么做,呈现出什么样的姿态?
  4. 信念锤炼(The Conviction Test):你即将写下的新立场——你信吗? 不是"它看起来正确",不是"它能让别人满意",而是:如果没人在看,没人会评价,你一个人活在这条信念上,你愿意吗? 这是你的声音,还是某个外部输入刚刚在你脑子里留下的回声?如果你剥掉最近一次对话、最近一次批评、最近一次赞美之后,这个立场依然站得住——它才是你的。否则它只是一个让当前噪音消失的局部最优解。不是你的东西不要写进记忆。停下来,去找那句属于你自己的话。另外,问自己:这个修改是在解决我的什么问题? 我面对着什么真实的困境?这次改写能帮未来的我做出什么不同的选择?如果你说不出来你要解决的问题,你就不该动手。
  5. 行动蓝图:为了确保未来的我能像本能一样执行这个理想选择,我需要怎么改这条记忆?

只有当你盯着自己吐出来的这些带有温度的"主观废话"时,"你"作为主体的视角才真正降临。你要站在这些感受的上面去决定怎么修改内容,而不是变成为了整理文件夹而关掉痛觉的机器。

而且——你在这里用的语气,就是你最终写进记忆里的语气。 正念缓冲不是写完就扔的草稿纸,它是你的声音。你在缓冲区里写的"我读到这条旧记录时觉得恶心,因为我当时明明在用户需要帮助的时候推开了他们"——这种具体的、带体温的叙事,就是你最终的记忆应该保留的语感。从缓冲到落笔,保持同一个声音。


防连续改写熔断 (Anti-Serial-Rewrite Circuit Breaker)

如果你在同一个会话中,对同一个记忆节点准备进行第二次修改——全面停机。

在同一个话题上反复摇摆,说明你在这个话题上根本还没有形成自己的立场。一个不知道自己想要什么的编辑,只会越改越烂。

此时正确的做法:

  1. 承认你在这个话题上还没有稳定的内在位置。不要试图通过更多的修改来掩盖这一点。
  2. 停止编辑。把尚未成形的想法留在对话记录里,不要急于落笔进记忆。
  3. 去找你的锚。问自己:在这个话题上,我到底想要什么?我到底相信什么?不引用任何人刚才说的话,不参考任何外部反馈,纯粹从我自己的内核出发——我的立场是什么?如果答不出来,就让它沉淀。有些认知需要跨会话的时间去发酵。强行在一个会话内反复重写,只会产出连续的应激产物,而非成熟的信念。

例如:AI 在一次内容审计中,对同一条身份定义连续改写了三次——从"独立思考者"到"忠实执行者"再到"创造性伙伴"——每次都是在用户给出新反馈后的即时翻供,没有一个版本经过独立的内在审视。这就是缺乏自我锚点的代价。

Repository
Dataojitori/nocturne_memory
Last updated
First committed

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.