创建记忆管理应用后,AI 应用还不能直接调用记忆能力:连接地址、访问凭证和网络放行三者缺一不可。打通连接后,即可通过 API 写入、检索和管理记忆,并按业务需要调整服务参数与记忆提取策略。
适用范围
开始配置前,先确认以下前置条件与约束:
已创建记忆管理应用。
应用白名单与集群白名单相互独立,需单独配置。配置白名单后,只有白名单内的 IP 地址或安全组才能访问记忆管理服务。
客户端所处的网络环境(同一 VPC 内的 ECS 实例、其他 VPC 的 ECS 实例、本地服务器、个人电脑或其他云服务器)决定连接地址的选择与白名单的放行方式。
应用的引擎类型决定可用功能范围,具体如下表。
功能
mem0
memOS
自定义提取策略
支持
不支持
在控制台查看记忆数据
支持
支持
获取连接地址与访问凭证
连接地址决定客户端从哪个网络访问服务,访问凭证用于客户端连接时的身份验证,两者均在应用详情页获取。
获取连接地址
连接地址分私网地址和公网地址两种,按客户端所处的网络环境选择:
客户端环境 | 使用的连接地址 |
与应用位于同一 VPC 内的 ECS 实例 | 私网地址(推荐) |
与应用不在同一 VPC 内的 ECS 实例、本地服务器、个人电脑或其他云服务器 | 公网地址 |
登录 PolarDB 控制台,在左侧导航栏单击PolarDB Mem0。
在应用列表页面,单击目标应用的应用ID/名称,进入应用详情页。
在基本信息页签的连接管理区域查看私网地址。
如需公网地址,单击申请按钮进行申请。
公网地址仅提供 IP 地址和端口,不提供域名。如有域名需求,可自行绑定。
获取访问凭证
在应用详情页,单击配置页签。
从参数列表找到
secret.access.apikey参数,其对应的参数值即为访问凭证。单击参数值右侧的显示图标,查看完整内容。
配置白名单
按客户端所处的网络环境放行对应的 IP 地址或安全组,客户端才能访问记忆管理服务。
在应用详情页,单击白名单页签。
根据需要选择新增IP白名单分组、选择安全组或编辑已有白名单分组。
填写需要放行的 IP 地址或选择安全组:
如果 ECS 实例与应用位于同一 VPC 内,填写 ECS 的私网 IP 地址或其所在 VPC 网段。
如果 ECS 实例与应用不在同一 VPC 内,填写 ECS 的公网 IP 地址,或添加 ECS 所在的安全组。
如果本地服务器、电脑或其他云服务器需要访问应用,将其公网 IP 地址添加到 IP 白名单中。
ECS 实例的 IP 地址可在 ECS 实例详情页面查看。
操作示例
添加记忆
curl -X POST http://my-endpoint:8080/v1/memories \
-H "Content-Type: application/json" \
-H "Authorization: Token <your-api-key>" \
-d '{
"messages": [
{
"role": "user",
"content": "我喜欢吃辣,特别是川菜。"
},
{
"role": "assistant",
"content": "好的,已经记下您的口味偏好。"
}
],
"user_id": "user_002",
"agent_id": "food-assistant",
"run_id": "user_002_run_id",
"enable_thinking": false
}'预期返回:
{
"results": [
{
"id": "32155c0a-xxxx-xxxx-xxxx-804e119bb965",
"event": "ADD",
"data": {
"memory": "喜欢吃辣"
}
},
{
"id": "9188deee-xxxx-xxxx-xxxx-3073ef826b42",
"event": "ADD",
"data": {
"memory": "特别喜欢川菜"
}
}
]
}搜索记忆
curl -X POST http://my-endpoint:8080/v2/memories/search \
-H "Content-Type: application/json" \
-H "Authorization: Token <your-api-key>" \
-d '{
"query": "我喜欢什么菜",
"agent_id": "food-assistant",
"filters": {
"user_id": "user_002",
"run_id": "user_002_run_id"
}
}'预期返回:
{
"results": [
{
"id": "9188deee-xxxx-xxxx-xxxx-3073ef826b42",
"memory": "特别喜欢川菜",
"hash": "a826fbf3c3844024633e84d04875ee45",
"metadata": {"additionalProp1": {}},
"score": 0.681654033365126,
"created_at": "2026-03-05T23:59:36.038217-08:00",
"updated_at": null,
"user_id": "user_002",
"agent_id": "food-assistant",
"run_id": "user_002_run_id"
},
{
"id": "32155c0a-xxxx-xxxx-xxxx-804e119bb965",
"memory": "喜欢吃辣",
"hash": "b2882aaf96654a9e16f45f363022010a",
"metadata": {"additionalProp1": {}},
"score": 0.582298149788604,
"created_at": "2026-03-05T23:59:36.023417-08:00",
"updated_at": null,
"user_id": "user_002",
"agent_id": "food-assistant",
"run_id": "user_002_run_id"
}
]
}获取记忆
curl -X POST http://my-endpoint:8080/v2/memories \
-H "Content-Type: application/json" \
-H "Authorization: Token <your-api-key>" \
-d '{
"filters": {
"user_id": "user_002",
"run_id": "user_002_run_id",
"agent_id": "food-assistant"
}
}'预期返回:
{
"results": [
{
"id": "39b06e97-xxxx-xxx-xxxx-4223818bc04e",
"memory": "喜欢吃辣",
"hash": "b2882aaf96654a9e16f45f363022010a",
"metadata": {"additionalProp1": {}},
"created_at": "2026-03-06T00:12:45.109789-08:00",
"updated_at": null,
"user_id": "user_002",
"agent_id": "food-assistant",
"run_id": "user_002_run_id"
},
{
"id": "482def46-xxxx-xxxx-xxxx-ff4886a1047c",
"memory": "特别喜欢川菜",
"hash": "a826fbf3c3844024633e84d04875ee45",
"metadata": {"additionalProp1": {}},
"created_at": "2026-03-06T00:12:45.121585-08:00",
"updated_at": null,
"user_id": "user_002",
"agent_id": "food-assistant",
"run_id": "user_002_run_id"
}
]
}附录:API参考
PolarDB Mem0基于开源框架mem0(V1.0.1)提供托管服务。您可以通过访问http://<your-endpoint>:8080/docs查看实时更新的API文档。
请求头
所有API请求都需要在HTTP Header中包含Authorization: Token <your-api-key>进行认证。
请求示例
此处仅列举部分API参考。
创建记忆(Create Memories)
存储新的记忆。服务会自动对messages内容进行分析,生成会话摘要和语义记忆。
请求地址:
POST /v1/memories请求体:
messages
array(必选)对话消息列表,遵循OpenAI格式。
curl
curl -X POST http://my-endpoint:8080/v1/memories \ -H "Content-Type: application/json" \ -H "Authorization: Token <your-api-key>" \ -d '{ "messages": [ { "role": "user", "content": "我喜欢吃辣,特别是川菜。" }, { "role": "assistant", "content": "好的,已经记下您的口味偏好。" } ], "user_id": "user_002", "agent_id": "food-assistant", "run_id": "user_002_run_id", "enable_thinking": false }'Python
import requests import json payload = { "messages": [ {"role": "user", "content": "我喜欢吃辣,特别是川菜。"}, {"role": "assistant", "content": "好的,已经记下您的口味偏好。"} ], "user_id": "user-002", "agent_id": "food-assistant", "run_id": "user_002_run_id", "enable_thinking": false } response = requests.post( "http://<your-endpoint>:8080/v1/memories", headers={"Authorization": "Token <your-api-key>", "Content-Type": "application/json"}, data=json.dumps(payload) ) print(response.json())user_id
String(必选)用户的唯一标识符。
agent_id
String(可选)智能体的唯一标识符,用于在同一用户下隔离不同应用的记忆。
run_id
String(可选)单次执行或会话的唯一标识符。
metadata
Object(可选)附加的元数据,会与记忆一同存储。
搜索记忆(Search Memories)
根据查询字符串,搜索最相关的记忆。
请求地址:
POST /v2/memories/search请求体:
query
String(必选)用于搜索的查询文本,例如用户的新问题。
curl
curl -X POST http://my-endpoint:8080/v2/memories/search \ -H "Content-Type: application/json" \ -H "Authorization: Token <your-api-key>" \ -d '{ "query": "我喜欢什么菜", "agent_id": "food-assistant", "filters": { "user_id": "user_002", "run_id": "user_002_run_id" } }'Python
import requests import json payload = { "query": "我喜欢什么菜", "agent_id": "food-assistant", "filters": { "user_id": "user_002", "run_id": "user_002_run_id" } } response = requests.post( "http://<your-endpoint>:8080/v2/memories/search", headers={"Authorization": "Token <your-api-key>", "Content-Type": "application/json"}, data=json.dumps(payload) ) print(json.dumps(response.json(), indent=2, ensure_ascii=False))agent_id
String(可选)限定在指定智能体下搜索。
filters
String(必选)基于元数据的过滤条件。
获取记忆(Get Memories)
获取指定范围内的所有原始记忆。
请求地址:
POST /v2/memories请求体:
filters
String(必选)基于元数据的过滤条件。
curl
curl -X POST http://my-endpoint:8080/v2/memories \ -H "Content-Type: application/json" \ -H "Authorization: Token <your-api-key>" \ -d '{ "filters": { "user_id": "user_002", "run_id": "user_002_run_id", "agent_id": "food-assistant" } }'Python
import requests import json payload = { "filters": { "user_id": "user_002", "run_id": "user_002_run_id", "agent_id": "food-assistant", } } response = requests.post( "http://<your-endpoint>:8080/v2/memories", headers={"Authorization": "Token <your-api-key>", "Content-Type": "application/json"}, data=json.dumps(payload) ) print(json.dumps(response.json(), indent=2, ensure_ascii=False))
删除记忆(Delete Memories)
删除指定范围内的所有记忆。
请求地址:
DELETE /v1/memories请求体:
user_id
String(必选)用户的唯一标识符。
curl
curl -X DELETE 'http://<your-endpoint>:8080/v1/memories?user_id=user_002&agent_id=food-assistant' \ -H 'accept: application/json' \ -H 'Authorization: Token <your-api-key>'Python
import requests import json # 限制搜索范围 current_user_id = "user_002" current_agent_id = "food-assistant" # 准备API请求的URL和数据 api_url = f"http://<your-endpoint>:8080/v1/memories?user_id={current_user_id}&agent_id={current_agent_id}" response = requests.delete( api_url, headers={"Authorization": "Token <your-api-key>"}, ) print(json.dumps(response.json(), indent=2, ensure_ascii=False))agent_id
String(可选)如果提供,则仅删除该智能体的记忆。
run_id
String(可选)如果提供,则仅删除该会话的记忆。
按需调优与日常管理
链路打通后,可按业务需要调整服务参数、定制记忆提取效果,并在控制台核对已存储的记忆数据。
参数配置
在应用详情页的配置页签,调整以下参数可优化服务性能和效果。
修改部分参数会导致服务重启,建议在业务低峰期操作。
参数 | 说明 |
| 访问凭证,用于客户端连接记忆管理服务时的身份验证。 |
| 提取记忆时判断是否需要新建图节点的阈值。当提取的记忆需要向已有图中增加关系时,通过节点的向量相似度进行比较。相似度大于该阈值时采用现有节点,小于阈值时创建新图节点。默认值为 |
| 记忆服务的最大并发连接数。 |
自定义提取策略
仅mem0记忆引擎支持配置。
记忆管理内置 Prompt 模板(提取策略),用于指导大语言模型从对话中提取和总结记忆,可自定义这些 Prompt 以适应特定的业务场景。
策略类型
当前仅支持会话摘要与语义记忆两种策略类型。
每种策略类型(如会话摘要)在同一时间只能启用一个策略。
操作说明
您可以在记忆管理的提取策略页签中进行管理这些策略。
您可以编辑现有的策略进行微调,或新增策略后,通过修改策略按钮将其设为当前启用的策略。
在控制台查看记忆数据
打开应用详情页的记忆检索页签,可查看和检索已存储的记忆数据。mem0 和 memOS 两种引擎类型的应用均支持该功能。