首页 > 人工智能 > 人工智能 > Agent 的短期上下文与长期记忆该存在哪一层?
当我们在讨论 Agent 的记忆时,真正的问题往往不是“要不要记忆”,而是“记忆应该放在哪一层”。短期上下文和长期记忆看似只是时间尺度不同,实际上它们对存储位置、生命周期、访问方式和一致性要求完全不同。把两者混在同一层,是很多 Agent 系统在规模变大后变得难以维护的根源。
先厘清两个概念
短期上下文(short-term context):指当前任务或当前会话中,模型为了完成推理所必须看到的即时信息。它通常包括最近几轮对话、当前工具调用结果、临时中间状态等。它的核心特征是“此刻有用,任务结束即可丢弃”。
长期记忆(long-term memory):指跨会话、跨任务需要保留的信息,例如用户偏好、历史决策、已确认的事实、可复用的经验。它的核心特征是“需要被检索、被更新、被遗忘”。
两者不是同一种东西的两个副本,而是两种不同的数据职责。
短期上下文应该放在哪一层
短期上下文最自然的归属是推理层与编排层之间。
它由 Agent 运行时(runtime)或编排框架管理,而不是由外部数据库主导。
它的生命周期与一次任务或一次会话绑定,任务结束即可释放。
它的访问模式是“顺序读写、频繁追加、偶尔截断”,不需要复杂索引。
它的容量受限于模型的上下文窗口,因此必须做裁剪、摘要或滑动窗口。
换句话说,短期上下文属于执行现场。把它外置到持久化存储,再每次读回来,通常只会增加延迟和一致性负担,而不会带来真正的好处。
长期记忆应该放在哪一层
长期记忆更适合放在独立的记忆服务层,与推理层解耦。
它需要持久化,不能随进程或会话消失。
它需要检索能力,通常依赖向量检索、关键词检索或混合检索。
它需要写入策略:什么值得记、什么时候记、由谁确认。
它需要遗忘机制:过期、纠错、用户主动删除。
它需要与权限和隐私边界对齐,尤其是涉及用户数据时。
长期记忆的本质是一个面向检索的数据服务,而不是模型上下文的一部分。模型只是在需要时通过工具或检索接口去访问它。
常见的错误分层
把长期记忆塞进系统提示词:短期看似方便,长期会导致提示词膨胀、更新困难、无法审计。
把短期上下文写进向量库:每一轮对话都入库,检索结果被临时噪声污染,长期记忆质量下降。
让模型自己决定记什么且不做校验:容易把错误推断固化为“事实”,后续难以纠正。
没有遗忘机制:记忆只增不减,检索精度和隐私风险同时上升。
一个可参考的分层思路
依据现有素材与通用工程判断,可以按以下职责划分:
推理层:只持有当前任务所需的短期上下文。
编排层:负责裁剪、摘要、决定何时调用记忆服务。
记忆服务层:负责长期记忆的写入、检索、更新与删除。
存储层:根据记忆类型选择向量库、关系库或对象存储,不要求统一。
关键原则是:短期上下文服务于“这一次推理”,长期记忆服务于“下一次检索”。两者的边界越清晰,系统越容易演进。
结论
短期上下文应放在推理与编排层,随任务生灭;长期记忆应放在独立的记忆服务层,可检索、可更新、可遗忘。把两者分开,是 Agent 系统从“能跑”走向“可维护”的关键一步。
生成标记:本文由 ITPUB 文章生成平台基于已选素材整理生成。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69925873/viewspace-3184274/ ,如需转载,请注明出处,否则将追究法律责任。