4. 记忆管理基础

在金融智能体的长任务执行中,记忆管理决定了它能否“记住客户是谁、上次聊到哪、风险偏好有没有变化”。如果只依赖大模型的上下文窗口,任务一长就会遗忘、串号,甚至给出与客户历史风险等级相冲突的建议。本节从短期记忆与长期记忆的分工出发,讲清记忆的编码、存储与检索机制,并落到金融场景的特殊约束上。

一、核心原理:短期记忆与长期记忆的分工

短期记忆(Short-Term Memory, STM)对应当前会话或当前任务的工作区,通常直接放在上下文窗口中,特点是容量有限、读写快、随会话结束而失效。长期记忆(Long-Term Memory, LTM)则持久化在外部存储中,容量近乎无限,需要经过检索才能进入上下文。二者不是替代关系,而是“工作台 + 档案库”的协作关系。

在金融智能体中,短期记忆承载当前对话轮次、正在执行的工具调用参数、临时计算中间结果;长期记忆承载客户画像、历史交易偏好、合规结论、既往投顾建议等跨会话信息。一个典型的长任务,如“为张先生做一份年度资产配置复盘”,需要短期记忆维持多轮工具调用的连贯性,同时从长期记忆中调取张先生过去一年的持仓、风险测评和调仓记录。

金融智能体记忆分层与流转 短期记忆 STM 当前会话上下文窗口 工具调用参数 / 中间结果 容量有限 · 会话结束失效 长期记忆 LTM 向量库 / 关系库 / 文档库 客户画像 · 历史交易 · 合规结论 容量大 · 持久化 · 需检索 记忆管理器 编码 · 存储 · 检索 · 遗忘 一致性校验 记忆生命周期 编码 存储 检索 遗忘/更新

二、方法流程:记忆的编码、存储与检索

记忆管理可以拆成三个连续动作:编码、存储、检索。编码决定“记什么、怎么记”,存储决定“放在哪、怎么组织”,检索决定“怎么找回来、找得准不准”。

  1. 编码:把原始对话、工具返回、文档内容转成可存储的结构。常见做法是抽取实体(客户ID、产品代码、金额、日期)和意图标签,再生成向量表示。金融场景中,金额、日期、风险等级必须结构化保留,不能只留一段自然语言摘要。
  2. 存储:短期记忆放在上下文或会话缓存;长期记忆按类型分库——客户画像进关系库,非结构化纪要进向量库,合规结论进带版本号的文档库。存储时要写入时间戳、来源、置信度,便于后续审计。
  3. 检索:根据当前任务生成查询,先做元数据过滤(如客户ID、时间范围),再做向量相似度召回,最后重排序。检索结果要经过一致性校验,避免把过期或冲突的记忆注入上下文。
# 记忆写入示例(伪代码)
memory = {
  "customer_id": "C10293",
  "type": "risk_profile",
  "content": "风险测评结果:稳健型(C3)",
  "structured": {"risk_level": "C3", "score": 62},
  "source": "2024-03-15 测评问卷",
  "confidence": 0.95,
  "ttl": "365d"
}
memory_store.upsert(memory)

# 检索示例:先过滤再召回
results = memory_store.search(
  query="张先生当前风险偏好",
  filter={"customer_id": "C10293", "type": "risk_profile"},
  top_k=3,
  rerank=True
)

三、金融领域记忆的特殊要求

金融业务对记忆的要求比通用对话更严格,主要体现在四个方面:准确性、时效性、合规性与可审计性。一条错误的记忆可能导致不当销售或投资建议,因此不能简单照搬通用记忆方案。

要求维度 通用场景做法 金融场景强化做法
准确性 语义相似即可 金额、日期、风险等级必须精确匹配,结构化字段优先
时效性 长期保留 风险测评、合规结论设置有效期,过期自动降权或失效
合规性 较少约束 敏感信息脱敏存储,访问需鉴权,禁止跨客户串用
可审计性 可选 每次读写留痕,记录来源、版本、操作者,支持回溯

高风险误区:把不同客户的记忆混在同一向量空间且不做元数据隔离,检索时可能把A客户的风险等级召回给B客户,造成严重合规事故。金融智能体的记忆检索必须强制带客户ID过滤。

四、案例与复盘:一次资产配置复盘任务

场景:客户经理让智能体为张先生生成年度资产配置复盘。智能体先读取短期记忆中的当前指令,再从长期记忆检索张先生的持仓、风险测评、历史调仓记录。检索时发现两条风险测评记录:2023年C4、2024年C3。此时不能简单取最新,而要结合时间戳和业务规则判断——以最近一次有效测评为准,并在输出中注明依据。

复盘要点:记忆冲突是金融长任务的常态。处理原则是“结构化优先、时间最新优先、来源权威优先”,三者冲突时以合规规则为准,并在最终输出中向用户说明记忆来源,保证可解释性。

另一个常见误区是把短期记忆当长期记忆用:会话结束后上下文清空,客户画像丢失,下次对话又要重新询问,体验割裂。正确做法是在会话结束前触发一次记忆固化,把值得长期保留的信息写入LTM,并标记来源和有效期。

总结来看,短期记忆保证任务当下的连贯,长期记忆保证跨会话的连续性;编码、存储、检索构成记忆管理的闭环;而金融领域的准确性、时效性、合规性与可审计性,则要求我们在通用方案之上增加结构化字段、有效期管理、客户隔离和读写留痕。掌握这三点,才能让金融智能体在长任务中既“记得住”,又“记得对”。