Skip to content
Merged
Show file tree
Hide file tree
Changes from 5 commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
b08069d
Add comprehensive agentic memory API documentation for OpenSearch 3.3
dhrubo-os Oct 1, 2025
b0144d7
Consolidate agentic memory APIs and update with real response examples
dhrubo-os Oct 10, 2025
10fb3cc
Complete agentic memory API documentation with missing container APIs
dhrubo-os Oct 10, 2025
5ec0870
Document default llm_result_path and LLM connector requirements
dhrubo-os Oct 10, 2025
8a8ef96
Merge branch 'main' into main
dhrubo-os Oct 10, 2025
eb75f4e
Address ylwu-amzn review comments
dhrubo-os Oct 10, 2025
014d9ba
Add agentic memory cluster setting
dhrubo-os Oct 10, 2025
7c976f2
update path parameters
dhrubo-os Oct 10, 2025
7428307
Add comprehensive agentic memory API documentation for OpenSearch 3.3
dhrubo-os Oct 1, 2025
ab7fd46
Consolidate agentic memory APIs and update with real response examples
dhrubo-os Oct 10, 2025
c5a4cc8
Complete agentic memory API documentation with missing container APIs
dhrubo-os Oct 10, 2025
ee90e24
Document default llm_result_path and LLM connector requirements
dhrubo-os Oct 10, 2025
e82965d
Address ylwu-amzn review comments
dhrubo-os Oct 10, 2025
56a10a2
Add agentic memory cluster setting
dhrubo-os Oct 10, 2025
f4d4bbf
update path parameters
dhrubo-os Oct 10, 2025
1340f34
addressed comments
dhrubo-os Oct 11, 2025
b18236c
addressed comments
dhrubo-os Oct 12, 2025
fdbd793
Merge upstream changes
kolchfa-aws Oct 13, 2025
0a258d2
Resolve merge conflicts
kolchfa-aws Oct 13, 2025
2e2ed16
Doc review part 2
kolchfa-aws Oct 13, 2025
f7d8364
Apply suggestions from code review
natebower Oct 13, 2025
32d60a6
Doc review part 3
kolchfa-aws Oct 13, 2025
e09a08e
Update _ml-commons-plugin/api/agentic-memory-apis/create-memory-conta…
natebower Oct 13, 2025
7775179
Apply suggestions from code review
natebower Oct 13, 2025
a097c34
Update _ml-commons-plugin/api/agentic-memory-apis/add-memory.md
natebower Oct 13, 2025
3f6e899
Merge branch 'main' into main
kolchfa-aws Oct 13, 2025
8ad80e2
Add execute tool API doc (#11214)
nathaliellenaa Oct 13, 2025
5bec8d3
add create-session
dhrubo-os Oct 13, 2025
51926fd
Review of create session
kolchfa-aws Oct 14, 2025
f9e8b86
Apply suggestion from @natebower
natebower Oct 14, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
151 changes: 122 additions & 29 deletions _ml-commons-plugin/api/agentic-memory-apis/add-memory.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,14 @@
**Introduced 3.2**
{: .label .label-purple }

This is an experimental feature and is not recommended for use in a production environment. For updates on the progress of the feature or if you want to leave feedback, join the discussion on the [OpenSearch forum](https://forum.opensearch.org/).
{: .warning}

Use this API to add an agentic memory to a [memory container]({{site.url}}{{site.baseurl}}/ml-commons-plugin/api/agentic-memory-apis/create-memory-container). You can create a memory in one of the following modes (controlled by the `infer` parameter):
Use this API to add an agentic memory to a [memory container]({{site.url}}{{site.baseurl}}/ml-commons-plugin/api/agentic-memory-apis/create-memory-container). You can create memories in two types:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Use this API to add an agentic memory to a [memory container]({{site.url}}{{site.baseurl}}/ml-commons-plugin/api/agentic-memory-apis/create-memory-container). You can create memories in two types:
Use this API to add an agentic memory to a [memory container]({{site.url}}{{site.baseurl}}/ml-commons-plugin/api/agentic-memory-apis/create-memory-container). You can provide memory payload in two types:


- **Conversation memory** -- Stores conversational messages between users and assistants. Can be processed (when `infer` is `true`) to extract facts or stored as raw messages.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- **Conversation memory** -- Stores conversational messages between users and assistants. Can be processed (when `infer` is `true`) to extract facts or stored as raw messages.
- **conversational** -- Stores conversational messages between users and assistants.


- **Data memory** -- Stores structured, non-conversational data such as agent state, checkpoints, or reference information.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- **Data memory** -- Stores structured, non-conversational data such as agent state, checkpoints, or reference information.
- **data** -- Stores extra messages, structured, non-conversational data such as agent state, checkpoints, or reference information.


Copy link
Contributor

@ylwu-amzn ylwu-amzn Oct 10, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add some description before showing infer=true/false ? For example add this

User can use infer to choose to extract key information from raw messages or not.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done.

Copy link
Contributor

@ylwu-amzn ylwu-amzn Oct 11, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Seems misunderstood my comments. Check the preview of this doc, it shows

provide memory payload in two types:

  • conversational: ...
  • data: ...
  • infer: ...

Let's keep it simple, just remove this infer line, just merge this infer parameter description to the infer row in the fields table ?

Memory processing modes (controlled by the `infer` parameter):

- Fact memory -- A processed representation of the message. The large language model (LLM) associated with the memory container extracts and stores key factual information or knowledge from the original text.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- Fact memory -- A processed representation of the message. The large language model (LLM) associated with the memory container extracts and stores key factual information or knowledge from the original text.
- **infer=true** -- Use large language model (LLM) to extract key information or knowledge from the messages.


Expand All @@ -33,41 +37,133 @@

Field | Data type | Required/Optional | Description
:--- | :--- | :--- | :---
`messages` | List | Required | A list of messages. Each message requires `content` and may include a `role` (commonly, `user` or `assistant`) when `infer` is set to `true`.
`session_id` | String | Optional | The session ID associated with the memory.
`agent_id` | String | Optional | The agent ID associated with the memory.
`infer` | Boolean | Optional | Controls whether the LLM infers context from messages. Default is `true`. When `true`, the LLM extracts factual information from the original text and stores it as the memory. When `false`, the memory contains the unprocessed message and you must explicitly specify the `role` in each message.
`messages` | List | Conditional | A list of messages for conversation memory. Each message requires `content` and may include a `role` (commonly, `user` or `assistant`) when `infer` is set to `true`. Required for `memory_type` of `conversation`.
Copy link
Contributor

@ylwu-amzn ylwu-amzn Oct 10, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
`messages` | List | Conditional | A list of messages for conversation memory. Each message requires `content` and may include a `role` (commonly, `user` or `assistant`) when `infer` is set to `true`. Required for `memory_type` of `conversation`.
`messages` | List | Conditional | A list of messages for conversational payload. Each message requires `content` and may include a `role` (commonly, `user` or `assistant`) when `infer` is set to `true`. Required for `payload_type` of `conversational`.

`structured_data` | Object | Conditional | Structured data content for data memory. Required for `memory_type` of `data`.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
`structured_data` | Object | Conditional | Structured data content for data memory. Required for `memory_type` of `data`.
`structured_data` | Map<String, Object> | Conditional | Structured data content for data memory. Required for `memory_type` of `data`.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add a new row for binary_data

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

And metadata also?

`memory_type` | String | Required | The type of memory: `conversation` or `data`.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
`memory_type` | String | Required | The type of memory: `conversation` or `data`.
`payload_type` | String | Required | The type of payload: `conversational` or `data`.

`namespace` | Object | Optional | Namespace context for organizing memories (e.g., `user_id`, `session_id`, `agent_id`).
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
`namespace` | Object | Optional | Namespace context for organizing memories (e.g., `user_id`, `session_id`, `agent_id`).
`namespace` | List<String> | Optional | Namespace context for organizing memories (e.g., `user_id`, `session_id`, `agent_id`).

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Explain more details

If session_id not exists in namespace will create a new session and use the new session's id

`metadata` | Object | Optional | Additional metadata for the memory (e.g., `status`, `branch`, custom fields).
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
`metadata` | Object | Optional | Additional metadata for the memory (e.g., `status`, `branch`, custom fields).
`metadata` | Map<String, String> | Optional | Additional metadata for the memory (e.g., `status`, `branch`, custom fields).

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

From the code looks like it's Map<String, Object>

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add a new row for tags

`session_id` | String | Optional | The session ID associated with the memory. Deprecated in favor of using `namespace.session_id`.
Copy link
Contributor

@ylwu-amzn ylwu-amzn Oct 10, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remove these two lines: 45, 46

`agent_id` | String | Optional | The agent ID associated with the memory. Deprecated in favor of using `namespace.agent_id`.
`infer` | Boolean | Optional | Controls whether the LLM infers context from messages. Default is `true` for conversation memory, `false` for data memory. When `true`, the LLM extracts factual information from the original text and stores it as the memory. When `false`, the memory contains the unprocessed message and you must explicitly specify the `role` in each message.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
`infer` | Boolean | Optional | Controls whether the LLM infers context from messages. Default is `true` for conversation memory, `false` for data memory. When `true`, the LLM extracts factual information from the original text and stores it as the memory. When `false`, the memory contains the unprocessed message and you must explicitly specify the `role` in each message.
`infer` | Boolean | Optional | Controls whether use LLM to extract key information from messages. Default is `false`. When `true`, the LLM extracts key information from the original text and stores it as the memory.

`tags` | Object | Optional | Custom metadata for the agentic memory.

## Example request
## Example requests

### Conversation memory

Check failure on line 52 in _ml-commons-plugin/api/agentic-memory-apis/add-memory.md

View workflow job for this annotation

GitHub Actions / style-job

[vale] reported by reviewdog 🐶 [OpenSearch.StackedHeadings] Do not stack headings. Insert an introductory sentence between headings. Raw Output: {"message": "[OpenSearch.StackedHeadings] Do not stack headings. Insert an introductory sentence between headings.", "location": {"path": "_ml-commons-plugin/api/agentic-memory-apis/add-memory.md", "range": {"start": {"line": 52, "column": 1}}}, "severity": "ERROR"}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
### Conversation memory
### Conversational payload


```json
POST /_plugins/_ml/memory_containers/SdjmmpgBOh0h20Y9kWuN/memories
{
"messages": [
{
"role": "user",
"content": "I'm Bob, I really like swimming."
},
{
"role": "assistant",
"content": "Cool, nice. Hope you enjoy your life."
}
],
"namespace": {
"user_id": "bob"
},
"metadata": {
"status": "checkpoint",
"branch": {
"branch_name": "high",
"root_event_id": "228nadfs879mtgk"
}
},
"tags": {
"topic": "personal info"
},
"infer": true,
"memory_type": "conversation"
Copy link
Contributor

@ylwu-amzn ylwu-amzn Oct 10, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
"memory_type": "conversation"
"payload_type": "conversational"

}
```

### Data memory
Copy link
Contributor

@ylwu-amzn ylwu-amzn Oct 10, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
### Data memory
### Data payload
Store agent state in working memory:


```json
POST /_plugins/_ml/memory_containers/SdjmmpgBOh0h20Y9kWuN/memories
{
"messages": [
{"role": "user", "content": "Machine learning is a subset of artificial intelligence"}
],
"session_id": "sess_789",
"agent_id": "agent_123",
"tags": {
"topic": "personal info"
"structured_data": {
"time_range": {
"start": "2025-09-11",
"end": "2025-09-15"
}
},
"namespace": {
"agent_id": "testAgent1"
},
"metadata": {
"status": "checkpoint",
"anyobject": "abc"
},
"tags": {
"topic": "agent_state"
},
"infer": false,
"memory_type": "data"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
"memory_type": "data"
"payload_type": "data"

}
```

### Trace data memory
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
### Trace data memory
Store agent trace data in working memory:

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I didn't clearly follow this suggestion. you want me to remove ### Trace data memory section?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I mean the Trace data should be one kind of data type payload, we don't need to make it as same level of ### Data payload


```json
POST /_plugins/_ml/memory_containers/SdjmmpgBOh0h20Y9kWuN/memories
{
"structured_data": {
"tool_invocations": [
{
"tool_name": "ListIndexTool",
"tool_input": {
"filter": "*,-.plugins*"
},
"tool_output": "green open security-auditlog-2025.09.17..."
}
]
},
"namespace": {
"user_id": "bob",
"agent_id": "testAgent1",
"session_id": "123"
},
"metadata": {
"status": "checkpoint",
"branch": {
"branch_name": "high",
"root_event_id": "228nadfs879mtgk"
},
"anyobject": "abc"
},
"tags": {
"topic": "personal info",
"parent_memory_id": "o4-WWJkBFT7urc7Ed9hM",
"data_type": "trace"
},
"infer": false,
"memory_type": "conversation"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
"memory_type": "conversation"
"payload_type": "conversation"

}
```
{% include copy-curl.html %}

## Example response
## Example responses

### Conversation memory response

```json
{
"session_id": "XSEuiJkBeh2gPPwzjYVh",
"working_memory_id": "XyEuiJkBeh2gPPwzjYWM"
}
```

### Data memory response

```json
{
"results": [
{
"id": "T9jtmpgBOh0h20Y91WtZ",
"text": "Machine learning is a subset of artificial intelligence",
"event": "ADD"
}
],
"session_id": "sess_789"
"working_memory_id": "Z8xeTpkBvwXRq366l0iA"
}
```

Expand All @@ -77,8 +173,5 @@

| Field | Data type | Description |
| :-------------- | :-------- | :------------------------------------------------------------------------------------------------ |
| `results` | List | A list of memory entries returned by the request. |
| `results.id` | String | The unique identifier for the memory entry. |
| `results.text` | String | If `infer` is `false`, contains the stored text from the message. If `infer` is `true`, contains the extracted fact from the message. |
| `results.event` | String | The type of event for the memory entry. For the Add Agentic Memory API, the event type is always `ADD`, indicating that the memory was added. |
| `session_id` | String | The session ID associated with the memory. |
| `session_id` | String | The session ID associated with the memory (returned for conversation memory when a session is created or used). |
| `working_memory_id` | String | The unique identifier for the created working memory entry. |
Original file line number Diff line number Diff line change
Expand Up @@ -10,14 +10,13 @@ nav_order: 10
**Introduced 3.2**
{: .label .label-purple }

This is an experimental feature and is not recommended for use in a production environment. For updates on the progress of the feature or if you want to leave feedback, join the discussion on the [OpenSearch forum](https://forum.opensearch.org/).
{: .warning}

Use this API to create a memory container to hold agentic memories. The container can have two model types associated with it:

- A text embedding model for vectorizing the message so it can be searched. Use a text embedding model for dense vector embeddings or a sparse encoding model for sparse vector formats. If no embedding model is specified, messages are stored but cannot be used for vector-based searches.
- A large language model (LLM) for reasoning over the message to produce factual or processed content. If no LLM is specified, messages are stored directly, without applying inference.

**Note**: LLM connectors must support `system_prompt` and `user_prompt` parameters for agentic memory processing. The default `llm_result_path` is configured for Bedrock Converse API format (`"$.output.message.content[0].text"`).
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Seems repetitive at line 22?


Once a memory container is created, you'll provide its `memory_container_id` to other APIs.

## Prerequisites
Expand Down Expand Up @@ -143,33 +142,110 @@ Field | Data type | Required/Optional | Description
:--- | :--- | :--- | :---
`name` | String | Required | The name of the memory container.
`description` | String | Optional | The description of the memory container.
`memory_storage_config` | Object | Optional | The memory storage configuration. See [the `memory_storage_config` object](#the-memory_storage_config-object).
`configuration` | Object | Required | The memory container configuration. See [the `configuration` object](#the-configuration-object).
Copy link
Contributor

@ylwu-amzn ylwu-amzn Oct 10, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This could be optional, for example user only want to store short-term memory

They can create container with this

POST _plugins/_ml/memory_containers/_create
{
  "name": "working memory only conatiner",
  "description": "Only store short term memory"
}

Then store the message

POST _plugins/_ml/memory_containers/{{mem_container_id}}/memories
{
  "messages": [
    {
      "role": "user",
      "content": [ {"text": "I'm Bob, I really like swimming."} ]
    },
    {
      "role": "assistant",
      "content": [ {"text":  "Cool, nice. Hope you enjoy your life." } ]
    }
  ],
  "namespace": {
    "user_id": "bob",
    "session_id": "session123"
  },
  "tags": {
    "topic": "personal info"
  }
}


### The memory_storage_config object
### The configuration object

The `memory_storage_config` object supports the following fields.
The `configuration` object supports the following fields.

Field | Data type | Required/Optional | Description
:--- | :--- | :--- | :---
`dimension` | Integer | Optional | The dimension of the embedding model. Required if `embedding_model_type` is `TEXT_EMBEDDING`.
`embedding_model_id` | String | Optional | The embedding model ID.
`embedding_model_type` | String | Optional | The embedding model type. Supported types are `TEXT_EMBEDDING` and `SPARSE_ENCODING`.
`llm_model_id` | String | Optional | The LLM ID.
`max_infer_size` | Integer | Optional | The maximum number of messages the LLM processes for inference in a single request. Valid values are 1--9, inclusive. Default is 5.
`memory_index_name` | String | Optional | The name of the index in which to save messages, embeddings, and inferred facts. If not specified, a default index is automatically generated.
`embedding_model_id` | String | Optional | The embedding model ID.
`embedding_dimension` | Integer | Optional | The dimension of the embedding model. Required if `embedding_model_type` is `TEXT_EMBEDDING`.
`llm_id` | String | Optional | The LLM model ID for processing and inference.
`index_prefix` | String | Optional | Custom prefix for the memory indices. If not specified, a default prefix is used.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Explain more details for default prefix

  • If use_system_index is true, use default as index prefix
  • If use_system_index is false, use 8 bit random UUID as index prefix

`use_system_index` | Boolean | Optional | Whether to use system indices. Default is `true`.
`strategies` | Array | Optional | Array of memory processing strategies. See [the `strategies` array](#the-strategies-array).
`parameters` | Object | Optional | Global parameters for the memory container. See [the `parameters` object](#the-parameters-object).

### The strategies array

Each strategy in the `strategies` array supports the following fields.

Field | Data type | Required/Optional | Description
:--- | :--- | :--- | :---
`type` | String | Required | The strategy type: `SEMANTIC`, `USER_PREFERENCE`, or `SUMMARY`.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

add enabled field, bool type, optional

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Memory strategy also support enabled field

`namespace` | Array | Required | Array of namespace dimensions for organizing memories (e.g., `["user_id"]`, `["agent_id"]`).
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggest add more fields to show we can support multiple fields in namespace

Suggested change
`namespace` | Array | Required | Array of namespace dimensions for organizing memories (e.g., `["user_id"]`, `["agent_id"]`).
`namespace` | Array | Required | Array of namespace dimensions for organizing memories (e.g., `["user_id"]`, `["agent_id", "session_id"]`).

`configuration` | Object | Optional | Strategy-specific configuration. See [the strategy `configuration` object](#the-strategy-configuration-object).
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
`configuration` | Object | Optional | Strategy-specific configuration. See [the strategy `configuration` object](#the-strategy-configuration-object).
`configuration` | Map<String, Object> | Optional | Strategy-specific configuration. See [the strategy `configuration` object](#the-strategy-configuration-object).


### The strategy configuration object

Field | Data type | Required/Optional | Description
:--- | :--- | :--- | :---
`llm_result_path` | String | Optional | JSONPath to extract LLM results. Default is `"$.output.message.content[0].text"` for Bedrock Converse API format.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We also support

  1. system_prompt , so user can override the default strategy prompt.
  2. llm_id, user can set different LLM for each strategy


### The parameters object

Field | Data type | Required/Optional | Description
:--- | :--- | :--- | :---
`llm_result_path` | String | Optional | Global JSONPath for extracting LLM results from responses. Default is `"$.output.message.content[0].text"` for Bedrock Converse API format.

## Example requests

### Basic memory container

```json
POST /_plugins/_ml/memory_containers/_create
{
"name": "agentic memory test",
"description": "Store conversations with semantic search and summarization",
"configuration": {
"embedding_model_type": "TEXT_EMBEDDING",
"embedding_model_id": "{{embedding_model_id}}",
"embedding_dimension": 1024,
"llm_id": "{{llm_id}}",
"strategies": [
{
"type": "SEMANTIC",
"namespace": ["user_id"]
}
]
}
}
```

## Example request
### Advanced memory container with multiple strategies

```json
POST /_plugins/_ml/memory_containers/_create
{
"name": "Sparse memory container",
"description": "Store sparse conversations with semantic search",
"memory_storage_config": {
"llm_model_id": "bbphdJgB9L0Qb_M6ipnn",
"embedding_model_type": "SPARSE_ENCODING",
"embedding_model_id": "RodoX5gBfObQ5OgTHf1X"
"name": "agentic memory test",
"description": "Store conversations with semantic search and summarization",
"configuration": {
"embedding_model_type": "TEXT_EMBEDDING",
"embedding_model_id": "{{embedding_model_id}}",
"embedding_dimension": 1024,
"llm_id": "{{llm_id}}",
"index_prefix": "my_custom_prefix",
"use_system_index": false,
"strategies": [
{
"type": "SEMANTIC",
"namespace": ["agent_id"],
"configuration": {
"llm_result_path": "$.output.message.content[0].text"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All of these three strategies shows llm_result_path example.
Let's also show the system_prompt and llm_id example?

}
},
{
"type": "USER_PREFERENCE",
"namespace": ["agent_id"],
"configuration": {
"llm_result_path": "$.output.message.content[0].text"
}
},
{
"type": "SUMMARY",
"namespace": ["agent_id"],
"configuration": {
"llm_result_path": "$.output.message.content[0].text"
}
}
],
"parameters": {
"llm_result_path": "$.output.message.content[0].text"
}
}
}
```
{% include copy-curl.html %}
Expand Down
Loading
Loading