Skip to main content

Add Memory Async

Asynchronously store conversations as memories and query execution status and results by event ID

Submits a memory extraction task asynchronously. The API immediately returns an event ID. Use Get Event to query the result. This API supports extraction for multiple projects, skills, and user profiles.
Before calling, ensure you have obtained an API Key. See Authentication.

Method and endpoint

POST https://dashscope.aliyuncs.com/api/v2/apps/memory/add-async

Request parameters

ParameterTypeRequiredDescription
messagesarrayOne of twoConversation messages. Provide at least one of messages and custom_content
messages[].rolestringNoMessage role. Valid values: user, assistant, and tool
messages[].contentstring / arrayNoMessage content. Pass a text string or a multimodal array containing text and images
messages[].content[].typestringNoContent type: text or image_url. Images are parsed only for projects that support multimodal input
messages[].content[].textstringConditionally requiredText content. Required when type is text
messages[].content[].image_urlobjectConditionally requiredImage information. Required when type is image_url
messages[].content[].image_url.urlstringConditionally requiredImage URL
messages[].tool_callsarrayNoTool calls initiated by an assistant message in OpenAI format. Tool messages are accepted only for skill extraction and are filtered out for other extraction types
messages[].tool_calls[].idstringNoTool call ID
messages[].tool_calls[].typestringNoTool call type. The value is function
messages[].tool_calls[].functionobjectConditionally requiredFunction call information. Required when tool_calls is present
messages[].tool_calls[].function.namestringConditionally requiredFunction name. Required for each tool call
messages[].tool_calls[].function.argumentsstringNoFunction arguments as a JSON string, not an object
messages[].tool_call_idstringConditionally requiredCorresponding tool call ID for a message whose role is tool. Tool messages are accepted only for skill extraction
custom_contentstringOne of twoCustom content. When provided, it is saved directly and extraction is no longer based on messages. It cannot be used with project_ids
user_idstringYesSub-user ID used to isolate memories
memory_library_idstringNoMemory library ID. The default library is used if omitted
project_idstringNoCustom project ID. Mutually exclusive with project_ids
project_idsarray[string]NoUp to five custom project IDs. Mutually exclusive with project_id and cannot be used with custom_content
profile_schemastringNoUser profile schema ID. Provide it to extract a user profile
extract_modestringNoExtraction mode. profile_only extracts only the profile
skill_namestringConditionally requiredIf the project is a skill and custom_content is provided, skill_name, skill_description, and skill_tags are all required
skill_descriptionstringConditionally requiredSkill description. Required under the same conditions as skill_name
skill_tagsarray[string]Conditionally requiredSkill tags. Required under the same conditions as skill_name
meta_dataobjectNoCustom metadata

Response

FieldTypeDescription
request_idstringRequest ID
event_idstringExecution event ID
eventsarrayExecution tasks
events[].created_atintegerCreation time
events[].event_idstringEvent ID
events[].event_typestringEvent type, such as ADD_ASYNC
events[].memory_library_idstringMemory library ID for the task
events[].resource_idstringSource ID, such as a project ID or profile schema ID
events[].resource_typestringSource type: observation, skill, user_profile, custom_observation, or custom_skill
events[].statusstringTask status: PENDING, RUNNING, SUCCEEDED, FAILED, or UNRECORDED
events[].updated_atintegerTime when the status was last updated
events[].user_idstringSub-user ID for the task
events[].resultarrayExecution result. Empty in the initial response

Request example

cURL
curl --location 'https://dashscope.aliyuncs.com/api/v2/apps/memory/add-async' \
  --header "Authorization: Bearer $DASHSCOPE_API_KEY" \
  --header 'Content-Type: application/json' \
  --data '{
    "memory_library_id": "memory_library_001",
    "project_ids": ["project_001"],
    "user_id": "user_001",
    "messages": [
      {"role": "user", "content": "Remind me to order takeout at 11 AM every day and to dress warmly tomorrow."},
      {"role": "assistant", "content": "Sure."}
    ],
    "meta_data": {"location_name": "Beijing"}
  }'

Response example

{
  "request_id": "048983ff-ed50-96e0-b0a6-482cce26cbe3",
  "event_id": "9d30e77a2f8e42378bf533406fdc09d9",
  "events": [
    {
      "created_at": 1784638015,
      "event_id": "9d30e77a2f8e42378bf533406fdc09d9",
      "event_type": "ADD_ASYNC",
      "memory_library_id": "memory_library_001",
      "resource_id": "project_001",
      "resource_type": "observation",
      "status": "PENDING",
      "updated_at": 1784638015,
      "user_id": "user_001",
      "result": []
    }
  ]
}
A status of PENDING or RUNNING means the task is still running. Use Get Event to query the result.
Managed Agent API
Flow Agent API
Sandbox API
RAG API
ParseX API
Security API
Framework Integration