AI 在长对话中会遗忘关键信息,且跨会话没有记忆,导致上下文丢失、体验不连贯。为解决此痛点,我们引入了长期记忆功能。该功能可自动从历史对话中提炼并结构化存储记忆片段与用户画像。在后续对话或新会话中,开发者可以检索这些记忆并将其注入 Prompt,赋能 AI 实现真正的持续性理解。
核心功能
该功能与 API 调用限时免费。
- 记忆片段:从对话自动提取关键内容并结构化存储为记忆片段;也可以直接指定要存入的记忆内容;支持基于历史对话检索和动态更新。
- 用户画像:基于自定义画像模板,从对话中提取结构化用户属性(如年龄、职业、兴趣等)。
适用范围
长期记忆功能通过开放的 API 接口,可接入任意应用,也支持多应用共享同一记忆库。
相比旧版长期记忆 API的改进
- 速度与效率高:拥有更低的延迟,更高的记忆检索召回效果。
- 自动提取能力:支持从对话中自动提取关键信息,自动去重,无需手动输入。
- 检索算法优化:新增语义检索能力,检索准确性显著提升,响应速度更快。
- 用户画像能力:新增完整的用户画像提取和管理能力。
使用方法
使用前需要完成以下操作:
- 配置环境变量
DASHSCOPE_API_KEY,获取与配置方式请参考获取 API Key。 - 获取业务空间 ID,并将请求地址中的
{workspaceId}替换为该 ID。API Key 须属于同一业务空间。 - 在控制台开通记忆服务。未开通时,调用记忆写入(AddMemory)与检索(SearchMemory)接口会返回
ServiceNotOpened错误(提示"The memory service has not been activated")。
- 建立记忆:通过
AddMemory保存上一轮对话内容,转换为记忆片段并构建语义索引。 - 检索记忆:通过
SearchMemory基于语义检索相关历史记忆。 - 最佳实践:在每轮对话结束后及时调用 AddMemory 保存记忆,检索时建议将
top_k设置在 3 到 10 之间,平衡性能和效果。
- 管理记忆:通过
ListMemory、UpdateMemory、DeleteMemory管理记忆片段,支持元数据分类和智能去重。 - 最佳实践:使用元数据对记忆进行分类管理(如按类别、优先级等),便于后续的精确检索和管理。
- 创建画像模板:通过
CreateProfileSchema定义需要提取的用户属性。 - 提取画像:调用
AddMemory时传入画像模板 ID,从对话中提取用户属性并更新画像。 - 获取画像:通过
GetUserProfile获取完整的用户画像信息。 - 最佳实践:画像字段及描述应该清晰、具体,避免过于抽象。属性名称应尽可能保证在语义中唯一,如["姓名"、"名称"、"名字"]、["年龄"、"年纪"、"岁数"]不应同时出现,否则会对抽取效果有一定影响。不应期望一次对话就能提取所有信息,应通过多轮对话收集。
环境变量配置
| 环境变量 | 必需 | 默认值 | 说明 |
|---|---|---|---|
DASHSCOPE_API_KEY | 是 | - | 阿里云百炼 API 密钥,获取方式请参见获取 API Key |
MEMORY_SERVICE_ENDPOINT | 否 | https://dashscope.aliyuncs.com/api/v2/apps/memory | 记忆库服务地址。请设置为 https://{workspaceId}.cn-beijing.maas.aliyuncs.com/api/v2/apps/memory,并将 {workspaceId} 替换为真实的业务空间 ID |
依赖配置
Python SDK
API 参考
相关文档
如需通过阿里云百炼控制台使用和管理本文介绍的长期记忆与用户画像功能,请参见长期记忆概述。
常见问题
API 是否存在限流?
API 是否存在限流?
| API 接口 | 限流(阿里云账号级别) |
|---|---|
| 全部接口 | 总计不超过 3000 QPM |
| 记忆片段 add 接口 | 120 QPM |
| 记忆片段 search 接口 | 300 QPM |