当我们谈论 AI 记忆时,常见的做法是 “存储一切→向量嵌入→Top-K 检索→注入上下文”,这本质上只是一个带检索功能的上下文窗口放大器。真正的认知记忆应当具备层级性、自组织能力和时间感知特性 —— 它会遗忘不重要信息、主动整合碎片化知识、并在发现矛盾时主动标记而非沉默以对。YantrikDB 正是围绕这三个核心能力构建的认知记忆引擎,其设计思路对构建持久化 AI 系统具有重要参考价值。

五重索引架构:从存储到认知

YantrikDB 摒弃了传统向量数据库的单一检索范式,采用五重索引协同工作的架构。向量索引基于 HNSW 算法实现语义相似性搜索;图索引维护实体关系网络,支持实体画像聚合和桥接检测;时间索引提供时间感知查询能力;衰减堆依据重要性分数实现类似人脑记忆的主动退化机制;键值存储则承载快速事实查询和会话状态管理。这种多索引分工的设计使得每种检索场景都能调用最合适的索引,避免了用单一向量相似度应对所有问题的粗暴做法。实际工程中,建议根据场景分配索引权重:语义类查询以向量索引为主、时间类查询优先时间索引、实体关联类查询走图索引路径。

遗忘机制:重要性衰减与主动驱逐

传统数据库假设数据永恒存在,而认知记忆系统必须处理信息老化问题。YantrikDB 的遗忘机制基于双重信号:时间衰减与重要性评分。每条记忆在记录时可以指定 importance 参数(0 到 1 之间),系统会将其与记录时间结合计算当前有效分数。decay() 方法会遍历衰减堆,将低于阈值的记忆标记为可驱逐状态。这种设计的工程参数包括:默认衰减半衰期建议设为 7 天,可通过 importance 参数对单条记忆进行个性化调整 —— 关键决策类记忆可设为 0.9 以上以保持长期有效,而临时上下文可设为 0.3 以实现快速淘汰。值得注意的是,遗忘操作会生成墓碑标记并通过 CRDT 机制同步到其他设备,确保 “被遗忘的记忆 stay forgotten”。

语义整合:think () 方法的认知工作流

当对话历史积累到一定程度,碎片化记忆需要被压缩和提炼。YantrikDB 通过 think() 方法执行认知维护工作流,该方法依次执行四个步骤:语义整合将相似的记忆合并、矛盾扫描检测知识库中的冲突、模式挖掘发现跨领域关联、触发器评估生成值得主动触达的信息。整合过程中,系统会提取共性特征生成新的综合记忆,同时保留原始记忆的引用以便追溯。工程实践中建议将 think() 作为后台任务定期触发(如每完成 20 次对话或每 24 小时),而非每次对话结束时都执行,以平衡认知质量和计算开销。整合结果会返回结构化报告,包含 consolidation_count(合并次数)、conflicts_found(发现矛盾数)、patterns_new(新发现模式数)等指标,便于监控记忆系统的健康状态。

矛盾检测:从被动存储到主动标记

当两条记忆在事实上相互矛盾时,YantrikDB 不会自行决定哪个是正确的,而是创建矛盾段并标记需要用户介入。系统会记录矛盾的两个版本、时间戳和优先级,并在触发器队列中生成待处理任务。这种设计的核心原则是 “检测但不裁决”——AI 应该自然地向用户提问而非擅自覆盖旧记忆。矛盾检测的触发条件包括:同一实体属性出现冲突值、时间线上的事件顺序矛盾、情感态度的剧烈变化等。工程参数上,建议将高优先级矛盾阈值设为 certainty 差异超过 0.5 或时间间隔超过 30 天,确保只有真正重要的矛盾才会触发用户交互。

工程落地的关键参数

将 YantrikDB 集成到 AI Agent 时,有几个关键参数需要根据实际场景调优。嵌入维度默认 384,可根据语义复杂度调整为 768 或 1024;向量索引的 HNSW 参数 ef_construction 建议设为 200 以平衡建图质量和耗时;记忆重要性分布建议遵循幂律 —— 约 20% 的记忆重要性高于 0.7,60% 介于 0.3 到 0.7,剩余 20% 为低重要性临时信息。对于会话管理,session_startsession_end 之间的对话会自动关联到同一会话上下文,会话结束时系统会计算该会话的平均情感 valence、重要主题分布等信息,这些元数据对后续检索具有显著的加权效果。

适用场景与局限性

YantrikDB 特别适合需要长期记忆的 AI 助手、个人 Agent 和多会话客服场景。其相对于文件式记忆(CLAUDE.md 类)在 token 消耗上优势明显:100 条记忆时文件方式需要约 1770 tokens,而 YantrikDB 仅需 69 tokens,节省 96%;当记忆量增至 5000 条时,文件方式已超出 32K 上下文窗口,YantrikDB 仍能保持在 53 tokens 级别。然而,该方案不适用于需要强一致性事务的场景,其冲突解决机制偏向最终一致而非立即一致;此外,对超大规模知识图谱(百万级实体)的支持仍在优化中,当前版本更适合个人级记忆管理。


资料来源:YantrikDB 官方仓库(https://github.com/yantrikos/yantrikdb)