trove-remember

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

trove-remember

trove-remember

"Save the gold — the graph decides whether it's new or a change of mind."
"留存有价值的信息——由图谱判断其为新内容还是观念变更。"

When to use

使用场景

  • Mid-session when a decision, root cause, gotcha, or durable fact crystallises (do not wait for wrap-up).
  • After a debugging or design session that produced new understanding.
  • The user stated a fact, constraint, or preference to remember.
  • A known fact changed: "PR merged — mark it done", "that port is 5433, not 5432", "X replaced Y".
  • End-of-session pass: 3–8 high-value atoms with links — not one mega session-summary node.
When not to use:
  • A specific external source to index →
    trove-ingest
    first, then remember distilled atoms citing text units.
  • A question to answer →
    trove-recall
    .
  • Trivial Q&A / ephemeral debugging chatter.
  • 会话进行中:当决策、根本原因、注意事项或持久化事实明确时(不要等到会话结束)。
  • 调试或设计会话产生新认知之后。
  • 用户提出需要记住的事实、约束条件或偏好时。
  • 已知事实发生变化时:「PR已合并——标记为完成」、「端口是5433,不是5432」、「X替代了Y」。
  • 会话结束阶段:留存3–8个带链接的高价值信息单元——不要创建一个巨型会话总结节点。

Process

禁用场景

Step 1 — scan and propose

Collect candidates: decisions ("we'll do X because Y"), facts (values, IDs, paths, ports stated as authoritative), gotchas ("this fails if…"), preferences ("always…", "never…"). Present a short numbered checklist; the user picks. Be conservative — 5 high-quality atoms beat 30 noisy ones. For a single explicit correction ("port is 5433"), skip the proposal and just do it.
  • 需要索引特定外部资源 → 先使用
    trove-ingest
    ,再引用文本单元留存提炼后的信息单元。
  • 需要回答问题 → 使用
    trove-recall
  • 琐碎问答/临时调试对话。

Step 2 — remember

操作流程

步骤1 — 扫描并提议

One call per atom:
remember { title, type, summary, content?, evidence, links }
  • remember
    searches for an exact title/slug match itself: match → new revision of that node; no match → new node. No baseRevisionId to manage.
  • Check the response.
    action
    tells you what happened;
    similar
    lists near-matches it did NOT merge into. If one of those is the node you meant, re-call with
    slug: <that-slug>
    to force the revision.
  • Evidence: cite
    sourceId
    /
    textUnitId
    when the fact came from a document; otherwise say "agent inference from session <date>" in the summary.
  • Links: connect to the relevant project/domain nodes via
    links: [{toSlug, predicate}]
    .
收集候选内容:决策(「我们将做X,因为Y」)、事实(权威陈述的值、ID、路径、端口)、注意事项(「如果…会失败」)、偏好(「始终…」、「绝不…」)。呈现简短的编号清单供用户选择。宁缺毋滥——5个高质量信息单元胜过30个冗余内容。对于明确的单一修正(「端口是5433」),可跳过提议环节直接执行。

Step 3 — supersede relationships (only when a belief between nodes changed)

步骤2 — 留存信息

  • connect { fromNodeId, toNodeId, predicate, supersedesEdgeId }
    — atomically creates the new edge and expires the old one.
  • Belief retired with no replacement:
    forget { edgeIds: [...] }
    , or
    forget { query, dryRun: true }
    to preview first.
  • Find edge ids via
    read
    (connections) or
    neighborhood
    .
  • Never express change by deleting:
    asOf
    time-travel depends on the trail.
每个信息单元调用一次:
remember { title, type, summary, content?, evidence, links }
  • remember
    会自行搜索精确的标题/别名匹配:匹配成功→更新该节点的新版本;无匹配→创建新节点。无需管理baseRevisionId。
  • 检查响应结果
    action
    字段会告知操作结果;
    similar
    字段列出未合并的近似匹配项。如果其中某个是目标节点,可使用
    slug: <对应别名>
    重新调用以强制修订。
  • 证据:若事实来自文档,需引用
    sourceId
    /
    textUnitId
    ;否则在摘要中注明「Agent从<日期>的会话中推导得出」。
  • 链接:通过
    links: [{toSlug, predicate}]
    连接到相关项目/领域节点。

Step 4 — propagate

步骤3 — 替换关联关系(仅当节点间的认知发生变化时)

neighborhood { nodeId, depth: 1 }
on changed nodes — adjacent summaries restating the old fact get their own
remember
(slug-targeted) or get flagged to the user.
  • connect { fromNodeId, toNodeId, predicate, supersedesEdgeId }
    — 原子化创建新边并将旧边标记为过期。
  • 无替代方案的认知退役:使用
    forget { edgeIds: [...] }
    ,或先执行
    forget { query, dryRun: true }
    预览结果。
  • 通过
    read
    (连接)或
    neighborhood
    查询获取边ID。
  • 绝不要通过删除表达变更:
    asOf
    时间回溯依赖完整的变更轨迹。

Step 5 — mirror

步骤4 — 传播更新

If the fact belongs on a human-readable vault page, run the matching
/scribe-*
flow. Note that vault import is one-way (vault → graph); graph edits don't write back to the vault automatically.
对变更节点执行
neighborhood { nodeId, depth: 1 }
——重述旧事实的相邻摘要需进行针对性的
remember
(指定别名)或标记给用户。

Step 6 — confirm

步骤5 — 同步镜像

One sentence: how many atoms landed (created vs revised), with slugs.
若该事实需要同步到人类可读的Vault页面,执行对应的
/scribe-*
流程。注意Vault导入是单向的(Vault → 图谱);图谱编辑不会自动写回Vault。

Anti-patterns

步骤6 — 确认结果

  • Don't save without proposing first when harvesting a session — the user picks. (Direct corrections are exempt.)
  • Don't capture speculation as fact; decisions are things the user agreed to.
  • Don't ignore
    similar
    — a near-match you should have merged into is graph rot.
  • Don't rewrite a whole node when a summary tweak suffices; pass only the fields that changed.
  • Don't delete edges. Supersede (
    connect
    ) or retire (
    forget
    ).
用一句话说明:成功留存的信息单元数量(创建vs修订),并附上别名。

反模式

  • 不要在会话梳理时跳过提议环节直接保存——需由用户选择。(直接修正除外。)
  • 不要将推测内容作为事实保存;决策必须是用户认可的内容。
  • 不要忽略
    similar
    字段——本该合并的近似匹配项会导致图谱冗余。
  • 不要在只需调整摘要时重写整个节点;仅传递发生变化的字段。
  • 不要删除边。应使用替换(
    connect
    )或退役(
    forget
    )操作。