决策树方法助力选择AI智能体记忆策略
速览
本文介绍一种决策树方法,帮助开发者根据任务需求、记忆类型和资源约束选择最适合的AI智能体记忆策略。该方法覆盖短期、长期和工作记忆等多种方案,旨在优化AI智能体的表现与效率。它为构建更智能、高效的AI系统提供了实用指导。
AI 深度解读
背景
AI Agent 的记忆能力是其核心特性之一,但实际开发中常被当作事后添加的组件。有的 Agent 会遗忘用户期待它记住的信息,有的却被赋予了复杂却从未真正用到的记忆基础设施。这两种问题都源于同一个未解决的设计问题:不同种类的信息应该存活多久?又该如何被检索?
Agent 记忆策略需要像编排模式(orchestration)一样经过深思熟虑的设计。但与编排模式不同,Agent 记忆很少是一个单一架构选择:当前对话、用户声明的偏好、历史交互记录、学习到的例行程序——这些是不同类别的信息,各自需要不同类型的记忆。关键问题不是“Agent 应该使用哪种记忆系统”,而是“每种信息类别实际需要哪一层记忆”。
核心内容
原文围绕一个五问题决策树展开,帮助开发者按信息类别为 Agent 选择正确的记忆策略。决策树每次只处理一类信息(而非整个 Agent),每个分支基于信息的某一具体属性缩小范围。
记忆的四层分类
在进入决策树前,需要明确每层记忆对其所持有信息的假设:
- 工作记忆(working memory):假设当前相关的所有信息都存在于活跃对话和有限 token 预算内,修剪或总结较旧的轮次不会悄悄丢失 Agent 仍需要的内容。
- 语义记忆(semantic memory):假设某些信息足够稳定且可复用,存储规范化表示比反复推理、重新询问或重新处理更有价值。包括持久的用户事实(姓名、角色、首选语言)、领域知识(业务规则、产品规格)以及从重复交互中提炼出的通用知识。
- 情景记忆(episodic memory):基于这样的预期:过去发生的历史本身就有价值,而不仅仅是当前状态——过去决策、投诉或交易的记录应该为下次交互提供信息。
- 程序记忆(procedural memory):假设反复解决同一形状的任务应该使 Agent 在下次尝试时更快或更可靠,而不仅仅是留下过去尝试的记录。
在生产环境中,Agent 通常依赖多层记忆组合。例如,一个客服 Agent 可能将当前工单放在工作记忆,客户的订阅等级放在语义记忆,过往投诉放在情景记忆,学到的退款处理例程放在程序记忆。当信息被存储到错误的层级时就会出现问题:将稳定事实放入向量存储(本应属于结构化档案)会使检索变慢且可靠性降低;搜索整个交互历史可能暴露过时或矛盾的信息,而结构化记录本可以覆盖它。
五问题决策树
原文给出了决策树的前四个问题(第五个问题在原文中被截断,未完整呈现),每个问题进一步缩小信息所需记忆层级的范围。
问题 1:这条信息是否需要持续到当前轮次之后?
这个问题将真正需要记忆的信息与看似需要但实际不需要的信息分开。
- 自包含,无需向前传递:一次性分类请求的措辞、仅用于回答当前问题的工具调用中间输出。
- 需要向前传递,需要记忆:客服 Agent 本次对话中已经解决了哪个问题、Agent 昨天接手的一个编程项目的当前状态。
如果信息是自包含的 → 不需要任何记忆层,当前轮次的上下文窗口就足够了。如果需要向前传递 → 进入问题 2。
问题 2:它是否需要存活超过单个会话?
这个问题将工作记忆与任何需要持久化的信息分开。
- 仅限会话内:已经问过什么、已经调用了哪些工具、已经解决了什么 → 一个对话缓冲区就足够了,通过修剪或总结控制边界。(OpenAI Agents SDK 中的基于会话的记忆管理直接处理这种情况。)
- 超出会话:回头客的偏好、进行中的项目状态、跨多天的任务 → 工作记忆无法满足,因为信息必须独立于任何单一会话而存在。
如果只需要会话内连续性 → 该类别使用工作记忆。如果需要存活到会话之后 → 进入问题 3。
⚠️ 常见设计错误是信息与其生命周期不匹配:将会话级状态当作永久状态,或为只存在于对话期间的信息构建持久记忆基础设施。
问题 3:这是一个稳定事实还是一个演变事件?
这个步骤常被跳过,导致所有需要持久化的信息都被扔进同一个存储中,而不考虑其形态。
- 稳定事实(语义记忆):姓名、订阅等级、首选语气、默认送货地址等持久知识,跨会话有效,存储为规范化事实比反复推断或重新询问更有价值。
- 演变事件(情景记忆):上个月提交的投诉、早期项目阶段的决策、跨多次交互的行为模式。
记忆架构从认知科学对人类记忆的分类中借用了这个词汇,将稳定知识与对特定过去事件的记忆区分开来。一些框架将时间维度直接构建到存储层中。例如,Zep 在知识图谱上对事实建模,每个事实带有一个有效期窗口,被取代的事实会被标记为无效,而不是默默与新事实矛盾。
稳定事实属于持久知识存储(例如用户属性的结构化记录、关系型知识图谱、可语义搜索的领域知识向量数据库)。演变事件属于更接近日志的东西,条目累积且较旧的条目可能需要总结或修剪。
如果该类信息主要是事实和领域知识 → 语义记忆。如果主要是历史 → 情景记忆。
问题 4:这种记忆将如何被检索?
这个问题将检索方式与记忆存储的大小、结构和增长率相匹配,而不是仅仅使用默认的检索机制(原文在此处被截断,但核心思想是根据存储特性选择检索策略,例如向量搜索、键值查找、图遍历等)。
常见陷阱
一旦记忆被实现并投入使用,会出现一些常见问题:
- 使用向量存储来存放本应属于结构化配置文件的稳定事实,导致检索变慢且不可靠。
- 搜索整个交互历史可能返回过时或矛盾的信息,而结构化记录本可以覆盖或更新这些信息。
- 信息被存储在错误的层级,使得上下文工程效率降低。记忆只是争夺有限上下文窗口的上下文来源之一,因此只有在能够显著改善 Agent 响应时才应被检索。
关键要点
- Agent 记忆策略应与编排模式一样经过精心设计,不应作为事后添加的组件。
- 记忆分为四层:工作记忆(当前对话)、语义记忆(稳定事实)、情景记忆(事件历史)、程序记忆(学习到的例程)。生产环境中 Agent 通常组合使用多层。
- 使用决策树时,按信息类别运行,而非对整个 Agent 运行一次。同一 Agent 的不同类别(如“当前工单”“账户详情”“投诉历史”)可能落在决策树的不同位置。
- 问题 1 区分“是否需要跨轮次留存”。不需要则无需记忆层,仅靠上下文窗口即可。
- 问题 2 区分“是否需要跨会话留存”。仅需会话内则工作记忆即可;需要跨会话则进入后续问题。
- 问题 3 区分“稳定事实”(语义记忆)与“演变事件”(情景记忆)。稳定事实需持久知识存储,演变事件则需日志式存储。
- 问题 4 关注检索策略,应与存储的大小、结构和增长速率匹配,避免默认一刀切。
- 常见设计错误:生命周期错配(会话级信息被持久化)、类型错配(事实存入向量存储)、检索不当导致噪声或矛盾。
- 记忆只是上下文工程的一部分,应仅在能有效改善 Agent 响应时才检索,否则浪费有限的上下文窗口。
意义与影响
该决策树提供了一种系统化的方法,帮助开发者避免两个极端:Agent 遗忘关键信息,或为简单需求构建过度复杂的记忆基础设施。它将认知科学中关于人类记忆的分类(工作、语义、情景、程序)引入 AI Agent 设计,使得记忆架构的选择不再是直觉驱动,而是基于信息的客观属性(生命周期、稳定性、检索需求)。这有助于提升 Agent 在客服、编程辅助、自动化工作流等现实场景中的可靠性和效率,同时降低存储和检索成本。随着多 Agent 系统和长时间运行交互的增加,合理的记忆策略将成为 Agent 实用化的关键竞争力之一。
