通过API调用Agentic Memory智能体记忆服务

更新时间:
复制 MD 格式

Agentic AI智能体与智能搜索服务提供长期/短期/上下文记忆存储与检索服务,支持个性化记忆(Memory)、可复用技能(Skill)以及知识库(Knowledge Base)三类数据的存储、查询、更新和删除操作,采用BM25和向量检索结合的融合检索与多路召回技术,确保高效准确召回。

服务名称

服务ID

服务描述

API调用QPS限制(含主账号与RAM子账号)

Agentic Memory智能体记忆服务

agentic-memory

提供Memory(V4)、Skill(V3)、Knowledge Base(V3)三类数据的存储与管理:Memory存储用户个人偏好等长期记忆;Skill存储可复用的执行逻辑与技能;Knowledge Base以文档形态承载知识资产。

10

如需扩充QPS,请通过工单联系技术支持协助。

API 版本说明

Memory 接口 URI 前缀为 /v4/openapi/workspaces/{workspace_name}/

Skill 与 Knowledge Base 接口 URI 前缀为 /v3/openapi/workspaces/{workspace_name}/

健康检查接口位于服务状态分类,URL前缀 /v3/openapi/workspaces/{workspace_name}/

前提条件

  • 获取身份鉴权信息

    通过API调用AI搜索开放平台服务时,需要对调用者身份进行鉴权,如何获取鉴权信息请参见认证和鉴权

  • 获取服务调用地址

    支持通过公网和VPC两种方式调用服务,详情请参见获取服务接入地址

公共请求说明

公共URI

Memory 接口(V4):

{host}/v4/openapi/workspaces/{workspace_name}/memory/{service_id}

Skill / Knowledge Base / 健康检查接口(V3):

{host}/v3/openapi/workspaces/{workspace_name}/memory/{service_id}

参数说明:

  • host:调用服务的地址,支持通过公网和VPC两种方式调用API服务,可参见获取服务接入地址

  • workspace_name:工作空间名称,例如default。

  • service_id:服务ID,固定值为agentic-memory。

Header参数

API-KEY认证

参数

类型

必填

描述

示例值

Content-Type

String

请求类型:application/json

application/json

Authorization

String

API-Key

Bearer OS-d1**2a

Memory 接口(V4)

本节所有 Memory 操作 URI 前缀为 /v4/openapi/workspaces/{workspace_name}/memory/{service_id}。Memory 异步事件 ID 前缀为 me-

存储 Memory

从消息内容中智能提取用户偏好信息并存储为 Memory。存储过程为异步处理,接口返回事件 ID(event_id),可通过查询任务状态接口获取处理结果。系统会自动搜索已有记忆并去重,自动判断新增或更新。

请求方式

POST

URL

{host}/v4/openapi/workspaces/{workspace_name}/memory/{service_id}/memories/add

Body参数

参数

类型

必填

描述

示例值

messages

String/Object/Array

消息内容,支持三种格式:String(简单文本)、Object(单条消息)、Array(多轮对话)。

  • String:"我喜欢喝咖啡"

  • Object:

    {
      "role": "user",
      "content": "我喜欢喝咖啡"
    }
  • Array(多轮对话):

    [
      {"role": "user", "content": "我喜欢喝咖啡,帮我推荐"},
      {"role": "assistant", "content": "为您推荐美式咖啡..."}
    ]

user_id

String

用户 ID。

user_123

agent_id

String

Agent ID,仅作为过滤维度使用。

agent_001

run_id

String

Run ID,仅作为过滤维度使用。

run_001

metadata

Object

自定义键值对,与 Memory 一同存储,可用于标注来源、分类等业务字段。

{"source": "example"}

infer

Boolean

是否对消息进行语义抽取以生成 Memory。默认 true,表示由系统智能提取关键信息;置为 false 则按原文整体落库。

true

返回参数

参数

类型

描述

示例值

event_id

String

异步事件 ID,前缀为 me-,可通过查询任务状态接口获取处理结果。

me-06bde8b5-d123-43cf-9898-64d08fbfaafc

status

String

事件初始状态,固定为 PENDING。

PENDING

message

String

提示信息。

Memory creation accepted; poll the event endpoint for status.

Curl请求示例

curl --location 'http://****-hangzhou.opensearch.aliyuncs.com/v4/openapi/workspaces/default/memory/agentic-memory/memories/add' \
--header 'Authorization: Bearer 您的API-KEY' \
--header 'Content-Type: application/json' \
--data '{
  "messages": [
    {"role": "user", "content": "我喜欢喝咖啡,帮我推荐"},
    {"role": "assistant", "content": "为您推荐美式咖啡..."}
  ],
  "user_id": "user_123",
  "metadata": {"source": "example"}
}'

响应示例

{
  "message": "Memory creation accepted; poll the event endpoint for status.",
  "status": "PENDING",
  "event_id": "me-06bde8b5-d123-43cf-9898-64d08fbfaafc"
}

查询事件状态

查询存储 Memory 的异步事件处理状态及生成的 Memory 列表。

请求方式

GET

URL

{host}/v4/openapi/workspaces/{workspace_name}/memory/{service_id}/events/{event_id}

Path参数

参数

类型

必填

描述

示例值

event_id

String

存储 Memory 时返回的事件 ID,前缀为 me-。

me-06bde8b5-d123-43cf-9898-64d08fbfaafc

返回参数

参数

类型

描述

示例值

id

String

事件 ID。

me-06bde8b5-d123-43cf-9898-64d08fbfaafc

status

String

事件状态,取值:PENDING(待处理)、SUCCEEDED(处理完成)、FAILED(处理失败)。

SUCCEEDED

results

Array

处理完成后生成的 Memory ID 列表。

["m-8d0417d7-9368-4777-9016-b7ee6daeb70b"]

Curl请求示例

curl --location 'http://****-hangzhou.opensearch.aliyuncs.com/v4/openapi/workspaces/default/memory/agentic-memory/events/me-06bde8b5-d123-43cf-9898-64d08fbfaafc' \
--header 'Authorization: Bearer 您的API-KEY'

响应示例

{
  "id": "me-06bde8b5-d123-43cf-9898-64d08fbfaafc",
  "status": "SUCCEEDED",
  "results": [
    "m-8d0417d7-9368-4777-9016-b7ee6daeb70b",
    "m-877edf7b-cb5a-4f43-bc6b-f8fa022a3a04"
  ]
}

获取 Memory

根据 Memory ID 获取单条 Memory 详情。

请求方式

GET

URL

{host}/v4/openapi/workspaces/{workspace_name}/memory/{service_id}/memories/{memory_id}

Path参数

参数

类型

必填

描述

示例值

memory_id

String

Memory ID,前缀为 m-。

m-877edf7b-cb5a-4f43-bc6b-f8fa022a3a04

返回参数

响应包含 id、memory、user_id、agent_id、run_id、metadata、created_at、updated_at 等字段,字段定义与搜索 Memory响应中的单条记录一致。

Curl请求示例

curl --location 'http://****-hangzhou.opensearch.aliyuncs.com/v4/openapi/workspaces/default/memory/agentic-memory/memories/m-877edf7b-cb5a-4f43-bc6b-f8fa022a3a04' \
--header 'Authorization: Bearer 您的API-KEY'

响应示例

{
  "id": "m-877edf7b-cb5a-4f43-bc6b-f8fa022a3a04",
  "memory": "助手为用户推荐了美式咖啡",
  "user_id": "user_123",
  "agent_id": "agent_001",
  "run_id": "run_001",
  "metadata": {"source": "example"},
  "created_at": "2026-06-02T08:39:21.482047Z",
  "updated_at": "2026-06-02T08:39:21.482047Z"
}

更新 Memory

根据 Memory ID 更新已有记忆内容或附加 metadata。

请求方式

PUT

URL

{host}/v4/openapi/workspaces/{workspace_name}/memory/{service_id}/memories/{memory_id}

Body参数

参数

类型

必填

描述

示例值

text

String

更新后的记忆内容。

助手为用户推荐了拿铁咖啡

metadata

Object

自定义键值对,可追加或覆盖业务字段。

{"category": "updated"}

Curl请求示例

curl --location --request PUT 'http://****-hangzhou.opensearch.aliyuncs.com/v4/openapi/workspaces/default/memory/agentic-memory/memories/m-877edf7b-cb5a-4f43-bc6b-f8fa022a3a04' \
--header 'Authorization: Bearer 您的API-KEY' \
--header 'Content-Type: application/json' \
--data '{
  "text": "助手为用户推荐了拿铁咖啡",
  "metadata": {"category": "updated"}
}'

响应示例

{
  "id": "m-877edf7b-cb5a-4f43-bc6b-f8fa022a3a04",
  "text": "助手为用户推荐了拿铁咖啡",
  "user_id": "user_123",
  "agent_id": "agent_001",
  "run_id": "run_001",
  "metadata": {"source": "example", "category": "updated"},
  "created_at": "2026-06-02T08:39:21.482047Z",
  "updated_at": "2026-06-02T08:40:18.428159Z"
}

删除 Memory

根据 Memory ID 删除一条 Memory。返回 message 指示删除结果。

请求方式

DELETE

URL

{host}/v4/openapi/workspaces/{workspace_name}/memory/{service_id}/memories/{memory_id}

Curl请求示例

curl --location --request DELETE 'http://****-hangzhou.opensearch.aliyuncs.com/v4/openapi/workspaces/default/memory/agentic-memory/memories/m-877edf7b-cb5a-4f43-bc6b-f8fa022a3a04' \
--header 'Authorization: Bearer 您的API-KEY'

响应示例

{
  "message": "Memory m-877edf7b-cb5a-4f43-bc6b-f8fa022a3a04 deleted successfully"
}

Skill 接口(V3)

本节所有 Skill 操作 URI 前缀为 /v3/openapi/workspaces/{workspace_name}/memory/{service_id}。Skill 异步任务 ID 前缀为 st-

提取并存储 Skill

从多轮对话中智能提取可复用技能(Skill)并存储。处理为异步任务,接口返回任务 ID,可通过查询 Skill 任务状态接口获取结果。

请求方式

POST

URL

{host}/v3/openapi/workspaces/{workspace_name}/memory/{service_id}/skills/add

Body参数

参数

类型

必填

描述

示例值

messages

Array

多轮对话消息列表,仅支持 Array 格式。

[{"role":"user","content":"..."},{"role":"assistant","content":"..."}]

user_id

String

用户 ID。

user_123

agent_id

String

Agent ID。

agent_001

Curl请求示例

curl --location 'http://****-hangzhou.opensearch.aliyuncs.com/v3/openapi/workspaces/default/memory/agentic-memory/skills/add' \
--header 'Authorization: Bearer 您的API-KEY' \
--header 'Content-Type: application/json' \
--data '{
  "messages": [
    {"role": "user", "content": "统一登录失败提示文案"},
    {"role": "assistant", "content": "将三端登录失败统一为登录信息有误,请重试"}
  ],
  "user_id": "user_123"
}'

响应示例

{
  "request_id": "3bb081b08c7e4fc8516d26f647f0b2bc",
  "latency": 1659,
  "status": "OK",
  "result": {
    "task_id": "st-73a7c2f1-5600-435e-a4a2-7a9dff6186cf"
  }
}

上传 Skill(ZIP 包导入)

通过 ZIP 包方式批量上传 Skill。返回导入成功的 Skill 数量与元信息列表。

请求方式

POST

URL

{host}/v3/openapi/workspaces/{workspace_name}/memory/{service_id}/skills/import

Body参数

参数

类型

必填

描述

示例值

zip_base64

String

ZIP 文件的 Base64 编码内容。

<base64>

user_id

String

用户 ID。

user_123

agent_id

String

Agent ID。

agent_001

返回参数

参数

类型

描述

示例值

result.imported_count

Int

导入成功的 Skill 数量。

1

result.data

Array

导入的 Skill 列表,每条 Skill 包含以下字段。

-

result.data[].id

String

Skill ID,前缀为 s-。可作为获取、更新、删除 Skill 接口的 skill_id 入参。

s-8f9ac898-820b-4ac5-b981-88c7a7f0edae

result.data[].name

String

Skill 名称,来自 ZIP 内 SKILL.md 的 name 字段。

上传测试技能

result.data[].description

String

Skill 描述,来自 SKILL.md 的 description 字段。

通过 doctest 验证上传 Skill 接口的响应字段结构

result.data[].version

String

Skill 版本,来自 SKILL.md 的 version 字段。

0.2.0

result.data[].owner

String

Skill 所有者,取自请求 Body 中的 user_id。

user_123

result.data[].tags

Array of String

Skill 标签列表,来自 SKILL.md 的 tags 字段。

["test", "doc"]

result.data[].triggers

Array of String

Skill 触发关键词列表,来自 SKILL.md 的 triggers 字段。

["测试上传", "verify upload"]

result.data[].resource_paths

Array of String

ZIP 内除 SKILL.md 外的其他资源文件相对路径列表(如 _meta.json、scripts/、references/ 等)。SKILL.md 作为入口被解析,不在此列表中。

["_meta.json", "scripts/echo.py", "references/notes.md"]

result.data[].updated_at

String

Skill 入库或更新时间,ISO 8601 格式(带时区偏移)。

2026-06-02T09:17:57+00:00

Curl请求示例

curl -X POST --location 'http://****-hangzhou.opensearch.aliyuncs.com/v3/openapi/workspaces/default/memory/agentic-memory/skills/import' \
--header 'Authorization: Bearer 您的API-KEY' \
--header 'Content-Type: application/json' \
--data '{
  "zip_base64": "<base64编码的ZIP文件内容>",
  "user_id": "user_123"
}'

响应示例

{
  "request_id": "18d236243f851d13c6fd456743fbec8a",
  "latency": 246,
  "status": "OK",
  "result": {
    "imported_count": 1,
    "data": [
      {
        "id": "s-8f9ac898-820b-4ac5-b981-88c7a7f0edae",
        "name": "上传测试技能",
        "description": "通过 doctest 验证上传 Skill 接口的响应字段结构",
        "version": "0.2.0",
        "owner": "user_123",
        "tags": ["test", "doc"],
        "triggers": ["测试上传", "verify upload"],
        "resource_paths": ["_meta.json", "scripts/echo.py", "references/notes.md"],
        "updated_at": "2026-06-02T09:17:57+00:00"
      }
    ]
  }
}

查询 Skill 任务状态

查询提取/存储 Skill 的异步任务处理状态及生成的 Skill ID 列表。

请求方式

GET

URL

{host}/v3/openapi/workspaces/{workspace_name}/memory/{service_id}/skills/tasks/{task_id}

返回参数

响应包含 result.task_id、result.status(pending/running/completed/failed)、result.skill_ids(生成的 Skill ID 列表)、result.error_message。

Curl请求示例

curl --location 'http://****-hangzhou.opensearch.aliyuncs.com/v3/openapi/workspaces/default/memory/agentic-memory/skills/tasks/st-73a7c2f1-5600-435e-a4a2-7a9dff6186cf' \
--header 'Authorization: Bearer 您的API-KEY'

响应示例

{
  "request_id": "2c941feb3468ff5d6ef229204734cddb",
  "latency": 3,
  "status": "OK",
  "result": {
    "task_id": "st-73a7c2f1-5600-435e-a4a2-7a9dff6186cf",
    "status": "completed",
    "skill_ids": ["s-c0e6aaf9-8dea-4729-a958-f11b9a2e3166"]
  }
}

获取 Skill

根据 Skill ID 获取单条 Skill 详情,包含 SKILL.md 等文件内容。响应包含 result.skill_id、result.name、result.version、result.files、result.user_id、result.agent_id。

请求方式

GET

URL

{host}/v3/openapi/workspaces/{workspace_name}/memory/{service_id}/skills/{skill_id}

Curl请求示例

curl --location 'http://****-hangzhou.opensearch.aliyuncs.com/v3/openapi/workspaces/default/memory/agentic-memory/skills/s-c0e6aaf9-8dea-4729-a958-f11b9a2e3166' \
--header 'Authorization: Bearer 您的API-KEY'

响应示例

{
  "request_id": "6d46c81b462f5ec93b94281d5be1ca3a",
  "latency": 89,
  "status": "OK",
  "result": {
    "skill_id": "s-c0e6aaf9-8dea-4729-a958-f11b9a2e3166",
    "name": "测试技能",
    "version": "0.1.0",
    "files": {
      "SKILL.md": "---\nid: \"s-c0e6aaf9-...\"\nname: \"测试技能\"\nversion: \"0.1.0\"\n---\n# 测试技能"
    },
    "user_id": "user_123",
    "agent_id": ""
  }
}

更新 Skill

更新指定 Skill 的信息,可单独更新一个或多个字段。Body 中 user_id 必填,其余字段(name、version、files、agent_id、description、tags)按需传入。响应结构与获取 Skill 一致。

请求方式

PUT

URL

{host}/v3/openapi/workspaces/{workspace_name}/memory/{service_id}/skills/{skill_id}

Curl请求示例

curl -X PUT --location 'http://****-hangzhou.opensearch.aliyuncs.com/v3/openapi/workspaces/default/memory/agentic-memory/skills/s-c0e6aaf9-8dea-4729-a958-f11b9a2e3166' \
--header 'Authorization: Bearer 您的API-KEY' \
--header 'Content-Type: application/json' \
--data '{
  "version": "1.0",
  "user_id": "user_123"
}'

响应示例

{
  "request_id": "224c2313-7b70-47f7-8748-8f583d7b9ae1",
  "latency": 284,
  "status": "OK",
  "result": {
    "name": "统一多端登录失败提示文案",
    "version": "1.0",
    "files": {
      "SKILL.md": "---\nid: \"s-c0e6aaf9-...\"\nname: \"统一多端登录失败提示文案\"\n..."
    }
  }
}

删除 Skill

根据 Skill ID 删除一条 Skill。响应包含 result.skill_id、result.status、result.message。

请求方式

DELETE

URL

{host}/v3/openapi/workspaces/{workspace_name}/memory/{service_id}/skills/{skill_id}

Curl请求示例

curl --location --request DELETE 'http://****-hangzhou.opensearch.aliyuncs.com/v3/openapi/workspaces/default/memory/agentic-memory/skills/s-c0e6aaf9-8dea-4729-a958-f11b9a2e3166' \
--header 'Authorization: Bearer 您的API-KEY'

响应示例

{
  "request_id": "477bdd93f61dfb229452febd6f7d1725",
  "latency": 181,
  "status": "OK",
  "result": {
    "skill_id": "s-c0e6aaf9-8dea-4729-a958-f11b9a2e3166",
    "status": "success",
    "message": "Skill s-c0e6aaf9-8dea-4729-a958-f11b9a2e3166 deleted"
  }
}

知识库(Knowledge Base)接口(V3)

本节所有 Knowledge Base 操作 URI 前缀为 /v3/openapi/workspaces/{workspace_name}/memory/{service_id},需要先在控制台创建知识库以获取 kb_id。

上传 KB 文档

向知识库上传文档,支持 LOCAL(本地文件 URL)和 OSS 两种来源。

请求方式

POST

URL

{host}/v3/openapi/workspaces/{workspace_name}/memory/{service_id}/knowledge-bases/{kb_id}/docs

Body参数

参数

类型

必填

描述

示例值

type

String

文档来源类型,取值:

  • LOCAL:本地文件 URL

  • OSS:OSS 对象。

LOCAL

doc.id

String

本地文档自定义 ID(type=LOCAL 时可选)。

doc-001

doc.title

String

文档标题(type=LOCAL 时可选)。

使用手册

doc.file_url

String

条件必填

本地文档可访问 URL,type=LOCAL 时必填。

https://example.com/manual.pdf

doc.oss_path

String

条件必填

OSS 对象路径,type=OSS 时必填。

docs/manual.pdf

doc.oss_bucket

String

条件必填

OSS 桶名称,type=OSS 时必填。

my-bucket

doc.oss_endpoint

String

条件必填

OSS endpoint,type=OSS 时必填。

oss-cn-hangzhou.aliyuncs.com

返回参数

响应包含 id(上传成功后生成的文档 ID)和 result.error_message(失败时不为空)。

Curl请求示例

curl --location 'http://****-hangzhou.opensearch.aliyuncs.com/v3/openapi/workspaces/default/memory/agentic-memory/knowledge-bases/kb-001/docs' \
--header 'Authorization: Bearer 您的API-KEY' \
--header 'Content-Type: application/json' \
--data '{
  "type": "LOCAL",
  "doc": {
    "id": "doc-001",
    "title": "使用手册",
    "file_url": "https://example.com/manual.pdf"
  }
}'

获取 KB 文档列表

分页获取知识库下的文档列表。Query 参数 page_number(默认 1)和 page_size(默认 10,最大 100)可选。响应 result.results[] 含 id、title、timestamp、status(PROCESSING / SUCCESS / FAIL),result.total 为总数。

请求方式

GET

URL

{host}/v3/openapi/workspaces/{workspace_name}/memory/{service_id}/knowledge-bases/{kb_id}/docs

Curl请求示例

curl --location 'http://****-hangzhou.opensearch.aliyuncs.com/v3/openapi/workspaces/default/memory/agentic-memory/knowledge-bases/kb-001/docs?page_number=1&page_size=10' \
--header 'Authorization: Bearer 您的API-KEY'

查看 KB 文档详情

根据文档 ID 获取知识库文档详情。响应 result 包含 id、title、content、status、timestamp 字段。

请求方式

GET

URL

{host}/v3/openapi/workspaces/{workspace_name}/memory/{service_id}/knowledge-bases/{kb_id}/docs/{doc_id}

Curl请求示例

curl --location 'http://****-hangzhou.opensearch.aliyuncs.com/v3/openapi/workspaces/default/memory/agentic-memory/knowledge-bases/kb-001/docs/doc-001' \
--header 'Authorization: Bearer 您的API-KEY'

删除 KB 文档

根据文档 ID 删除知识库文档。响应 result 包含 id(被删除的文档 ID)和 error_message(失败时不为空)。

请求方式

DELETE

URL

{host}/v3/openapi/workspaces/{workspace_name}/memory/{service_id}/knowledge-bases/{kb_id}/docs/{doc_id}

Curl请求示例

curl --location --request DELETE 'http://****-hangzhou.opensearch.aliyuncs.com/v3/openapi/workspaces/default/memory/agentic-memory/knowledge-bases/kb-001/docs/doc-001' \
--header 'Authorization: Bearer 您的API-KEY'

服务状态接口

健康检查

检查 Memory 服务的健康状态。该接口位于服务状态分类,URI 沿用 V3 前缀(V4 路径下没有 health endpoint)。

请求方式

GET

URL

{host}/v3/openapi/workspaces/{workspace_name}/memory/{service_id}/health

返回参数

参数

类型

描述

示例值

result.status

String

服务健康状态。取值:healthy(健康)、unhealthy(不健康)。

healthy

Curl请求示例

curl --location 'http://****-hangzhou.opensearch.aliyuncs.com/v3/openapi/workspaces/default/memory/agentic-memory/health' \
--header 'Authorization: Bearer 您的API-KEY'

响应示例

{
  "request_id": "287d9462-3c9a-2706-780e-b49aa3702e01",
  "latency": 6,
  "status": "OK",
  "result": {
    "status": "healthy"
  }
}

公共响应字段

以下字段在所有接口的响应外层中均包含。

参数

类型

描述

示例值

request_id

String

系统对一次 API 调用赋予的唯一标识。

9907b179-7bcc-2c43-21db-d3c9d777bbfe

latency

Int

请求耗时,单位 ms。

161

status

String

请求状态。

OK

状态码说明

HTTP状态码

错误码

描述

200

-

请求成功。异步任务的实际处理状态需从 status 中判断(V3 小写:completed/running/pending/failed;V4 大写:SUCCEEDED/PENDING/FAILED)。

400

InvalidParameter

请求参数不合法。

400

CredentialsNotFound

鉴权信息无效(Invalid token)。请检查请求头 Authorization 中的 API-Key 是否正确。

200

InternalServerError / NotFound

资源不存在(Memory / Skill / Task / Knowledge Base 等)。服务端将业务级 NotFound 错误用 HTTP 200 + code 字段包裹返回,请通过响应体中的 code 与 message 字段判断具体错误,不要仅依赖 HTTP 状态码区分。

429

RateLimitExceeded

请求频率超过限制。

500

InternalServerError

服务器内部错误。

异常响应示例

{
  "request_id": "590A7EB8-AA84-****-AF31-8C35DC965972",
  "latency": 0,
  "code": "InvalidParameter",
  "http_code": 400,
  "message": "user_id is required"
}