在构建智能体(Agentic)应用时,上下文是决定模型响应质量的关键因素。各类智能体框架(如 LangGraph、CrewAI 等)的核心作用,本质上是构建包含充足上下文的增强型提示词(Prompt),帮助模型生成贴合需求的结果。而记忆系统作为上下文的重要来源,能让智能体记住交互历史、用户偏好等关键信息,大幅提升应用的个性化与连续性。AWS 推出的 AgentCore Memory 服务,正是为智能体应用提供短长期记忆管理的核心工具,本文将详细介绍如何借助它为智能体赋予“记忆能力”。
智能体记忆的核心分类:短期与长期
在智能体应用的语境中,记忆系统普遍分为短期记忆与长期记忆两类,二者各司其职,共同为增强型提示词提供上下文支撑:
- 短期记忆:聚焦当前会话或任务周期内的信息,比如用户当前的提问内容、智能体的即时响应、多步骤任务的中间状态等。它的核心作用是保证单次交互的连贯性,例如在客服对话中,记住用户刚提到的“产品型号”或“问题症状”。
- 长期记忆:则负责跨会话、跨周期的信息存储,其分类可参考 LangMem 指南的定义,具体包括三类关键记忆:
语义记忆(Semantic Memory):存储支撑智能体响应的事实与知识,比如用户的长期偏好(如“偏好中文界面”“对折扣敏感”)、领域特定信息(如某产品的保修政策)、交互历史摘要(如“用户上月曾咨询过账户登录问题”)。
情景记忆(Episodic Memory):记录成功的交互案例作为学习样本,不仅包含“发生了什么”(如用户投诉物流延迟),还包括“如何解决”(如智能体触发物流查询工具并承诺补偿)以及“为何有效”(如及时反馈安抚了用户情绪),帮助智能体复用有效策略。
过程记忆(Procedural Memory):定义智能体的行为规则与响应模式,例如“当用户提及退款时,需先验证订单状态”,这类记忆会动态补充到系统提示词中,约束智能体的行为边界。
AgentCore Memory:AWS 智能体记忆服务的核心逻辑
AgentCore Memory 是 AWS 专为智能体应用设计的记忆管理服务,完美契合上述“短长期记忆”框架,同时提供灵活的策略配置与 API 交互能力,让记忆集成更高效。
1. 核心层级:短期记忆与长期记忆的协同
AgentCore Memory 的运作围绕“记忆资源(Memory Resource)”展开,每个记忆资源相当于一个“记忆容器”,可同时存储多个用户、多个会话的短长期记忆。其两层记忆系统的分工与流转逻辑如下:
- 短期记忆:用于存储即时会话数据,每一次用户提问、智能体响应都会以“事件(Event)”的形式被记录。例如用户发送“查询我的订单物流”,智能体返回“正在查询订单 12345 的物流状态”,这两条信息会作为两个事件,关联到用户的 actorId(用户标识)和 sessionId(会话标识),存入短期记忆。
- 长期记忆:并非直接存储原始会话数据,而是通过“策略(Strategy)”对短期记忆中的原始数据进行提炼。例如,将多次会话中用户提到的“偏好顺丰快递”“常用收货地址为北京朝阳区”提取为用户偏好,或把“订单 12345 物流延迟,已补偿 10 元优惠券”的会话摘要存入长期记忆,供后续跨会话复用。
2. 关键操作:事件管理与策略配置
(1)事件操作:短期记忆的核心交互
AgentCore Memory 通过三类 API 操作管理短期记忆中的事件,所有操作均需指定 memoryId(记忆资源标识),并通过 actorId 和 sessionId 定位到具体用户与会话:
- create_event:创建事件,需传入 payload( payload 可是字典格式的会话文本,或二进制格式的blob数据,如用户上传的订单截图)与 eventTimestamp(事件时间戳)。
- delete_event:删除指定 eventId 的事件,适用于清理敏感信息(如用户要求删除某条提问记录)。
- get_event/list_event:查询单个事件或列出某会话下的所有事件,用于加载历史会话上下文。
例如,创建一条用户提问事件的 API 调用逻辑(伪代码)如下:
复制(2)策略配置:长期记忆的提炼规则
要启用长期记忆,需为记忆资源配置“策略”——策略决定了如何从短期记忆的原始数据中提取有用信息。AgentCore Memory 支持 4 种策略,覆盖不同的长期记忆需求:
策略类型 | 作用说明 | 适用场景 |
语义策略(Semantic) | 提取事实性信息(如产品参数、订单状态) | 存储领域知识、客观数据 |
摘要策略(Summary) | 生成会话摘要,保留关键交互节点 | 跨会话回顾历史对话核心内容 |
用户偏好策略(User Preference) | 提取用户的长期偏好(如语言、功能需求) | 个性化服务(如默认展示用户偏好的界面) |
自定义策略(Custom) | 允许用户自定义提取规则与模型 | 特殊业务场景(如提取合规相关信息) |
其中,内置策略(语义、摘要、用户偏好)已集成底层模型的推理能力,无需额外配置模型;而自定义策略需用户提供专属指令(补充到系统提示词中),并指定适配的模型,灵活性更高。
3. 成本差异:内置策略与自定义策略的定价
AgentCore Memory 的定价与策略类型强相关(当前处于预览阶段):
- 内置策略:每月每 1000 条记忆存储成本为 0.75 美元,包含底层模型的推理费用。
- 自定义策略:每月每 1000 条记忆存储成本为 0.25 美元,但需单独支付模型调用费用。
若应用对记忆提取规则无特殊要求,选择内置策略更省心;若需适配特定业务逻辑(如金融领域的合规信息提取),自定义策略虽需额外管理模型,但成本更低。
实战:将 AgentCore Memory 集成到智能体应用
将 AgentCore Memory 集成到智能体的核心是“提前创建记忆资源+通过工具或生命周期钩子交互”,同时需注意生产环境的安全性与性能优化。
1. 前置准备:创建记忆资源(生产环境关键步骤)
在生产环境中,记忆资源需通过基础设施即代码(IaC) 提前创建(如使用 AWS CloudFormation 或 Terraform),而非在智能体运行时动态创建。原因在于:
- 智能体运行时创建记忆资源属于“控制平面操作”,这类操作的配额远低于“数据平面操作”(如创建事件),若动态创建,应用扩容时易触发限流。
- 提前创建可便于配置最小权限 IAM 策略,保障记忆数据安全。
例如,通过 CloudFormation 创建记忆资源后,可为智能体配置如下 IAM 策略,仅允许其操作指定前缀的记忆资源(MemoryName-*),避免越权访问:
复制2. 两种集成方式:工具调用 vs 生命周期钩子
智能体与 AgentCore Memory 的交互主要有两种方式,需根据框架支持度与业务需求选择:
(1)工具调用方式:通过工具函数交互
将 get_memory()(读取记忆)、put_memory()(写入记忆)等函数封装为智能体的“工具”,并在系统提示词中指导模型何时调用这些工具。例如:
- 当用户提问“我的偏好是什么”时,模型调用 get_memory() 读取长期记忆中的用户偏好;
- 当用户新设置“默认接收邮件通知”时,模型调用 put_memory() 将该偏好写入长期记忆。
这种方式的优势是逻辑直观,适合简单场景,但需开发者手动设计工具调用规则,灵活性较低。
(2)生命周期钩子方式:事件驱动的自动化交互
更推荐的方式是利用智能体框架的“生命周期钩子”,将记忆操作绑定到智能体运行的特定阶段,实现自动化交互。以 Strands 框架为例,其支持 4 类关键钩子,可与记忆操作精准匹配:
生命周期钩子 | 触发时机 | 对应的记忆操作 |
AgentInitializedEvent | 智能体初始化完成后 | 加载核心语义记忆(如产品保修政策) |
BeforeInvocationEvent | 新的用户请求开始时 | 读取短期记忆中最近 N 条会话记录,补充上下文 |
AfterInvocationEvent | 智能体响应生成后 | 将本次会话的关键信息(如用户新需求)写入短期记忆 |
MessageAddedEvent | 会话历史新增消息时 | 判定消息是否需长期存储(如用户偏好),触发长期记忆提炼 |
这种方式无需开发者手动 orchestrate 记忆操作,由事件驱动自动完成,大幅降低维护成本——前提是所使用的智能体框架支持生命周期钩子(如 Strands、LangGraph 等)。
避坑指南:避免“上下文过载”,做好上下文工程
随着模型上下文窗口的扩大(如 GPT-4.1、Claude Sonnet 4 支持 100 万 Token),开发者易陷入“越多上下文越好”的误区。但《Lost in the Middle:语言模型如何使用长上下文》白皮书指出,模型对长上下文的利用存在“U 型曲线”:
- 对开头(首因效应)和结尾(近因效应)的信息处理效果最好;
- 中间部分的信息易被“忽略”,导致模型误判或遗漏关键内容。
例如,若将 100 条会话历史全部塞入提示词,模型可能只关注前 10 条和最后 10 条,中间 80 条的用户需求会被忽略。因此,需通过“上下文工程”优化,确保提示词中只包含“必要信息”:
- 删减冗余内容:过滤掉与当前任务无关的历史会话(如用户半年前咨询的无关功能问题);
- 精简工具列表:仅传入智能体当前任务可能用到的工具(如处理订单问题时,无需传入“内容创作工具”);
- 浓缩会话历史:用摘要策略提取历史会话的核心信息(如“用户 3 月曾反馈物流延迟,已补偿”),而非保留完整对话;
- 卸载无用上下文:将不再需要的信息(如已完成任务的中间状态)从提示词中移除,仅在需要时通过记忆系统读取;
- 验证上下文来源:通过 RAG(检索增强生成)从可信数据源(如企业知识库)拉取精准信息,确保上下文的准确性。
为智能体应用添加记忆,本质是让模型获得“持续学习”与“个性化响应”的能力,而 AgentCore Memory 凭借其灵活的短长期记忆管理、策略配置与 AWS 生态集成优势,成为实现这一目标的高效工具。在实际开发中,需牢记“上下文并非越多越好”,通过合理的记忆策略与上下文工程,让智能体在“记住关键信息”的同时,避免“信息过载”。
最终,只有当记忆系统提供的上下文“准确、适量、合规”,并搭配最小权限的安全防护时,智能体应用才能在生产环境中稳定、可靠地运行,真正满足用户的个性化需求。