PolarDB Agent Memory创建完成后,您可以通过控制台配置访问白名单、获取连接地址、自定义记忆抽取策略,并通过HTTP API进行添加、搜索、获取和删除记忆的操作。本文介绍PolarDB Agent Memory的日常使用方式,适用于标准版和企业版。
适用范围
本文操作步骤同时适用于标准版和企业版的PolarDB Agent Memory。企业版将向量数据存储在关联的PolarDB MySQL版集群中,客户端的连接方式与API调用方式与标准版一致。若您尚未创建PolarDB Agent Memory,请参见创建PolarDB Agent Memory。
获取连接地址与访问凭证
获取连接地址:在PolarDB Agent Memory列表页面,单击目标应用ID/名称进入详情页,在基本信息页签中查看公网地址或私网地址。
说明公网地址需单独申请,请单击申请按钮进行申请。
公网地址仅提供IP地址和端口,不提供域名。如有需要,可自行绑定域名。
获取配置信息:在详情页的配置页签中查看相关配置信息,例如API Key(
secret.access.apikey)等。
配置白名单
在PolarDB Agent Memory列表页面,单击目标应用ID/名称进入详情页,切换至白名单页签,通过新增IP白名单分组、选择安全组或修改已有白名单分组。
应用白名单与集群白名单相互独立,需单独配置。
如果ECS实例需要访问应用,可在ECS实例详情页面查看ECS的IP地址并添加到IP白名单:
若ECS与应用位于同一VPC内,可填写ECS的私网IP或所在VPC网段。
若ECS与应用不在同一VPC内,可填写ECS的公网IP,或添加ECS所在的安全组。
如果本地服务器、电脑或其他云服务器需要访问应用,请将其公网IP添加到IP白名单。
(可选)自定义提取策略(Prompt)
PolarDB Agent Memory通过内置的Prompt模板(提取策略)指导大语言模型从对话中提取和总结记忆。您可以自定义这些Prompt,以适配不同业务场景。
策略类型
当前支持对话摘要、记忆更新、问题回答、记忆摘要等多种策略类型,详细策略类型请在控制台查看。
每种策略类型在同一时间只能启用一个策略。
操作说明
在PolarDB Agent Memory详情页的提取策略页签中管理策略。
您可编辑现有策略进行微调,或通过新增策略新增策略,然后通过修改策略将其设为当前启用的策略。
操作示例
添加记忆
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"
}
]
}释放Agent Memory
登录PolarDB控制台,单击左侧导航栏中的PolarDB Agent Memory,找到目标PolarDB Agent Memory,单击操作列的释放应用。
释放后,该PolarDB Agent Memory及其存储的记忆数据将无法恢复,请谨慎操作。
附录:API参考
PolarDB Agent Memory基于开源框架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(可选)如果提供,则仅删除该会话的记忆。