跳到主要内容

第 1.7.2 节:把短期上下文和长期记忆放进不同存储边界

进入实现之前,先围绕“把短期上下文和长期记忆放进不同存储边界”划清适用场景、不做范围和判断条件。完成本节后,你应该能够写出短期上下文和长期记忆的适用场景、不适用场景、前置条件和进入工程实现的判断标准。

核心概念​

状态​

状态是一次任务执行中的当前事实。它记录 Agent(智能体)现在处于哪一步、已经知道什么、还缺什么、调用过哪些工具、工具结果是什么、是否需要人工确认、为什么停止。

人话解释:状态就是任务进度条和任务记录本。它不是聊天全文,而是告诉系统“现在处理到哪里了”。

项目位置:在客服工作台里,状态连接第 1.5 章的分流结果和第 1.6 章的工具调用结果。没有状态,系统不知道用户补充的订单号是不是已经用过,也不知道工单是否已经创建。

工程动作:你要设计状态字段、状态迁移、更新规则、日志记录、恢复策略和停止条件。

面试说法:Agent 的状态管理不是保存聊天记录,而是把多轮任务拆成可追踪、可恢复、可审计的执行过程。

会话​

会话用于组织同一个用户在一段时间内的多轮交互。会话通常包含 session_id(会话编号)、用户身份、当前任务摘要、最近几轮关键输入和当前状态。

人话解释:会话像一个客服窗口。用户没有关闭这个窗口前,系统应该知道刚才聊到哪里。

项目位置:在客服工作台里,会话让用户补充订单号后,系统能接上上一轮退款请求,而不是把它当成一个全新的问题。

工程动作:你要定义 session_id(会话编号)、会话过期时间、会话摘要、上下文裁剪规则和多任务冲突处理。

面试说法:会话管理解决的是多轮交互的连续性,但它不等于长期记忆,也不应该无限保存全部聊天。

记忆​

记忆是跨会话或跨任务保留的信息。它可以保存用户偏好、已确认的长期设置、常见问题摘要或客服处理经验,但不能随意保存敏感信息。

人话解释:记忆是“下次还能用的信息”,不是“什么都记下来”。

项目位置:客服工作台可以记住用户偏好的沟通渠道,或记住某类问题的处理经验;但订单状态、退款结果、客户隐私必须回到业务系统查询。

工程动作:你要设计记忆类型、写入条件、读取权限、保存周期、删除机制和审计记录。

面试说法:我会把记忆当成有权限和生命周期的数据治理问题,而不是简单把历史对话放进向量库。

短期上下文​

短期上下文是本次模型调用需要看到的材料,例如当前用户问题、当前状态摘要、必要的工具结果和本轮任务指令。

短期上下文不应该包含全部历史。它应该服务于当前任务,越精确越好。

长期记忆​

长期记忆是跨会话保留的信息。它必须满足三个条件:

读图重点:能记住不等于应该记住:先判断信息属于哪种生命周期,再决定存储位置和权限。

  • 对后续任务有明确价值。
  • 用户或业务规则允许保存。
  • 有权限、过期和删除机制。

如果一个信息只是当前任务临时需要,就不应该进入长期记忆。

本章在客服 Agent(智能体)工作台中的位置​

客服工作台可以分成 7 层。本章负责其中的状态与记忆治理层。

层级作用本章关注点
用户入口接收用户问题和补充信息维护 session_id(会话编号)和用户身份。
分流层判断意图、风险和下一步动作接收第 1.5 章输出并写入状态。
工具治理层查订单、查政策、创建工单接收第 1.6 章工具结果并更新状态。
状态与记忆层记录当前进度、会话摘要和可保存信息本章核心。
人工协作层转人工、审批、复核记录审批状态和人工确认。
日志审计层复盘每一步为什么发生记录状态迁移和停止原因。
展示层给用户和客服展示当前处理结果展示下一步动作、缺失信息和处理进度。

状态与记忆层的价值在于:让 Agent 不只是会回答,而是能稳定完成多轮任务。

系统流程图​

这张图的重点是:每一步都要更新状态。否则系统只能依赖模型临时记忆,无法验收和复盘。

读图重点:任何输入、工具或人工结果都先更新状态;恢复和停止由规则决定,不由模型凭感觉继续。

模块拆分​

客服工作台的状态与记忆能力可以拆成 7 个模块。

模块作用关键产出
会话管理器创建、读取、过期和恢复会话session_id(会话编号)、会话摘要、过期策略。
任务状态管理器维护当前任务进度current_step(当前步骤)、missing_fields(缺失字段)、stop_reason(停止原因)。
上下文构造器选择本轮模型需要看到什么当前输入、状态摘要、必要工具结果、边界规则。
工具结果摘要器把工具返回变成可保存状态订单状态摘要、政策结果摘要、工单创建状态。
记忆策略模块决定哪些信息能长期保存写入条件、读取权限、保存周期、删除机制。
恢复处理器处理失败、中断和重试retry_count(重试次数)、recovery_action(恢复动作)。
状态审计日志记录每次状态变化trace_id(追踪编号)、事件、前后状态、操作来源。

模块拆分的价值是让读者知道“记忆”不是一个神秘功能,而是一组可设计、可测试的工程模块。

继续学习​