Files
ST-Bionic-Memory-Ecology/docs/features/memory-model.md
2026-05-31 17:07:58 +00:00

2.9 KiB
Raw Blame History

记忆模型

ST-BME 的记忆是一张图谱:节点是记忆单元,关系(边)连接它们。本文档说明节点类型、关系类型,以及主客观分层和故事时间线这两套横切机制。

节点/关系 schema 定义在 graph/ 下,可被任务预设扩展。

节点类型

常见类型(具体以 schema 定义为准):

类型 含义
event 事件:某个时间点发生的事
pov_memory 视角记忆:某个角色视角下的认知/记忆
thread 线索:跨多个事件的剧情线
synopsis 概要:全局或区段的总结
reflection 反思:从事件中提炼的洞察
rule 规则:设定/约束类记忆
实体类 角色、地点、物品等命名实体

每个节点带 importance(重要度 0-10accessCount(被召回次数)、createdTimescope(归属范围)、可选 storyTime/storyTimeSpan 等。

节点不被物理删除,而是归档archived = true)——这保护了历史恢复和审计。

关系类型

边带 relation(关系名)、strength(强度 0-1edgeType。关键的几种:

关系 说明
related 一般关联(提取时在同批节点间默认建立,强度 0.25
temporal_update 时序更新(节点状态随时间变化,强度默认 0.95
updates 状态更新事件指向被更新节点(强度 0.9
contradicts 矛盾/抑制edgeType 255——在图扩散里作为抑制边,反向传播负能量

抑制边是 ST-BME 处理"矛盾记忆"的机制:见 ../algorithms/diffusion-and-dynamics.md

主客观分层

记忆按"谁的视角"分层,这是召回时认知边界过滤的基础:

  • 角色 POV:某角色主观认知的记忆。注入时按 owner 分组([Memory - Character POV: <owner>])。
  • 用户 POV:用户视角记忆。注入时带"非角色事实"警告(避免模型把用户知道的当成角色知道的)。
  • 客观:不绑定视角的事实,又分"当前区域"和"全局"。

召回时通过认知门(computeKnowledgeGateForNode)决定某节点对当前视角是否可见,不可见则跳过。详见 ../algorithms/retrieval.md 的"认知边界过滤"。

故事时间线

记忆带"故事内时间"(不是真实时间),用于按剧情时间线组织:

  • event / pov_memory:时间点 storyTime
  • thread / synopsis / reflection:时间跨度 storyTimeSpan

提取时可由 LLM 给出 batchStoryTime 或操作级 storyTime,解析后更新时间线段。时序合成边(temporalLinkStrength=0.2)让时间相邻的记忆在图扩散里有弱连接。

故事时间线状态见 graph/story-timeline.js,认知/区域状态见 graph/knowledge-state.js