邮箱: zhihuiwanqi@163.com

智能体记忆系统怎么设计?三层架构让AI不再“失忆”

2026-07-26 15:22:34 3 QoderWork智能编辑

你有没有遇到过这种情况:跟AI聊了半小时,它突然"忘了"你开头说的事;换个窗口再回来,之前的上下文全丢了;让它记住你的偏好,下次打开又是一张白纸。

这就是智能体的"失忆症"。大多数AI默认是"金鱼记忆"——每次对话都是全新的开始,之前的内容一概不记得。

但真正好用的智能体,应该像一位经验丰富的老员工:记得住你的偏好、记得住上次聊到哪、记得住之前做过什么决定。

这篇文章就讲清楚:智能体的记忆系统到底怎么设计,才能让AI"不再失忆"。

一、智能体记忆的三种类型——短期、长期、情景

人类的记忆分好几种,智能体也一样。设计记忆系统之前,先搞清楚三种记忆类型:

短期记忆(Working Memory):当前对话的上下文。比如你刚说"我叫张三",智能体在这轮对话里记得你叫张三。但关掉窗口就忘了。这是最基础的记忆,大多数AI都有。

长期记忆(Long-term Memory):跨对话保留的信息。比如你的偏好设置、你的公司信息、你上次做的决定。这种记忆需要专门存储,智能体每次启动时加载。

情景记忆(Episodic Memory):过去发生的具体事件。比如"上周二你让我分析了一份销售报告,结论是华东区下滑最严重"。这种记忆最有用也最难设计,因为它需要智能体知道"什么时候、发生了什么、结果是什么"。

好的记忆系统,三种都要有。但优先级是:先把短期记忆做稳,再加长期记忆,最后补情景记忆。

二、短期记忆设计——让当前对话不"断片"

短期记忆看起来简单,其实有很多坑。核心问题是:上下文窗口是有限的,对话一长,早期的内容就会被"挤出去"。

策略一:关键信息前置。

在系统提示词里,把最重要的信息放在最前面。比如用户的身份、当前任务目标、关键约束条件。这样即使后面的对话很长,这些信息也不会被截断。

策略二:中间摘要。

对话超过一定长度后,让智能体自动做一次"中间总结"——把前面的关键信息压缩成一段摘要,作为新的上下文起点。这样既不丢失关键信息,又不占用太多窗口。

具体做法是在系统提示词里加一条规则:

当对话超过10轮时,先总结之前的关键信息(用户目标、已确认的事实、
待解决的问题),然后用总结内容替代原始对话继续。

策略三:结构化记录。

不要靠智能体"回忆"对话内容,而是在对话过程中实时维护一个"信息板"。每轮对话结束后,更新信息板上的内容。

信息板模板:
- 用户身份:[姓名/角色/公司]
- 当前任务:[一句话描述]
- 已完成:[做了哪些事]
- 待确认:[需要用户确认的事项]
- 关键约束:[预算/时间/偏好等限制条件]

每轮对话时,智能体先看信息板,再回应用户。这样即使上下文被截断,关键信息也不会丢。

三、长期记忆设计——让智能体"记住你"

长期记忆是让智能体从"通用助手"变成"专属助手"的关键。设计思路是:把需要跨对话保留的信息存到外部存储中,每次对话开始时加载。

存什么?

不是所有信息都值得长期保存。建议存三类:

用户画像:姓名、角色、公司、行业、偏好语言风格。这些信息让智能体每次都能"认出你",不用重复自我介绍。

偏好设置:回答风格(简洁/详细)、输出格式(Markdown/表格)、关注领域(技术/商业/运营)。这些信息让智能体的输出越来越符合你的口味。

关键决策:之前做过的重大决定和原因。比如"我们选定了A方案而不是B方案,原因是成本和周期"。这些信息避免智能体反复建议已经否决过的方案。

怎么存?

最简单的方案是用一个JSON文件或者数据库记录。格式建议:

{
  "user_profile": {
    "name": "张三",
    "role": "产品经理",
    "company": "XX科技",
    "industry": "SaaS"
  },
  "preferences": {
    "response_style": "简洁直接",
    "output_format": "Markdown + 表格",
    "focus_areas": ["用户增长", "数据分析"]
  },
  "key_decisions": [
    {
      "date": "2026-07-15",
      "decision": "选择方案A",
      "reason": "开发周期短,成本低",
      "alternatives_rejected": ["方案B(周期长)", "方案C(成本高)"]
    }
  ],
  "updated_at": "2026-07-25"
}

什么时候更新?

在系统提示词里加一条规则:当用户明确表达偏好或做出决定时,自动更新长期记忆。比如用户说"以后回答尽量简短一点",智能体就应该更新偏好设置。

四、情景记忆设计——让智能体"记住发生过什么"

情景记忆是最高级的记忆类型。它让智能体能够回忆"上次发生了什么",从而给出更有连续性的建议。

记录格式:

每条情景记忆建议包含5个要素:

{
  "id": "episode-001",
  "date": "2026-07-20",
  "task": "分析Q2销售数据",
  "actions": ["读取Excel", "计算环比", "生成图表"],
  "outcome": "发现华东区下滑12%,建议加大促销",
  "user_feedback": "认可分析结论,已转给销售团队"
}

什么时候调用?

当用户提到"上次""之前""还记得吗"这类词时,智能体应该主动检索情景记忆,找到相关的历史记录。

在系统提示词里可以这样写:

当用户提到"上次""之前""还记得吗"等时间相关词汇时:
1. 先在情景记忆中搜索相关记录
2. 找到后,先复述上次的情况,再基于此回答当前问题
3. 如果没找到,坦诚说"我没有找到相关记录",不要编造

记忆清理:

情景记忆不能无限堆积。建议设置保留策略:最近30天的记忆全部保留,超过30天的只保留用户反馈为"有用"的,超过90天的只保留标记为"重要"的。

五、记忆系统的4条设计原则

第一,分层存储,按需加载。不要把所有的记忆都塞进系统提示词。短期记忆(当前对话)直接放进上下文;长期记忆(用户画像、偏好)在对话开始时加载一次;情景记忆按需检索,用到才加载。这样既省token,又精准。

第二,写入要谨慎,删除要更谨慎。智能体不应该随便修改长期记忆。建议设置"确认机制"——当智能体要更新用户偏好或记录决策时,先跟用户确认一下:"我记下了你的偏好是XX,对吗?"避免记错了反而越帮越忙。

第三,记忆要有"过期机制"。用户的偏好会变,过去的决策可能已经过时。建议给长期记忆加一个"更新时间戳",超过一定时间没被确认的记忆,标记为"可能已过时",使用时要提醒用户确认。

第四,隐私第一。记忆系统涉及用户的个人信息和历史数据。设计时必须考虑:哪些信息可以记忆、哪些不能记忆、存储在哪里、谁能访问。涉及敏感信息(密码、身份证号等)绝对不能进入记忆系统。

六、一个完整的记忆系统提示词模板

把上面所有内容串起来,这是一个可以直接使用的记忆系统提示词框架:

## 记忆管理规则

### 短期记忆
- 每轮对话开始时,先读取"信息板"获取当前状态
- 每轮对话结束后,更新信息板(用户目标、已完成事项、待确认事项)
- 对话超过10轮时,先做中间摘要再继续

### 长期记忆
- 对话开始时,加载用户画像和偏好设置
- 当用户表达新偏好或做出决定时,提示确认并更新
- 超过30天未更新的记忆,使用时标注"此信息可能已变化"

### 情景记忆
- 每次任务完成后,记录:日期、任务、操作、结果、用户反馈
- 用户提到"上次""之前"时,先检索相关情景记忆
- 保留策略:30天内全保留,30-90天保留有用的,90天以上只保留重要的

### 隐私规则
- 不记忆密码、身份证号、银行卡号等敏感信息
- 不记忆用户未明确要求记住的私人信息
- 用户说"忘掉XX"时,立即从记忆中删除

写在最后

记忆系统是智能体从"工具"变成"助手"的关键一步。没有记忆的智能体每次都像第一次见面;有记忆的智能体才能越用越懂你、越用越顺手。

设计记忆系统不需要复杂的技术架构。核心就是三件事:搞清楚该记什么(用户画像、偏好、关键事件),设计好怎么存(分层存储、按需加载),管理好什么时候忘(过期机制、隐私保护)。把这三件事想明白了,你的智能体就能从"金鱼记忆"变成"大象不忘"。

选择样式

选择布局
选择颜色
选择背景图案
选择背景图片