【导读】很多人把LLM的“记忆”理解成像人一样的长期存储,但在智能体(Agent)体系里,Memory往往分为Short-term memory与Long-term memory两套机制:前者靠上下文窗口把“刚聊过的内容”带回模型,后者则通过RAG把跨会话的信息持久化到外部存储,再在需要时检索回填到Prompt。理解这两者的原理、局限与工程实现,是搭建可用智能体、控制tokens成本与提升回答稳定性的关键。

一、Short-term memory:靠上下文窗口“临时记住”会话
在以LLM为核心的智能体架构中,Short-term memory通常指:智能体在单次会话内维持即时上下文的能力。它并不等同于模型在参数里“学会了”你的对话,而是一个更工程化、更直接的机制——把对话历史、中间推理步骤等内容拼进Prompt,再作为请求参数发送给LLM。
1)工作机制:Prompt携带历史上下文
智能体每次调用LLM时,会将以下内容(全部或部分)放入上下文窗口(context window):
- 历史对话(user/assistant messages)
- 系统提示词(system prompt)
- 工具调用结果(tool outputs)
- 过程性中间信息(有时包括 Chain of Thought 的变体内容或“中间推理痕迹”)
因此,所谓短期记忆,本质是:“你把它带上,它就记得;你不带,它就不知道。”
2)局限性:窗口上限、成本与“越长越钝”
Short-term memory的硬约束来自上下文窗口的容量与成本模型:
- 窗口限制导致遗忘:对话越长,越早的信息越可能因为超出context window而被截断,表现为“突然忘记你前面说过什么”。
- tokens计费压力:多数API按输入/输出tokens计费,上下文越长,请求越贵;并且会显著拖慢响应时间。
- 长上下文质量退化:工程实践中常见现象是:上下文越长,模型越容易出现注意力分散、信息抓取不准,甚至“答非所问”。业界也把这类现象概括为长上下文下的能力衰减问题(一些研究将其称为 context rot 一类现象)。
3)常见工程处理:滑动窗口与摘要法
为在“记住更多”与“成本/性能”之间做平衡,智能体一般会用两类策略:
- 滑动窗口(sliding window):只保留最近N轮对话,把更早内容直接丢弃。实现简单、成本可控,但会丢失早期关键约束。
- 摘要法(summarization):将长对话压缩为一段摘要,再把摘要与近期对话一起带入上下文。优点是节省tokens;缺点是摘要质量一旦偏差,模型会基于“压缩后的错误信息”继续推理。
4)一个直观现象:上下文轮数就是“短期记忆的长度”
在一些客户端或智能体框架里,你会看到类似“上下文数/上下文轮数”的设置。其含义往往很直接:请求时最多携带多少轮对话。当轮数超过上限,最早的消息就不会再进入下一次请求,自然也就“被遗忘”。
这也解释了一个常见误区:把上下文数拉满并不等于体验必然变好——它同时带来:
- 更高tokens账单
- 更慢的响应
- 更复杂的干扰信息,降低回答稳定性

二、Long-term memory:用RAG把记忆“放到模型外面”
如果说Short-term memory解决的是“这一段对话怎么不断片”,那么Long-term memory面对的是另一类需求:跨会话、跨天甚至跨月地保留信息,并在未来需要时重新取回使用。由于LLM本身不具备可靠的持久化存储能力,Long-term memory几乎都要借助外部系统完成。
1)典型实现:RAG + Embeddings + 向量数据库
Long-term memory的主流工程路线是检索增强生成(RAG):
- 将“值得记住的信息”做向量化:生成Embeddings
- 把Embeddings与原文片段写入存储(常见是向量数据库)
- 当用户提出新问题时,先做语义检索(similarity search)
- 将检索到的相关片段作为“外部记忆”回填到上下文窗口
- 再让LLM基于这些片段生成答案
关键点在于:长期记忆不是让模型自己记住,而是让系统在需要时把相关内容“找回来”塞进Prompt。所以Long-term memory最终仍会回到context window,只不过“内容来源”变成了外部检索而不是完整对话历史。
2)记忆类型更细的分法:Episodic/Semantic/Procedural
在智能体研究与工程实践中,长期记忆经常进一步拆成三类,便于决定“存什么、怎么用”:
- Episodic Memory(情境记忆):记录具体经历、事件轨迹
例:用户上周二在上海出差、提到喜欢某家咖啡店。 - Semantic Memory(语义记忆):更抽象、更稳定的事实与偏好
例:用户对花生过敏、岗位需要熟悉Transformer。 - Procedural Memory(程序记忆):可复用的技能、步骤或SOP
例:智能体调用某个API的固定流程、工具链编排方式。
在企业落地时,这种分类往往对应不同的存储策略与权限策略:事实类信息需要更强校验;流程类信息需要版本管理;事件类信息可能需要生命周期与过期机制。
3)长期记忆“看起来很美”,但也有坑
Long-term memory带来跨会话体验提升,但并不等于“装上就万事大吉”,常见挑战包括:
- 记忆写入的正确性:很多系统由AI自动决策写入内容,如果没有与用户确认,可能把误解当成事实,形成“错误的长期偏见”。
- 检索相关性与幻觉耦合:当检索结果不够相关时,模型可能“硬贴”检索片段进行回答,导致看似有依据、实则偏题。
- 隐私与合规问题:长期记忆天然涉及持久化数据,必须考虑数据最小化、可删除、可追溯,以及不同角色的访问控制。
- 更新与冲突:同一事实被多次写入不同版本(例如用户偏好变化),需要支持修改、合并、删除与时间戳优先级。
4)一个工程化流程:先检索、再回填、再异步更新
不少智能体会采用“读写分离”的记忆流水线:
- 对话开始/中途:调用类似 Memory_Search 的工具检索相关记忆,回填到Prompt
- 对话结束/异步:从本轮对话抽取“可记忆信息”,决定新增、修改或删除,并写回存储
这种模式的好处是:不让“写记忆”阻塞主链路,同时也更便于做审核与治理。
三、场景对比:什么时候用短期,什么时候要上长期
把两类记忆放在一起看,它们解决的问题并不重叠:
- Short-term memory更适合
- 单次任务型对话(一次性问答、一次性方案输出)
- 强依赖近期上下文的协作(连续多轮澄清、逐步改稿)
- 成本敏感、对跨会话复用要求不高的场景
- Long-term memory更适合
- 需要跨会话持续服务(客服、个人助理、长期项目协作)
- 用户偏好/约束需要沉淀(禁忌、格式偏好、合规要求)
- 知识需要长期复用(企业制度、产品资料、项目文档,配合RAG实现“可追溯依据”)
更现实的做法往往是组合:短期记忆负责“当前上下文不断片”,长期记忆负责“关键知识可复用”,两者在Prompt层汇合。工程团队需要重点优化的是:什么信息进入context window、什么信息进入向量数据库、以及检索回填的阈值与排序。

结语:技术背后的管理思考
从组织视角看,Short-term memory与Long-term memory的差异,类似“会议纪要”与“知识库体系”的分工:前者让团队在一个协作周期里保持对齐,后者让经验跨团队、跨项目沉淀复用。对企业而言,智能体是否可用,往往不取决于LLM本身有多“聪明”,而取决于记忆机制是否可控——上下文窗口如何限制tokens成本、RAG检索如何保证相关性、记忆写入如何校验事实、以及权限与合规如何落地。进一步说,这会直接影响岗位能力模型:不仅需要会写Prompt的人,也需要懂Embeddings、向量数据库、RAG评测与数据治理的人,来把“能聊”变成“能交付”。正如红海云在探索新一代人力资源管理解决方案时所强调的,技术的终极价值在于赋能组织:把分散的经验变成可检索、可复用、可审计的“组织记忆”,才能持续提升流程效率与人效表现。




























































