大模型-Agent记忆体系(豆包客服场景)

场景一:豆包客服

我之前找豆包,咨询过我的电动车座椅的尺寸大小,给豆包说了电动车的型号
过了 2 周之后,我咨询我电动车没办法充电,他立刻拿到了我电动车的型号,用这个型号去判断为什么不能充电。

核心逻辑

核心实现:用户身份唯一ID+会话长期记忆知识库+业务实体抽取绑定,搭配意图识别触发关联检索

流程步骤

  1. 【输入层】用户问题:我的电动车为什么不能充电
  2. 【模型层】意图识别Agent:
    2.1 顶层意图分类(主意图):设备故障咨询;
    2.2 领域子意图+实体词归类:提取到核心名词(电动自行车),映射到封闭集类目transportation(交通工具)-> electric_bicycle(电动自行车)
  3. 【规则层】触发规则,该意图需要拉取用户私有资产实体。当意图 = 设备故障 / 配件咨询 / 使用参数查询,且归属领域 = 交通工具 → 执行读取当前用户 transportation 分类下全部结构化 KV 实体,并在捞出的交通工具实体里做二次过滤(只保留sub_type = electric_bicycle,vehicle_model=台铃XXX
  4. 【模型层】请求改写Agent:改写后台铃 XX 型号电动自行车,本次为该车辆充电故障排查,请结合车型硬件结构分析原因。

记忆实现

画像存储格式

  • 主存储:结构化键值 KV 库(关系数据库),负责确定性用户画像实体;
  • 辅助存储:向量数据库,负责非结构化对话语义兜底记忆。

画像合并清理

  1. KV 结构化键值画像:强规则驱动合并 + 淘汰,以业务语义、时间戳、用户修正为核心。
  2. 向量非结构化画像:无 “合并” 概念,只有增量追加 + 冷数据淘汰,靠检索排序做内容取舍
维度 键值画像 向量画像
记忆合并方式 主键冲突时间戳覆盖、LLM 语义判定更新 / 新增、离线归一化 不合并,仅离线摘要压缩后单条向量化,增量追加
自动淘汰规则 长期未访问冷淘汰、信息迭代覆盖、条数上限控制 TTL 过期、冷访问淘汰、高重复相似度去重

键值画像合并清理

触发时机:会话关闭时触发,统一取本次会话全部多轮上下文,一次性执行实体抽取。
取数据源:就是本次会话的聊天记录+该用户存量键值画像。
意图列表:封闭集(存储结构固定,便于后续检索使用)。

  1. 【请求进入】用户本轮所有对话信息。
  2. 【类目判断LLM】在给定封闭集中输出「类目(交通工具)」。
  3. 【数据查询】根据userId+类目查询数据库,取出该用户所有交通工具存量资产。
  4. 【实体抽取LLM】对比历史资产,判断是update/add画像信息。
  5. 【离线归一化】对用户下全量的画像数据,进行离线批量清洗,进行归一化(事后体检,把日积月累的脏数据、同义冗余、抽取错误一次性修复);

向量画像合并清理

  1. 触发时机:T+1 定时离线批量执行(非实时、会话结束不触发)。
  2. 读取数据源:用户昨日全部会话聊天记录(跨会话、跨轮次合并)。
  3. 提取范围(核心)开放集
    3.1 ✅ 正向提取:用户侧稳定信息、长期诉求、持续偏好、过往经历、确定事实
    3.2 ❌ 需要剔除(Prompt 强制约束)
    3.2.1 模型单方面输出的回答、临时建议;
    3.2.2 一次性临时查询、瞬时闲聊、无长期价值客套话、单纯情绪宣泄;
    3.2.3 短期临时计划(很快失效的事件)。
  4. 输出产物:合并同话题对话 → 生成话题摘要文本 → Embedding 向量 → 持久入库构成向量画像;同时配套前置价值过滤:无长期记忆价值的对话直接跳过,不生成向量记录。

举例子
需要记录:用户拥有比亚迪汉,在意冬季能耗、反感高速噪音(稳定偏好 / 事实)
不记录:“今天想开车去超市”(单次临时行动,无长期价值)

意图列表来源

底层源头:算法侧人工梳理的业务场景枚举表,产品&算法预定义的封闭枚举体系

产品根据长期记忆需要沉淀哪些信息,先圈定可落库实体的准入意图白名单,是一份固定配置文档,例如:
可允许执行实体抽取并写入长期记忆的意图(仅举例):

  1. 物品 / 设备参数咨询
  2. 个人自有资产告知(车辆、数码、家具等)
  3. 家庭成员信息告知
  4. 长期饮食、生活固定偏好说明
  5. 常住地、常用联系方式(仅非敏感留存)
  6. 长期任务、固定要求、个人习惯设定

第二层:固化到 LLM 抽取 Prompt 指令里(运行时生效)

在每次后置异步执行抽取任务时,给大模型的系统提示词直接粘贴这份意图全集,强制要求模型:

  1. 先对本轮对话判定属于哪一类意图;
  2. 如果不在可持久化白名单意图内,直接返回:不执行实体抽取,不入库;
  3. 只有命中白名单,再继续做 NER 实体提取。
    相当于把静态配置表,通过 Prompt 注入变成模型可识别的判断标准。

第三层:规则引擎兜底二次校验

即便大模型误判意图,后台还有硬编码规则拦截:
比如意图识别为 “闲聊”“临时问答”,直接切断入库流程;
同时配置关键词黑名单,提及身份证、银行卡、住址等,无论什么意图都禁止实体落地。

画像隐私处理

维度 做法 明细
数据隔离 用户粒度数据隔离 所有记忆数据统一以 UserID 作为顶级分区键
采集脱敏 记忆内容本身的最小化采集原则 只抽取长期静态非敏感事实,直接丢弃敏感意图
存储加密 存储到DB的数据进行加密处理 向量不可逆、存储加密、数据自动过期;
调用权限 严格的检索触发规则,避免隐私泄露式乱调用 只有修车、用车这类意图才调取标签,闲聊绝不触碰私有画像。

附录

短期记忆、中期记忆、长期记忆

短期记忆:本质是上下文窗口、工作记忆、临时缓存。
长期记忆:向量记忆、图谱记忆、键值记忆、事件流记忆

短期记忆:依托Prompt、按顺序调用、无持久化能力。
长期记忆:独立记忆,事件触发写入、主动检索召回、跨场景复用、定期运维清理。

记忆存储边界:
长期记忆:用户画像,项目信息,客观数据,稳定偏好。
短期记忆:临时提问、运算变量、隐私片段。

长期记忆写入流程:事件抽取->提炼过滤->结构化->Embedding
检索机制:相似度召回->Rerank重排->拼接Prompt

核心工程细节:独立命名空间、隐私加密

常态化治理:合并重复。清理过期偏好。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容