← 返回题目列表

AI Agent 的记忆系统应该如何设计?

高频 中等 第 8 / 25 题 更新于 2026/07/25
Agent 记忆上下文工程RAG状态管理

简化版

Agent 记忆不是一个统一数据库,而是按生命周期拆分的分层状态工作记忆保存当前任务,长期记忆(情景/语义/程序性)保存可复用的事实或经历,检索层按需把相关内容放回上下文。核心认知——记忆不会自动改变模型权重(把记录放进向量库 ≠ 微调),写入、检索、更新、过期、隔离、删除都要由应用显式管理

详细版

常见分层:

  • 工作记忆:当前目标、计划、工具观察、未完成步骤;
  • 情景记忆:过去任务、动作、结果、反馈;
  • 语义记忆:用户偏好、业务事实、提炼后的知识;
  • 程序性知识:稳定规则、工具说明、操作流程(版本化配置维护)。

写入前判断价值、来源、权限、有效期;读取时结合语义相关性、时间、新鲜度、访问控制;用后处理冲突和反馈。不能把整段对话无限追加,也不能把模型总结未经验证当事实。

完整版教学

一、记忆 vs 上下文(先分清)

这是最容易混淆的概念:

上下文(context):本次模型调用【可见】的信息(有窗口/成本/注意力限制)
记忆(memory):   应用在【调用之间】保存、按需取回的信息(可无限大)

流程:长期记忆(大)── 检索/压缩/排序 ──> 只把相关部分放进上下文(小)

关键认知:把一条记录放进向量库,不会让模型”永久学会”它,也不等于微调——它只是「下次可能被检索回上下文」。记忆是外部存储 + 检索,不是模型能力。

二、四种记忆分层(各管什么)

类型存什么例子存储
工作记忆当前任务状态当前步骤、已完成清单、错误计数结构化状态
情景记忆过去经历上次这个任务怎么做的、结果如何向量库 + 元数据
语义记忆提炼的事实/偏好用户偏好中文、公司政策键值 + 向量
程序性知识稳定规则/流程工具说明、SOP版本化配置

三、工作记忆:优先结构化,别只存对话

工作记忆是高频出错点。很多实现只把「对话历史」一路追加,导致模型从冗长历史里当前状态。正解是结构化状态

✓ 结构化:{ task_id, current_step: 3, done: [1,2], key_facts: {...},
           error_count: 1, budget_left: 0.5 }
✗ 只存对话:把 20 轮原始对话全塞进去 → 模型猜"现在到哪一步了"

好处:可恢复执行、可校验前置条件、不用从历史猜状态。原始工具结果外部保存,上下文只传必要字段和引用。

四、长期记忆:不是所有对话都该存

写入要有策略,别无脑存:综合显式用户要求、重复使用价值、置信度、保留期限。用户偏好保留来源和时间;业务事实尽量来自权威系统而非模型推断。

Reflexion 一类方法把任务反馈提炼成文字反思供后续尝试用——注意这是上下文层面的经验复用,不是更新模型参数

五、检索、冲突与安全(三个红线)

检索:结合关键词 + 向量 + 时间衰减 + 元数据过滤。

冲突:新旧记录冲突时优先权威来源和较新版本,并向用户暴露不确定性。关键——召回相关 ≠ 内容正确,尤其不能让过期地址/权限/价格直接驱动写操作

安全与隐私

长期记忆按【用户/租户/任务】隔离,敏感字段加密或不落库,提供查看/更正/删除
⚠️ 记忆污染:外部文档/工具结果可能含 Prompt Injection,
   未经筛选写入长期记忆 → 会在【未来会话】持续影响行为(持久化污染)
写入和读取都要执行访问控制,不能依赖模型自行判断

六、常见误区与追问

  • 误区:把记录放进向量库=模型学会了。 那只是外部存储,下次可能被检索回上下文,不改权重、不等于微调。
  • 误区:工作记忆就是保留全部对话历史。 应优先结构化状态,否则模型从冗长历史猜当前步骤。
  • 误区:召回的记忆内容一定正确。 召回只代表相关,过期/错误记忆不能直接驱动写操作。
  • 误区:所有对话都值得长期保存。 要按价值/来源/权限/有效期筛选,无脑存会污染和涨成本。
  • 误区:记忆写入读取靠模型判断权限。 必须应用层做访问控制和租户隔离。
  • 追问:记忆和上下文什么区别? 上下文是本次调用可见信息(有限),记忆是调用之间的外部存储(按需检索回上下文)。
  • 追问:工作记忆为什么要结构化? 可恢复执行、校验前置条件、不用从历史猜状态。
  • 追问:什么是记忆污染? 含注入的外部内容写进长期记忆,会在未来会话持续影响行为,要筛选+隔离+访问控制。

七、加强记忆

Agent 记忆记「结构化状态 + 受控长期存储 + 按需检索」:工作记忆(当前任务,优先结构化状态而非全对话)、情景/语义/程序性长期记忆(可复用经历/事实/规则)。核心认知钉死:记录放向量库≠模型学会(是外部存储+检索,不改权重)、召回相关≠内容正确(过期记忆别驱动写操作)、记忆污染是大坑(含注入的内容写进长期记忆会持久影响未来会话)。关键不只是记得住,更要保证来源、新鲜度、权限、可删除、不被污染