Nox-Lumen MfgNox-Lumen Mfg

Memory 记忆系统

为什么需要 Memory

单个 Session 的上下文是短期的,而用户需要:

  • 保留跨 Session 的关键事实(客户偏好、既往决策)
  • 接入领域知识库(专利语料、汽车规范、企业规章)
  • 让 Agent 在需要时检索相关背景

Memory 层级

层级生命周期典型内容
Session Memory当前会话当前对话历史、工作变量
User Memory跨会话、属于用户个人偏好、常用术语
Tenant Memory跨用户、属于组织企业规章、术语表、模板
Knowledge Base外部接入领域文档、参考资料、历史产出

记忆检索

系统支持多种检索方式:

  • 语义检索 — 基于向量相似度
  • 关键词检索 — 精确匹配
  • 结构化查询 — 按元数据(时间、作者、标签)

跨会话搜索

通过 Graft 技能,Agent 可以在用户授权下跨 Session 检索和引用成果。

从 KB 到 LTM 的加工路径

KB(Knowledge Base)和 LTM(Long-Term Memory)在平台里承担不同职责

KBLTM
粒度大颗粒(整篇文档 / 一条 Bug 记录)小颗粒(一条 fact / preference)
存储原文 + 向量索引结构化 fact + 溯源元数据
用途精确 RAG 检索原始内容检索已加工的规律与洞察
写入用户导入或系统产出Agent 在对话中沉淀 定时加工器产出

两者不是替代关系,而是层级关系——KB 是原始素材,LTM 是从素材中加工出来的规律

两条记忆流

平台里的 LTM fact 来源于两条并行的流

Rendering diagram…

流 1(对话即时):单轮交互触发,粒度碎片化,回答"Agent 该怎么跟我说话"。承载者是 memory-sdk

流 2(KB 加工):定时批量触发,粒度聚合,回答"这个项目 / 这家企业沉淀出了什么规律"。承载者是加工器类 skill

加工器范式(通用模板)

任何"把 KB 中某类结构化数据加工成 LTM fact"的 skill,都遵循同一套模板:

环节内容
触发跟随平台 LTM cron(默认 6h),非实时
增量只处理未打 ltm_extracted_at 标记的条目
聚合维度按领域特征设计多维聚合(典型 2–4 维)
confidence基线 + 数量加权 + 严重度加权,上限 0.95
溯源source_*_ids 记录来自哪些原始条目
更新 vs 新增比对 source_*_ids 决定是 update 还是 insert
误报回溯原始条目被标无效时,下次 cron 重算并降 confidence / 删除
容量保护单次产出上限 + 单条长度上限 + 溯源列表上限

已实现的加工器

加工器输入(KB)输出(LTM)消费端
bug-import历史 Bug 记录bug_pattern 四维 factL2 code-review

未来扩展(需求变更加工器、审查意见加工器、事故报告加工器等)可以按同一范式实现——新加工器本身就是 skill,通过 skill-architectbug-import 的模式设计即可。

为什么加工环节是定时的

原因说明
模式需要累积单条数据看不出模式,必须 ≥N 条后才能聚合
成本可控加工成本(LLM 调用 + 聚合计算)集中在 cron 周期,不阻塞业务交互
避免半成品实时加工会在数据刚进来时产出"1 条证据支持"的 fact,既浪费又污染 LTM
自然对齐业务节奏Bug / 需求变更本身就是定期批量事件,加工节奏对齐即可

相关文档

On this page