mirror of
https://github.com/Youzini-afk/ST-Bionic-Memory-Ecology.git
synced 2026-06-13 18:31:16 +08:00
2.9 KiB
2.9 KiB
记忆模型
ST-BME 的记忆是一张图谱:节点是记忆单元,关系(边)连接它们。本文档说明节点类型、关系类型,以及主客观分层和故事时间线这两套横切机制。
节点/关系 schema 定义在 graph/ 下,可被任务预设扩展。
节点类型
常见类型(具体以 schema 定义为准):
| 类型 | 含义 |
|---|---|
event |
事件:某个时间点发生的事 |
pov_memory |
视角记忆:某个角色视角下的认知/记忆 |
thread |
线索:跨多个事件的剧情线 |
synopsis |
概要:全局或区段的总结 |
reflection |
反思:从事件中提炼的洞察 |
rule |
规则:设定/约束类记忆 |
| 实体类 | 角色、地点、物品等命名实体 |
每个节点带 importance(重要度 0-10)、accessCount(被召回次数)、createdTime、scope(归属范围)、可选 storyTime/storyTimeSpan 等。
节点不被物理删除,而是归档(archived = true)——这保护了历史恢复和审计。
关系类型
边带 relation(关系名)、strength(强度 0-1)、edgeType。关键的几种:
| 关系 | 说明 |
|---|---|
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:时间点storyTimethread/synopsis/reflection:时间跨度storyTimeSpan
提取时可由 LLM 给出 batchStoryTime 或操作级 storyTime,解析后更新时间线段。时序合成边(temporalLinkStrength=0.2)让时间相邻的记忆在图扩散里有弱连接。
故事时间线状态见 graph/story-timeline.js,认知/区域状态见 graph/knowledge-state.js。