mcpField
R
record-memory

record-memory

github.com/davidleeAgent 工作流2143 次安装3 天前更新
代码仓库

关于 record-memory

record-memory 是将持久项目知识整理为记忆记录、供后续 Agent 使用的技能。它指导记录范围、关系、可信度和时效设置,并检查记忆是否可被检索。

主要功能

  1. 01选择合适的记忆类型与时效
  2. 02按路径、glob、命令和标签设定范围
  3. 03建立记忆记录间的持久关系
  4. 04设置可信度与严重性并验证
  5. 05搜索确认记忆是否可检索

适用场景

  1. 01保存可重复的工作流程与不变量
  2. 02为后续 Agent 记录子系统事实
  3. 03检查限定范围的记忆能否被搜索到

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/davidlee/doctrine --skill record-memory

安装后在 Claude Code 中输入/record-memory确认已加载。

详细介绍

记录记忆

对话上下文不会持久保存。当知识能为未来的 Agent 节省大量时间时,请立即写入一条记忆记录。阶段和切片收尾时必须执行提示:检查 notes.md、当前运行阶段说明、审计发现和最新注意事项,找出值得保留的持久指导。

只提升持久指导——可重复的工作流、关键边界、恒定条件、子系统事实。不要记录对话状态。

1. 选择最合适的类型

运行 doctrine memory record --help 查看 --type 的可选值: concept|fact|pattern|signpost|system|thread。

⚠ 在验证之前,thread 不会出现在 find/retrieve 中。 如果你希望按范围重新找到某个工作循环,请优先选择持久类型(pattern/system/concept),或者记录 thread 并在干净的工作树上对其运行 verify。未经验证的 thread 只会显示在 list/show 中,不会参与范围排名。

2. 记录

使用 doctrine memory record 进行记录(运行 --help 查看标志;动词模型参见 lib:reference/using-doctrine.md)。该命令会在 .doctrine/memory/items/ 下生成 TOML 文件和正文;创建时的 git 锚点会自动捕获——不要手动编写。

记录后

建议关系。 如果 record 检测到与现有记忆的高置信度匹配项,会在 stderr 中输出建议关系。请检查这些建议,并对确认的匹配项运行 doctrine link——这会构建持久的图边,供未来的 Agent 遍历。

图关系与正文链接。 使用 [[relation]] 边表示持久的图结构(有类型,可由机器遍历);使用正文中的 [[mem.…]] wikilink 提供上下文性的“另请参阅”指引。关系会显示在 retrieve --expand 中;wikilink 不会——它们是为人类读者准备的。

选择 --lifespan。 按知识的持久程度,选择最短且合适的生命周期,从最持久到最短:

生命周期经验法则
identity永不过时——子系统身份、恒定条件、规范名称
semantic10:1 衰减——设计理由、架构约束
procedural3:1 衰减——命令配方、构建步骤、工作流
episodic基准——一次性发现、错误记录、会话上下文
working快速衰减——临时待办、短期假设

省略时默认为 episodic。范围和生命周期都选得越精确,检索结果越相关。

3. 设置范围,确保能找到

沿四个维度设置记忆范围(标志详见 --help):

  • path — 精确文件;匹配权重最高。
  • glob — 子系统相关性(例如 src/auth/**)。
  • command — 关联到某个命令流程(令牌前缀)。
  • tag — 稳定的分类方式;不要把标签过度用作范围。

4. 设置风险维度

record 默认设置 [trust] trust_level = "medium"、[ranking] severity = "none"、weight = 0。对于有风险或容易过时的记忆,请在记录时传入标志,或之后更新:

doctrine memory record ... --trust high --severity critical

或者事后调整:

doctrine memory edit <REF> --trust low --severity medium
  • --trust = 置信度:low(推断所得,未经验证)· medium (根据合理的上下文得出——默认值)· high(根据代码 / 规范 / 直接观察验证)。
  • --severity = 如果内容有误或被忽略,影响有多大: critical · high · medium · low · none(默认值)。

务必如实校准:创建记忆属于撰写,不是验证。

5. 验证后进行确认

doctrine memory verify <UID|KEY>

根据工作树写入 verified_sha(如果工作树不干净则拒绝操作——不会产生虚假确认)。未经确认的记忆会被视为信任度较低。

thread 必须经过此步骤才能显示。 thread_expiry 会在 14 天后,将未同时处于 verified 和 reviewed 状态的 thread 从 find/retrieve 中移除。record 始终会写入 unverified,所以新建的 thread 在运行 verify 之前不会参与范围排名——而 verify 会拒绝不干净的工作树,因此必须在干净的工作树上确认。其他类型不受此限制。

参见 doctrine memory retrieve --help:retrieve 会应用不可绕过的信任限制(低信任度 + 高严重性的记忆会被抑制)。

6. 保持正文简短且可执行

将“执行 X”之类的步骤列为项目符号,并附上准确的命令片段。通过 [[uid]] / [[key]] 在正文中引用相关产物和记忆(比使用关联更省)。如果内容会演变成 ADR 或常青规范,请停止——改用 doctrine adr new,或编写规范或 ADR。记忆只是指针/操作指南层,而非权威内容。

7. 检查是否可检索

运行 doctrine memory search,并将范围限定为未来 Agent 实际会查询的上下文(参见 --help),确认能搜到该记忆。搜索结果只有一页,因此限定范围的浏览可能会漏掉它:请使用包含该记忆自身术语的查询(全文搜索会根据证据找到它)进行确认,或通过 --page 翻页。

例外:即使记录正确(§1/§5),未经验证的 thread 也不会显示在这里——请先对其运行 verify,或改为检查 memory show。

评论

支持 Markdown