跳到主要内容

核心对象模型

羽忆存储的不是原始聊天消息,而是经过整理后的结构化对象。这样设计的原因很直接:会话消息天然噪声高、粒度混乱、生命周期不一致,不适合直接作为可长期复用的记忆单元。

系统围绕三类核心对象展开:

对象定位是否持久化
Memory Object长期稳定记忆
History Record历史上下文材料
Recall Context Block面向任务的召回结果块否,运行时生成

Memory Object

Memory Object 对应 Stable Memory,是系统里的长期记忆单元。它强调“可复用”和“可控制”,所以字段设计不仅要能表达内容,还要能支撑后续的排序、冲突提示和版本管理。

关键字段

字段说明
id全局唯一标识,通常使用 mem_ 前缀
memory_type记忆类型,例如偏好、项目约定、决策、事实
title / summary / content分别承担列表展示、召回注入和完整存储
scope记忆归属和可见范围,是权限和召回的共同边界
semantic_key语义聚合键,用于覆盖、去重与冲突定位
importance重要性评分,影响召回优先级
confidence可信度评分,用于提醒调用方是否应盲信
status当前状态,参与默认召回与控制流
version内容版本号,仅内容更新时递增

推荐类型

类型典型内容
preference用户表达的稳定偏好
project_rule项目级约定与规范
decision已确认的技术或业务决策
fact经过确认的事实信息
workflow稳定工作流或操作方法
reference长期有效的参考信息

状态机

Memory Object 默认围绕以下状态流转:

active -> archived
active -> invalid
active -> deleted
archived -> active
invalid -> active
deleted -> active (仅在 tombstone 保留窗口内)

这里把“归档”和“失效”单独拆开,是为了避免用户只能在“正常”与“彻底删除”之间二选一。很多记忆不是完全错误,只是暂时不参与默认召回,或者当前已经不再准确,这两类情况需要明确区分。

History Record

History Record 对应 History Recall,用于记录任务过程中的阶段性材料。它允许内容更自然、更接近上下文原貌,但仍然保留了最基本的结构,便于后续召回编排。

核心差异

维度Memory ObjectHistory Record
生命周期长期保留可降级、可过期
写入模式幂等 / 版本化覆盖以追加为主
召回角色主骨架补充上下文
内容风格更精炼更贴近任务过程

常见类型

类型说明
task_summary阶段任务总结
decision_trace决策过程与比较
session_excerpt会话关键片段
recent_progress最近进展
incident_context故障与问题上下文

Recall Context Block

Recall Context Block 不直接入库,而是 Recall Orchestrator 在运行时生成的结果块。它的目标不是“把检索结果原样吐出来”,而是把模型当前真正需要的材料包装成一段可消费上下文。

一个典型结果块会包含:

  • stable_memories
  • history_records
  • conflicts
  • freshness_notes
  • token_estimate
  • truncated

把这个对象单独定义出来很重要,因为它意味着系统从一开始就把“召回”视为独立产品能力,而不是简单搜索接口的包装层。