智能摘要
Agent记忆机制的核心在于分层设计:当前对话依赖滑动窗口,长期事实通过结构化档案卡存储以确保精确读取,近期对话由轻量级摘要列表记录脉络,历史案例则适用向量检索。ChatGPT的四层架构表明,非结构化数据才需向量数据库,多数场景下结构化存储结合摘要机制更高效、准确且可控。
— 此摘要由AI生成仅供参考。
通过对话实验逆向得出 ChatGPT 的记忆系统未使用向量数据库、RAG、embedding 召回及相似度匹配,而是采用 4 层纯结构化设计。尽管 ChatGPT 是对话产品而非 Agent,但其 memory 设计思路回答了 Agent 记忆系统的核心问题:何时该用检索,何时不该。
- 精确调用需求:向量检索是模糊匹配,无法确保关键事实类信息的精准命中。例如用户预算等需精确读取的信息,结构化存储可直接查对应字段,避免歧义。
- 时间处理问题:向量数据库采用追加写入方式,当用户信息更新(如预算从 5 万改为 8 万)时,可能同时召回新旧数据导致模型混淆;而结构化存储可直接用新值覆盖旧值,确保唯一答案。
- 当前对话上下文:无需存储,存在于滑动窗口中。
- 用户长期事实:包括名字、职业、偏好、目标等,需结构化档案卡显示存储,支持随时覆盖与精确读取。
- 近期对话摘要:记录用户最近关心的话题和聊天方向,采用轻量级摘要列表,无需存储原文。
- 历史经验和案例:如过去成功的解决方案、失败的尝试,此类非结构化内容适合用向量检索。
- 第一层会话元数据:包含设备类型、时区使用习惯等,不存入长期记忆,仅用于当场调整回复风格。
- 第二层用户记忆:结构化档案卡,存储用户主动提供或系统识别的稳定事实(如名字、职业、长期项目等),支持增删。
- 第三层近期对话摘要:整理最近十几次聊天的标题和关键信息为轻量级清单,不存原文、不做检索,静态注入。
- 第四层滑动窗口:存储当前对话的最近 n 条消息,超过 TOKEN 上限则丢弃。
当 memory 内容是非结构化、数量开放增长且查询为模糊语义时适用,例如客服 Agent 从数万条历史工单中查找相似案例。若仅需记住用户基本信息和对话脉络,结构化存储加摘要机制更高效(更快、更准、更可控)。
memory 是分层系统,不同类型记忆需采用不同存储和读取策略:当前上下文靠滑动窗口,长期事实靠结构化存储,近期脉络靠轻量摘要,历史案例靠向量。向量数据库是工具之一,非唯一或万能方案。面试时可先询问 “memory 需要存什么类型的信息”,体现对 Agent 记忆系统的深度理解。
文章评论