核心考点:
向量数据库不是万能的
分层记忆架构设计
有没有解决过记忆在时间维度状态混乱的问题
一、总体回答
基础框架:VectorDB+RAG
向量数据库和RAG是基础,但是实际生产中会面临模糊匹配和精确查找的冲突,时间状态的盲区问题
四层记忆架构:(各层读写策略不同)
会话元数据
结构化用户档案
对话摘要
滑动窗口
短期会话+长期会话,通过Prompt拼接:
长期会话(人物设定,对话风格)+前几轮对话摘要+最近几轮对话记录
深层状态管理:
Ledger+Views+Policy三件套管理状态
双时间机制-解决时间盲区
程序性技能-把高频成功的路径固化成程序性技能(skills生成)
二、Memory是一套完整机制
(分层设计+显示读写+时间状态管理+程序性经验沉淀)
2.1 向量数据库局限
擅长模糊语义匹配 ,在精准查找中没有优势
时间状态问题:比如用户上周说“我在上海”,这周说“我搬到北京”这两条信息语义相似度接近,Agent查的时候可能同时捞出,分不清当前状态,产生时间盲区,旧状态没有被重新覆写,Agent可能会带着过期时间决策
2.2 ChatGPT四层分层设计
会话元数据:对话基本信息,用完就弃不持久化
结构化用户档案:用json格式存用户核心属性(偏好,身份,历史决策,精准读取,不走向量检索,直接键值查找)
对话摘要:最近几次对话浓缩成主题关键词,保留语义但压缩Token
滑动窗口:处理当下对话上下文,超出对话token就丢弃
2.3 核心三大命题
Memory不是存储区,而是影响决策的外部状态:记忆系统是Agent行为的输入变量,而不是可有可无的日志仓库
系统三件套(ledger+Views+policy)
Ledger原始账本:只追加不修改,保证数据可溯源
Views派生视图:把原始数据转换成大模型能直接理解的格式,不同任务不同视图
policy控制策略:决定什么时候读,什么时候写和遗忘,遗忘策略在隐私合规很重要
要建立显示的慢思考回路:让Agent能主动调用记忆工具,而不是每次被动的把记忆全部塞进Prompt,这样才能在长任务里保持上下文精准高效
2.4 时间约束
解决方法:双时间机制
Vaild Time:记录这条信息在现实世界里的有效时间段
Transaction事务时间:记录这条时间是什么时候被写入的
两个时间戳配合才能正确处理用户搬家这类状态覆写
2.5 程序性技能
经验转化为SOP,把多次成功的路径转化成程序技能skills,下次遇到同类任务可以直接调用skill,而不是从0规划