4. 记忆管理基础
在金融智能体的长任务执行中,记忆管理决定了它能否“记住客户是谁、上次聊到哪、风险偏好有没有变化”。如果只依赖大模型的上下文窗口,任务一长就会遗忘、串号,甚至给出与客户历史风险等级相冲突的建议。本节从短期记忆与长期记忆的分工出发,讲清记忆的编码、存储与检索机制,并落到金融场景的特殊约束上。
一、核心原理:短期记忆与长期记忆的分工
短期记忆(Short-Term Memory, STM)对应当前会话或当前任务的工作区,通常直接放在上下文窗口中,特点是容量有限、读写快、随会话结束而失效。长期记忆(Long-Term Memory, LTM)则持久化在外部存储中,容量近乎无限,需要经过检索才能进入上下文。二者不是替代关系,而是“工作台 + 档案库”的协作关系。
在金融智能体中,短期记忆承载当前对话轮次、正在执行的工具调用参数、临时计算中间结果;长期记忆承载客户画像、历史交易偏好、合规结论、既往投顾建议等跨会话信息。一个典型的长任务,如“为张先生做一份年度资产配置复盘”,需要短期记忆维持多轮工具调用的连贯性,同时从长期记忆中调取张先生过去一年的持仓、风险测评和调仓记录。
二、方法流程:记忆的编码、存储与检索
记忆管理可以拆成三个连续动作:编码、存储、检索。编码决定“记什么、怎么记”,存储决定“放在哪、怎么组织”,检索决定“怎么找回来、找得准不准”。
- 编码:把原始对话、工具返回、文档内容转成可存储的结构。常见做法是抽取实体(客户ID、产品代码、金额、日期)和意图标签,再生成向量表示。金融场景中,金额、日期、风险等级必须结构化保留,不能只留一段自然语言摘要。
- 存储:短期记忆放在上下文或会话缓存;长期记忆按类型分库——客户画像进关系库,非结构化纪要进向量库,合规结论进带版本号的文档库。存储时要写入时间戳、来源、置信度,便于后续审计。
- 检索:根据当前任务生成查询,先做元数据过滤(如客户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,并标记来源和有效期。
总结来看,短期记忆保证任务当下的连贯,长期记忆保证跨会话的连续性;编码、存储、检索构成记忆管理的闭环;而金融领域的准确性、时效性、合规性与可审计性,则要求我们在通用方案之上增加结构化字段、有效期管理、客户隔离和读写留痕。掌握这三点,才能让金融智能体在长任务中既“记得住”,又“记得对”。