diff --git a/.chloggen/gen-ai-memory-ops.yaml b/.chloggen/gen-ai-memory-ops.yaml
new file mode 100644
index 0000000000..c31bb4e10a
--- /dev/null
+++ b/.chloggen/gen-ai-memory-ops.yaml
@@ -0,0 +1,23 @@
+# Use this changelog template to create an entry for release notes.
+#
+# If your change doesn't affect end users you should instead start
+# your pull request title with [chore] or use the "Skip Changelog" label.
+
+# One of 'breaking', 'deprecation', 'new_component', 'enhancement', 'bug_fix'
+change_type: enhancement
+
+# The name of the area of concern in the attributes-registry, (e.g. http, cloud, db)
+component: gen-ai
+
+# A brief description of the change. Surround your text with quotes ("") if it needs to start with a backtick (`).
+note: Add semantic conventions for GenAI memory operations.
+
+# Mandatory: One or more tracking issues related to the change. You can use the PR number here if no issue exists.
+# The values here must be integers.
+issues: [3250]
+
+# (Optional) One or more lines of additional information to render under the primary note.
+# These lines will be padded with 2 spaces and then inserted directly into the document.
+# Use pipe (|) for multiline entries.
+subtext: |
+ Adds `gen_ai.operation.name` values for memory operations and introduces `gen_ai.memory.*` attributes and spans for memory store lifecycle, search, upsert, and delete.
diff --git a/docs/gen-ai/anthropic.md b/docs/gen-ai/anthropic.md
index 1083e874ba..2182469617 100644
--- a/docs/gen-ai/anthropic.md
+++ b/docs/gen-ai/anthropic.md
@@ -213,13 +213,17 @@ populating this attribute.
| --- | --- | --- |
| `chat` | Chat completion operation such as [OpenAI Chat API](https://platform.openai.com/docs/api-reference/chat) |  |
| `create_agent` | Create GenAI agent |  |
+| `create_memory_store` | Create/initialize a memory store |  |
+| `delete_memory` | Delete memory items |  |
+| `delete_memory_store` | Delete/deprovision a memory store |  |
| `embeddings` | Embeddings operation such as [OpenAI Create embeddings API](https://platform.openai.com/docs/api-reference/embeddings/create) |  |
| `execute_tool` | Execute a tool |  |
| `generate_content` | Multimodal content generation operation such as [Gemini Generate Content](https://ai.google.dev/api/generate-content) |  |
| `invoke_agent` | Invoke GenAI agent |  |
-| `invoke_workflow` | Invoke GenAI workflow |  |
| `retrieval` | Retrieval operation such as [OpenAI Search Vector Store API](https://platform.openai.com/docs/api-reference/vector-stores/search) |  |
+| `search_memory` | Search/query memories from a memory store |  |
| `text_completion` | Text completions operation such as [OpenAI Completions API (Legacy)](https://platform.openai.com/docs/api-reference/completions) |  |
+| `update_memory` | Create or update (upsert) memory items |  |
---
diff --git a/docs/gen-ai/aws-bedrock.md b/docs/gen-ai/aws-bedrock.md
index 6abb4a0830..435c09c29b 100644
--- a/docs/gen-ai/aws-bedrock.md
+++ b/docs/gen-ai/aws-bedrock.md
@@ -237,13 +237,17 @@ and SHOULD be provided **at span creation time** (if provided at all):
| --- | --- | --- |
| `chat` | Chat completion operation such as [OpenAI Chat API](https://platform.openai.com/docs/api-reference/chat) |  |
| `create_agent` | Create GenAI agent |  |
+| `create_memory_store` | Create/initialize a memory store |  |
+| `delete_memory` | Delete memory items |  |
+| `delete_memory_store` | Delete/deprovision a memory store |  |
| `embeddings` | Embeddings operation such as [OpenAI Create embeddings API](https://platform.openai.com/docs/api-reference/embeddings/create) |  |
| `execute_tool` | Execute a tool |  |
| `generate_content` | Multimodal content generation operation such as [Gemini Generate Content](https://ai.google.dev/api/generate-content) |  |
| `invoke_agent` | Invoke GenAI agent |  |
-| `invoke_workflow` | Invoke GenAI workflow |  |
| `retrieval` | Retrieval operation such as [OpenAI Search Vector Store API](https://platform.openai.com/docs/api-reference/vector-stores/search) |  |
+| `search_memory` | Search/query memories from a memory store |  |
| `text_completion` | Text completions operation such as [OpenAI Completions API (Legacy)](https://platform.openai.com/docs/api-reference/completions) |  |
+| `update_memory` | Create or update (upsert) memory items |  |
---
diff --git a/docs/gen-ai/azure-ai-inference.md b/docs/gen-ai/azure-ai-inference.md
index f7abfcce7a..e19fe564e6 100644
--- a/docs/gen-ai/azure-ai-inference.md
+++ b/docs/gen-ai/azure-ai-inference.md
@@ -238,13 +238,17 @@ and SHOULD be provided **at span creation time** (if provided at all):
| --- | --- | --- |
| `chat` | Chat completion operation such as [OpenAI Chat API](https://platform.openai.com/docs/api-reference/chat) |  |
| `create_agent` | Create GenAI agent |  |
+| `create_memory_store` | Create/initialize a memory store |  |
+| `delete_memory` | Delete memory items |  |
+| `delete_memory_store` | Delete/deprovision a memory store |  |
| `embeddings` | Embeddings operation such as [OpenAI Create embeddings API](https://platform.openai.com/docs/api-reference/embeddings/create) |  |
| `execute_tool` | Execute a tool |  |
| `generate_content` | Multimodal content generation operation such as [Gemini Generate Content](https://ai.google.dev/api/generate-content) |  |
| `invoke_agent` | Invoke GenAI agent |  |
-| `invoke_workflow` | Invoke GenAI workflow |  |
| `retrieval` | Retrieval operation such as [OpenAI Search Vector Store API](https://platform.openai.com/docs/api-reference/vector-stores/search) |  |
+| `search_memory` | Search/query memories from a memory store |  |
| `text_completion` | Text completions operation such as [OpenAI Completions API (Legacy)](https://platform.openai.com/docs/api-reference/completions) |  |
+| `update_memory` | Create or update (upsert) memory items |  |
---
diff --git a/docs/gen-ai/gen-ai-agent-spans.md b/docs/gen-ai/gen-ai-agent-spans.md
index f235d084c2..a9379ed720 100644
--- a/docs/gen-ai/gen-ai-agent-spans.md
+++ b/docs/gen-ai/gen-ai-agent-spans.md
@@ -139,13 +139,17 @@ and SHOULD be provided **at span creation time** (if provided at all):
| --- | --- | --- |
| `chat` | Chat completion operation such as [OpenAI Chat API](https://platform.openai.com/docs/api-reference/chat) |  |
| `create_agent` | Create GenAI agent |  |
+| `create_memory_store` | Create/initialize a memory store |  |
+| `delete_memory` | Delete memory items |  |
+| `delete_memory_store` | Delete/deprovision a memory store |  |
| `embeddings` | Embeddings operation such as [OpenAI Create embeddings API](https://platform.openai.com/docs/api-reference/embeddings/create) |  |
| `execute_tool` | Execute a tool |  |
| `generate_content` | Multimodal content generation operation such as [Gemini Generate Content](https://ai.google.dev/api/generate-content) |  |
| `invoke_agent` | Invoke GenAI agent |  |
-| `invoke_workflow` | Invoke GenAI workflow |  |
| `retrieval` | Retrieval operation such as [OpenAI Search Vector Store API](https://platform.openai.com/docs/api-reference/vector-stores/search) |  |
+| `search_memory` | Search/query memories from a memory store |  |
| `text_completion` | Text completions operation such as [OpenAI Completions API (Legacy)](https://platform.openai.com/docs/api-reference/completions) |  |
+| `update_memory` | Create or update (upsert) memory items |  |
---
@@ -400,13 +404,17 @@ and SHOULD be provided **at span creation time** (if provided at all):
| --- | --- | --- |
| `chat` | Chat completion operation such as [OpenAI Chat API](https://platform.openai.com/docs/api-reference/chat) |  |
| `create_agent` | Create GenAI agent |  |
+| `create_memory_store` | Create/initialize a memory store |  |
+| `delete_memory` | Delete memory items |  |
+| `delete_memory_store` | Delete/deprovision a memory store |  |
| `embeddings` | Embeddings operation such as [OpenAI Create embeddings API](https://platform.openai.com/docs/api-reference/embeddings/create) |  |
| `execute_tool` | Execute a tool |  |
| `generate_content` | Multimodal content generation operation such as [Gemini Generate Content](https://ai.google.dev/api/generate-content) |  |
| `invoke_agent` | Invoke GenAI agent |  |
-| `invoke_workflow` | Invoke GenAI workflow |  |
| `retrieval` | Retrieval operation such as [OpenAI Search Vector Store API](https://platform.openai.com/docs/api-reference/vector-stores/search) |  |
+| `search_memory` | Search/query memories from a memory store |  |
| `text_completion` | Text completions operation such as [OpenAI Completions API (Legacy)](https://platform.openai.com/docs/api-reference/completions) |  |
+| `update_memory` | Create or update (upsert) memory items |  |
---
@@ -552,13 +560,17 @@ and SHOULD be provided **at span creation time** (if provided at all):
| --- | --- | --- |
| `chat` | Chat completion operation such as [OpenAI Chat API](https://platform.openai.com/docs/api-reference/chat) |  |
| `create_agent` | Create GenAI agent |  |
+| `create_memory_store` | Create/initialize a memory store |  |
+| `delete_memory` | Delete memory items |  |
+| `delete_memory_store` | Delete/deprovision a memory store |  |
| `embeddings` | Embeddings operation such as [OpenAI Create embeddings API](https://platform.openai.com/docs/api-reference/embeddings/create) |  |
| `execute_tool` | Execute a tool |  |
| `generate_content` | Multimodal content generation operation such as [Gemini Generate Content](https://ai.google.dev/api/generate-content) |  |
| `invoke_agent` | Invoke GenAI agent |  |
-| `invoke_workflow` | Invoke GenAI workflow |  |
| `retrieval` | Retrieval operation such as [OpenAI Search Vector Store API](https://platform.openai.com/docs/api-reference/vector-stores/search) |  |
+| `search_memory` | Search/query memories from a memory store |  |
| `text_completion` | Text completions operation such as [OpenAI Completions API (Legacy)](https://platform.openai.com/docs/api-reference/completions) |  |
+| `update_memory` | Create or update (upsert) memory items |  |
diff --git a/docs/gen-ai/gen-ai-events.md b/docs/gen-ai/gen-ai-events.md
index bb2c5c7cc1..ac57508613 100644
--- a/docs/gen-ai/gen-ai-events.md
+++ b/docs/gen-ai/gen-ai-events.md
@@ -209,13 +209,17 @@ populating this attribute.
| --- | --- | --- |
| `chat` | Chat completion operation such as [OpenAI Chat API](https://platform.openai.com/docs/api-reference/chat) |  |
| `create_agent` | Create GenAI agent |  |
+| `create_memory_store` | Create/initialize a memory store |  |
+| `delete_memory` | Delete memory items |  |
+| `delete_memory_store` | Delete/deprovision a memory store |  |
| `embeddings` | Embeddings operation such as [OpenAI Create embeddings API](https://platform.openai.com/docs/api-reference/embeddings/create) |  |
| `execute_tool` | Execute a tool |  |
| `generate_content` | Multimodal content generation operation such as [Gemini Generate Content](https://ai.google.dev/api/generate-content) |  |
| `invoke_agent` | Invoke GenAI agent |  |
-| `invoke_workflow` | Invoke GenAI workflow |  |
| `retrieval` | Retrieval operation such as [OpenAI Search Vector Store API](https://platform.openai.com/docs/api-reference/vector-stores/search) |  |
+| `search_memory` | Search/query memories from a memory store |  |
| `text_completion` | Text completions operation such as [OpenAI Completions API (Legacy)](https://platform.openai.com/docs/api-reference/completions) |  |
+| `update_memory` | Create or update (upsert) memory items |  |
---
diff --git a/docs/gen-ai/gen-ai-metrics.md b/docs/gen-ai/gen-ai-metrics.md
index 706259dabb..e354262769 100644
--- a/docs/gen-ai/gen-ai-metrics.md
+++ b/docs/gen-ai/gen-ai-metrics.md
@@ -123,13 +123,17 @@ applicable `aws.bedrock.*` attributes and are not expected to include
| --- | --- | --- |
| `chat` | Chat completion operation such as [OpenAI Chat API](https://platform.openai.com/docs/api-reference/chat) |  |
| `create_agent` | Create GenAI agent |  |
+| `create_memory_store` | Create/initialize a memory store |  |
+| `delete_memory` | Delete memory items |  |
+| `delete_memory_store` | Delete/deprovision a memory store |  |
| `embeddings` | Embeddings operation such as [OpenAI Create embeddings API](https://platform.openai.com/docs/api-reference/embeddings/create) |  |
| `execute_tool` | Execute a tool |  |
| `generate_content` | Multimodal content generation operation such as [Gemini Generate Content](https://ai.google.dev/api/generate-content) |  |
| `invoke_agent` | Invoke GenAI agent |  |
-| `invoke_workflow` | Invoke GenAI workflow |  |
| `retrieval` | Retrieval operation such as [OpenAI Search Vector Store API](https://platform.openai.com/docs/api-reference/vector-stores/search) |  |
+| `search_memory` | Search/query memories from a memory store |  |
| `text_completion` | Text completions operation such as [OpenAI Completions API (Legacy)](https://platform.openai.com/docs/api-reference/completions) |  |
+| `update_memory` | Create or update (upsert) memory items |  |
---
@@ -244,13 +248,17 @@ Instrumentations SHOULD document the list of errors they report.
| --- | --- | --- |
| `chat` | Chat completion operation such as [OpenAI Chat API](https://platform.openai.com/docs/api-reference/chat) |  |
| `create_agent` | Create GenAI agent |  |
+| `create_memory_store` | Create/initialize a memory store |  |
+| `delete_memory` | Delete memory items |  |
+| `delete_memory_store` | Delete/deprovision a memory store |  |
| `embeddings` | Embeddings operation such as [OpenAI Create embeddings API](https://platform.openai.com/docs/api-reference/embeddings/create) |  |
| `execute_tool` | Execute a tool |  |
| `generate_content` | Multimodal content generation operation such as [Gemini Generate Content](https://ai.google.dev/api/generate-content) |  |
| `invoke_agent` | Invoke GenAI agent |  |
-| `invoke_workflow` | Invoke GenAI workflow |  |
| `retrieval` | Retrieval operation such as [OpenAI Search Vector Store API](https://platform.openai.com/docs/api-reference/vector-stores/search) |  |
+| `search_memory` | Search/query memories from a memory store |  |
| `text_completion` | Text completions operation such as [OpenAI Completions API (Legacy)](https://platform.openai.com/docs/api-reference/completions) |  |
+| `update_memory` | Create or update (upsert) memory items |  |
---
@@ -345,13 +353,17 @@ applicable `aws.bedrock.*` attributes and are not expected to include
| --- | --- | --- |
| `chat` | Chat completion operation such as [OpenAI Chat API](https://platform.openai.com/docs/api-reference/chat) |  |
| `create_agent` | Create GenAI agent |  |
+| `create_memory_store` | Create/initialize a memory store |  |
+| `delete_memory` | Delete memory items |  |
+| `delete_memory_store` | Delete/deprovision a memory store |  |
| `embeddings` | Embeddings operation such as [OpenAI Create embeddings API](https://platform.openai.com/docs/api-reference/embeddings/create) |  |
| `execute_tool` | Execute a tool |  |
| `generate_content` | Multimodal content generation operation such as [Gemini Generate Content](https://ai.google.dev/api/generate-content) |  |
| `invoke_agent` | Invoke GenAI agent |  |
-| `invoke_workflow` | Invoke GenAI workflow |  |
| `retrieval` | Retrieval operation such as [OpenAI Search Vector Store API](https://platform.openai.com/docs/api-reference/vector-stores/search) |  |
+| `search_memory` | Search/query memories from a memory store |  |
| `text_completion` | Text completions operation such as [OpenAI Completions API (Legacy)](https://platform.openai.com/docs/api-reference/completions) |  |
+| `update_memory` | Create or update (upsert) memory items |  |
---
@@ -446,13 +458,17 @@ applicable `aws.bedrock.*` attributes and are not expected to include
| --- | --- | --- |
| `chat` | Chat completion operation such as [OpenAI Chat API](https://platform.openai.com/docs/api-reference/chat) |  |
| `create_agent` | Create GenAI agent |  |
+| `create_memory_store` | Create/initialize a memory store |  |
+| `delete_memory` | Delete memory items |  |
+| `delete_memory_store` | Delete/deprovision a memory store |  |
| `embeddings` | Embeddings operation such as [OpenAI Create embeddings API](https://platform.openai.com/docs/api-reference/embeddings/create) |  |
| `execute_tool` | Execute a tool |  |
| `generate_content` | Multimodal content generation operation such as [Gemini Generate Content](https://ai.google.dev/api/generate-content) |  |
| `invoke_agent` | Invoke GenAI agent |  |
-| `invoke_workflow` | Invoke GenAI workflow |  |
| `retrieval` | Retrieval operation such as [OpenAI Search Vector Store API](https://platform.openai.com/docs/api-reference/vector-stores/search) |  |
+| `search_memory` | Search/query memories from a memory store |  |
| `text_completion` | Text completions operation such as [OpenAI Completions API (Legacy)](https://platform.openai.com/docs/api-reference/completions) |  |
+| `update_memory` | Create or update (upsert) memory items |  |
---
@@ -565,13 +581,17 @@ Instrumentations SHOULD document the list of errors they report.
| --- | --- | --- |
| `chat` | Chat completion operation such as [OpenAI Chat API](https://platform.openai.com/docs/api-reference/chat) |  |
| `create_agent` | Create GenAI agent |  |
+| `create_memory_store` | Create/initialize a memory store |  |
+| `delete_memory` | Delete memory items |  |
+| `delete_memory_store` | Delete/deprovision a memory store |  |
| `embeddings` | Embeddings operation such as [OpenAI Create embeddings API](https://platform.openai.com/docs/api-reference/embeddings/create) |  |
| `execute_tool` | Execute a tool |  |
| `generate_content` | Multimodal content generation operation such as [Gemini Generate Content](https://ai.google.dev/api/generate-content) |  |
| `invoke_agent` | Invoke GenAI agent |  |
-| `invoke_workflow` | Invoke GenAI workflow |  |
| `retrieval` | Retrieval operation such as [OpenAI Search Vector Store API](https://platform.openai.com/docs/api-reference/vector-stores/search) |  |
+| `search_memory` | Search/query memories from a memory store |  |
| `text_completion` | Text completions operation such as [OpenAI Completions API (Legacy)](https://platform.openai.com/docs/api-reference/completions) |  |
+| `update_memory` | Create or update (upsert) memory items |  |
---
@@ -671,13 +691,17 @@ applicable `aws.bedrock.*` attributes and are not expected to include
| --- | --- | --- |
| `chat` | Chat completion operation such as [OpenAI Chat API](https://platform.openai.com/docs/api-reference/chat) |  |
| `create_agent` | Create GenAI agent |  |
+| `create_memory_store` | Create/initialize a memory store |  |
+| `delete_memory` | Delete memory items |  |
+| `delete_memory_store` | Delete/deprovision a memory store |  |
| `embeddings` | Embeddings operation such as [OpenAI Create embeddings API](https://platform.openai.com/docs/api-reference/embeddings/create) |  |
| `execute_tool` | Execute a tool |  |
| `generate_content` | Multimodal content generation operation such as [Gemini Generate Content](https://ai.google.dev/api/generate-content) |  |
| `invoke_agent` | Invoke GenAI agent |  |
-| `invoke_workflow` | Invoke GenAI workflow |  |
| `retrieval` | Retrieval operation such as [OpenAI Search Vector Store API](https://platform.openai.com/docs/api-reference/vector-stores/search) |  |
+| `search_memory` | Search/query memories from a memory store |  |
| `text_completion` | Text completions operation such as [OpenAI Completions API (Legacy)](https://platform.openai.com/docs/api-reference/completions) |  |
+| `update_memory` | Create or update (upsert) memory items |  |
---
@@ -776,13 +800,17 @@ applicable `aws.bedrock.*` attributes and are not expected to include
| --- | --- | --- |
| `chat` | Chat completion operation such as [OpenAI Chat API](https://platform.openai.com/docs/api-reference/chat) |  |
| `create_agent` | Create GenAI agent |  |
+| `create_memory_store` | Create/initialize a memory store |  |
+| `delete_memory` | Delete memory items |  |
+| `delete_memory_store` | Delete/deprovision a memory store |  |
| `embeddings` | Embeddings operation such as [OpenAI Create embeddings API](https://platform.openai.com/docs/api-reference/embeddings/create) |  |
| `execute_tool` | Execute a tool |  |
| `generate_content` | Multimodal content generation operation such as [Gemini Generate Content](https://ai.google.dev/api/generate-content) |  |
| `invoke_agent` | Invoke GenAI agent |  |
-| `invoke_workflow` | Invoke GenAI workflow |  |
| `retrieval` | Retrieval operation such as [OpenAI Search Vector Store API](https://platform.openai.com/docs/api-reference/vector-stores/search) |  |
+| `search_memory` | Search/query memories from a memory store |  |
| `text_completion` | Text completions operation such as [OpenAI Completions API (Legacy)](https://platform.openai.com/docs/api-reference/completions) |  |
+| `update_memory` | Create or update (upsert) memory items |  |
---
diff --git a/docs/gen-ai/gen-ai-spans.md b/docs/gen-ai/gen-ai-spans.md
index fa67bd82a6..39b0393e81 100644
--- a/docs/gen-ai/gen-ai-spans.md
+++ b/docs/gen-ai/gen-ai-spans.md
@@ -13,6 +13,12 @@ linkTitle: Spans
- [Embeddings](#embeddings)
- [Retrievals](#retrievals)
- [Execute tool span](#execute-tool-span)
+ - [Memory Operations](#memory-operations)
+ - [Create Memory Store](#create-memory-store)
+ - [Search Memory](#search-memory)
+ - [Update Memory](#update-memory)
+ - [Delete Memory](#delete-memory)
+ - [Delete Memory Store](#delete-memory-store)
- [Capturing instructions, inputs, and outputs](#capturing-instructions-inputs-and-outputs)
- [Full (buffered) content](#full-buffered-content)
- [Recording content on attributes](#recording-content-on-attributes)
@@ -251,13 +257,17 @@ and SHOULD be provided **at span creation time** (if provided at all):
| --- | --- | --- |
| `chat` | Chat completion operation such as [OpenAI Chat API](https://platform.openai.com/docs/api-reference/chat) |  |
| `create_agent` | Create GenAI agent |  |
+| `create_memory_store` | Create/initialize a memory store |  |
+| `delete_memory` | Delete memory items |  |
+| `delete_memory_store` | Delete/deprovision a memory store |  |
| `embeddings` | Embeddings operation such as [OpenAI Create embeddings API](https://platform.openai.com/docs/api-reference/embeddings/create) |  |
| `execute_tool` | Execute a tool |  |
| `generate_content` | Multimodal content generation operation such as [Gemini Generate Content](https://ai.google.dev/api/generate-content) |  |
| `invoke_agent` | Invoke GenAI agent |  |
-| `invoke_workflow` | Invoke GenAI workflow |  |
| `retrieval` | Retrieval operation such as [OpenAI Search Vector Store API](https://platform.openai.com/docs/api-reference/vector-stores/search) |  |
+| `search_memory` | Search/query memories from a memory store |  |
| `text_completion` | Text completions operation such as [OpenAI Completions API (Legacy)](https://platform.openai.com/docs/api-reference/completions) |  |
+| `update_memory` | Create or update (upsert) memory items |  |
---
@@ -397,13 +407,17 @@ and SHOULD be provided **at span creation time** (if provided at all):
| --- | --- | --- |
| `chat` | Chat completion operation such as [OpenAI Chat API](https://platform.openai.com/docs/api-reference/chat) |  |
| `create_agent` | Create GenAI agent |  |
+| `create_memory_store` | Create/initialize a memory store |  |
+| `delete_memory` | Delete memory items |  |
+| `delete_memory_store` | Delete/deprovision a memory store |  |
| `embeddings` | Embeddings operation such as [OpenAI Create embeddings API](https://platform.openai.com/docs/api-reference/embeddings/create) |  |
| `execute_tool` | Execute a tool |  |
| `generate_content` | Multimodal content generation operation such as [Gemini Generate Content](https://ai.google.dev/api/generate-content) |  |
| `invoke_agent` | Invoke GenAI agent |  |
-| `invoke_workflow` | Invoke GenAI workflow |  |
| `retrieval` | Retrieval operation such as [OpenAI Search Vector Store API](https://platform.openai.com/docs/api-reference/vector-stores/search) |  |
+| `search_memory` | Search/query memories from a memory store |  |
| `text_completion` | Text completions operation such as [OpenAI Completions API (Legacy)](https://platform.openai.com/docs/api-reference/completions) |  |
+| `update_memory` | Create or update (upsert) memory items |  |
---
@@ -531,13 +545,17 @@ Each document object SHOULD contain at least the following properties:
| --- | --- | --- |
| `chat` | Chat completion operation such as [OpenAI Chat API](https://platform.openai.com/docs/api-reference/chat) |  |
| `create_agent` | Create GenAI agent |  |
+| `create_memory_store` | Create/initialize a memory store |  |
+| `delete_memory` | Delete memory items |  |
+| `delete_memory_store` | Delete/deprovision a memory store |  |
| `embeddings` | Embeddings operation such as [OpenAI Create embeddings API](https://platform.openai.com/docs/api-reference/embeddings/create) |  |
| `execute_tool` | Execute a tool |  |
| `generate_content` | Multimodal content generation operation such as [Gemini Generate Content](https://ai.google.dev/api/generate-content) |  |
| `invoke_agent` | Invoke GenAI agent |  |
-| `invoke_workflow` | Invoke GenAI workflow |  |
| `retrieval` | Retrieval operation such as [OpenAI Search Vector Store API](https://platform.openai.com/docs/api-reference/vector-stores/search) |  |
+| `search_memory` | Search/query memories from a memory store |  |
| `text_completion` | Text completions operation such as [OpenAI Completions API (Legacy)](https://platform.openai.com/docs/api-reference/completions) |  |
+| `update_memory` | Create or update (upsert) memory items |  |
---
@@ -664,13 +682,694 @@ and SHOULD be provided **at span creation time** (if provided at all):
| --- | --- | --- |
| `chat` | Chat completion operation such as [OpenAI Chat API](https://platform.openai.com/docs/api-reference/chat) |  |
| `create_agent` | Create GenAI agent |  |
+| `create_memory_store` | Create/initialize a memory store |  |
+| `delete_memory` | Delete memory items |  |
+| `delete_memory_store` | Delete/deprovision a memory store |  |
| `embeddings` | Embeddings operation such as [OpenAI Create embeddings API](https://platform.openai.com/docs/api-reference/embeddings/create) |  |
| `execute_tool` | Execute a tool |  |
| `generate_content` | Multimodal content generation operation such as [Gemini Generate Content](https://ai.google.dev/api/generate-content) |  |
| `invoke_agent` | Invoke GenAI agent |  |
-| `invoke_workflow` | Invoke GenAI workflow |  |
| `retrieval` | Retrieval operation such as [OpenAI Search Vector Store API](https://platform.openai.com/docs/api-reference/vector-stores/search) |  |
+| `search_memory` | Search/query memories from a memory store |  |
| `text_completion` | Text completions operation such as [OpenAI Completions API (Legacy)](https://platform.openai.com/docs/api-reference/completions) |  |
+| `update_memory` | Create or update (upsert) memory items |  |
+
+
+
+
+
+### Memory Operations
+
+#### Create Memory Store
+
+
+
+
+
+
+**Status:** 
+
+Describes creation/initialization of a memory store.
+
+The `gen_ai.operation.name` SHOULD be `create_memory_store`.
+
+**Span name** SHOULD be `create_memory_store {gen_ai.memory.store.id}`
+or `create_memory_store` if store id is not available.
+
+**Span kind** SHOULD be `CLIENT`.
+
+**Span status** SHOULD follow the [Recording Errors](/docs/general/recording-errors.md) document.
+
+**Attributes:**
+
+| Key | Stability | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Value Type | Description | Example Values |
+| --- | --- | --- | --- | --- | --- |
+| [`gen_ai.operation.name`](/docs/registry/attributes/gen-ai.md) |  | `Required` | string | The name of the operation being performed. [1] | `chat`; `generate_content`; `text_completion` |
+| [`gen_ai.provider.name`](/docs/registry/attributes/gen-ai.md) |  | `Required` | string | The Generative AI provider as identified by the client or server instrumentation. [2] | `openai`; `gcp.gen_ai`; `gcp.vertex_ai` |
+| [`error.type`](/docs/registry/attributes/error.md) |  | `Conditionally Required` if the operation ended in an error | string | Describes a class of error the operation ended with. [3] | `timeout`; `java.net.UnknownHostException`; `server_certificate_invalid`; `500` |
+| [`gen_ai.memory.store.id`](/docs/registry/attributes/gen-ai.md) |  | `Conditionally Required` when returned by the operation | string | The unique identifier of the memory store. | `ms_abc123`; `user-preferences-store` |
+| [`server.port`](/docs/registry/attributes/server.md) |  | `Conditionally Required` If `server.address` is set. | int | GenAI server port. [4] | `80`; `8080`; `443` |
+| [`gen_ai.memory.scope`](/docs/registry/attributes/gen-ai.md) |  | `Recommended` | string | The scope of the memory store or memory operation. [5] | `user`; `conversation`; `agent` |
+| [`server.address`](/docs/registry/attributes/server.md) |  | `Recommended` | string | GenAI server address. [6] | `example.com`; `10.1.2.80`; `/tmp/my.sock` |
+| [`gen_ai.memory.store.name`](/docs/registry/attributes/gen-ai.md) |  | `Opt-In` | string | Human-readable name of the memory store. [7] | `Customer Support Memory`; `Shopping Preferences` |
+
+**[1] `gen_ai.operation.name`:** If one of the predefined values applies, but specific system uses a different name it's RECOMMENDED to document it in the semantic conventions for specific GenAI system and use system-specific name in the instrumentation. If a different name is not documented, instrumentation libraries SHOULD use applicable predefined value.
+
+**[2] `gen_ai.provider.name`:** The attribute SHOULD be set based on the instrumentation's best
+knowledge and may differ from the actual model provider.
+
+Multiple providers, including Azure OpenAI, Gemini, and AI hosting platforms
+are accessible using the OpenAI REST API and corresponding client libraries,
+but may proxy or host models from different providers.
+
+The `gen_ai.request.model`, `gen_ai.response.model`, and `server.address`
+attributes may help identify the actual system in use.
+
+The `gen_ai.provider.name` attribute acts as a discriminator that
+identifies the GenAI telemetry format flavor specific to that provider
+within GenAI semantic conventions.
+It SHOULD be set consistently with provider-specific attributes and signals.
+For example, GenAI spans, metrics, and events related to AWS Bedrock
+should have the `gen_ai.provider.name` set to `aws.bedrock` and include
+applicable `aws.bedrock.*` attributes and are not expected to include
+`openai.*` attributes.
+
+**[3] `error.type`:** The `error.type` SHOULD match the error code returned by the memory provider,
+the canonical name of exception that occurred, or another low-cardinality error identifier.
+Instrumentations SHOULD document the list of errors they report.
+
+**[4] `server.port`:** When observed from the client side, and when communicating through an intermediary, `server.port` SHOULD represent the server port behind any intermediaries, for example proxies, if it's available.
+
+**[5] `gen_ai.memory.scope`:** Memory scope defines the isolation and sharing boundaries. Scopes determine who can access the memory.
+
+**[6] `server.address`:** When observed from the client side, and when communicating through an intermediary, `server.address` SHOULD represent the server address behind any intermediaries, for example proxies, if it's available.
+
+**[7] `gen_ai.memory.store.name`:** Use this when the store has a separate human-readable name distinct from its machine-generated ID. For frameworks where the name IS the identifier (e.g., Azure AI Foundry), use `gen_ai.memory.store.id` instead.
+
+---
+
+`error.type` has the following list of well-known values. If one of them applies, then the respective value MUST be used; otherwise, a custom value MAY be used.
+
+| Value | Description | Stability |
+| --- | --- | --- |
+| `_OTHER` | A fallback error value to be used when the instrumentation doesn't define a custom value. |  |
+
+---
+
+`gen_ai.memory.scope` has the following list of well-known values. If one of them applies, then the respective value MUST be used; otherwise, a custom value MAY be used.
+
+| Value | Description | Stability |
+| --- | --- | --- |
+| `agent` | Scoped to a specific agent. Agent-specific knowledge. |  |
+| `conversation` | Scoped to a conversation/thread. Context within a single conversation. |  |
+| `team` | Shared across a team of agents. Multi-agent collaboration. |  |
+| `user` | Scoped to a specific user. Persists across all conversations with a user. |  |
+
+---
+
+`gen_ai.operation.name` has the following list of well-known values. If one of them applies, then the respective value MUST be used; otherwise, a custom value MAY be used.
+
+| Value | Description | Stability |
+| --- | --- | --- |
+| `chat` | Chat completion operation such as [OpenAI Chat API](https://platform.openai.com/docs/api-reference/chat) |  |
+| `create_agent` | Create GenAI agent |  |
+| `create_memory_store` | Create/initialize a memory store |  |
+| `delete_memory` | Delete memory items |  |
+| `delete_memory_store` | Delete/deprovision a memory store |  |
+| `embeddings` | Embeddings operation such as [OpenAI Create embeddings API](https://platform.openai.com/docs/api-reference/embeddings/create) |  |
+| `execute_tool` | Execute a tool |  |
+| `generate_content` | Multimodal content generation operation such as [Gemini Generate Content](https://ai.google.dev/api/generate-content) |  |
+| `invoke_agent` | Invoke GenAI agent |  |
+| `retrieval` | Retrieval operation such as [OpenAI Search Vector Store API](https://platform.openai.com/docs/api-reference/vector-stores/search) |  |
+| `search_memory` | Search/query memories from a memory store |  |
+| `text_completion` | Text completions operation such as [OpenAI Completions API (Legacy)](https://platform.openai.com/docs/api-reference/completions) |  |
+| `update_memory` | Create or update (upsert) memory items |  |
+
+---
+
+`gen_ai.provider.name` has the following list of well-known values. If one of them applies, then the respective value MUST be used; otherwise, a custom value MAY be used.
+
+| Value | Description | Stability |
+| --- | --- | --- |
+| `anthropic` | [Anthropic](https://www.anthropic.com/) |  |
+| `aws.bedrock` | [AWS Bedrock](https://aws.amazon.com/bedrock) |  |
+| `azure.ai.inference` | Azure AI Inference |  |
+| `azure.ai.openai` | [Azure OpenAI](https://azure.microsoft.com/products/ai-services/openai-service/) |  |
+| `cohere` | [Cohere](https://cohere.com/) |  |
+| `deepseek` | [DeepSeek](https://www.deepseek.com/) |  |
+| `gcp.gemini` | [Gemini](https://cloud.google.com/products/gemini) [8] |  |
+| `gcp.gen_ai` | Any Google generative AI endpoint [9] |  |
+| `gcp.vertex_ai` | [Vertex AI](https://cloud.google.com/vertex-ai) [10] |  |
+| `groq` | [Groq](https://groq.com/) |  |
+| `ibm.watsonx.ai` | [IBM Watsonx AI](https://www.ibm.com/products/watsonx-ai) |  |
+| `mistral_ai` | [Mistral AI](https://mistral.ai/) |  |
+| `openai` | [OpenAI](https://openai.com/) |  |
+| `perplexity` | [Perplexity](https://www.perplexity.ai/) |  |
+| `x_ai` | [xAI](https://x.ai/) |  |
+
+**[8]:** Used when accessing the 'generativelanguage.googleapis.com' endpoint. Also known as the AI Studio API.
+
+**[9]:** May be used when specific backend is unknown.
+
+**[10]:** Used when accessing the 'aiplatform.googleapis.com' endpoint.
+
+
+
+
+
+#### Search Memory
+
+
+
+
+
+
+**Status:** 
+
+Describes a memory search/retrieval operation - querying a memory store for relevant memories.
+
+The `gen_ai.operation.name` SHOULD be `search_memory`.
+
+**Span name** SHOULD be `search_memory {gen_ai.memory.store.id}`
+or `search_memory` if store id is not available.
+
+**Span kind** SHOULD be `CLIENT`.
+
+**Span status** SHOULD follow the [Recording Errors](/docs/general/recording-errors.md) document.
+
+**Attributes:**
+
+| Key | Stability | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Value Type | Description | Example Values |
+| --- | --- | --- | --- | --- | --- |
+| [`gen_ai.operation.name`](/docs/registry/attributes/gen-ai.md) |  | `Required` | string | The name of the operation being performed. [1] | `chat`; `generate_content`; `text_completion` |
+| [`gen_ai.provider.name`](/docs/registry/attributes/gen-ai.md) |  | `Required` | string | The Generative AI provider as identified by the client or server instrumentation. [2] | `openai`; `gcp.gen_ai`; `gcp.vertex_ai` |
+| [`error.type`](/docs/registry/attributes/error.md) |  | `Conditionally Required` if the operation ended in an error | string | Describes a class of error the operation ended with. [3] | `timeout`; `java.net.UnknownHostException`; `server_certificate_invalid`; `500` |
+| [`gen_ai.agent.id`](/docs/registry/attributes/gen-ai.md) |  | `Conditionally Required` when searching agent-scoped memory | string | The unique identifier of the GenAI agent. | `asst_5j66UpCpwteGg4YSxUnt7lPY` |
+| [`gen_ai.conversation.id`](/docs/registry/attributes/gen-ai.md) |  | `Conditionally Required` when searching conversation-scoped memory | string | The unique identifier for a conversation (session, thread), used to store and correlate messages within this conversation. | `conv_5j66UpCpwteGg4YSxUnt7lPY` |
+| [`gen_ai.memory.search.similarity.threshold`](/docs/registry/attributes/gen-ai.md) |  | `Conditionally Required` when similarity filtering is used | double | Minimum similarity score threshold used for memory search. | `0.7`; `0.85` |
+| [`gen_ai.memory.store.id`](/docs/registry/attributes/gen-ai.md) |  | `Conditionally Required` if applicable | string | The unique identifier of the memory store. | `ms_abc123`; `user-preferences-store` |
+| [`server.port`](/docs/registry/attributes/server.md) |  | `Conditionally Required` If `server.address` is set. | int | GenAI server port. [4] | `80`; `8080`; `443` |
+| [`server.address`](/docs/registry/attributes/server.md) |  | `Recommended` | string | GenAI server address. [5] | `example.com`; `10.1.2.80`; `/tmp/my.sock` |
+| [`gen_ai.memory.query.text`](/docs/registry/attributes/gen-ai.md) |  | `Opt-In` | string | The search query used to retrieve memories. [6] | `user dietary preferences`; `past flight bookings` |
+| [`gen_ai.memory.search.result.count`](/docs/registry/attributes/gen-ai.md) |  | `Opt-In` | int | Number of memory items returned from a search operation. | `3`; `10` |
+| [`gen_ai.memory.store.name`](/docs/registry/attributes/gen-ai.md) |  | `Opt-In` | string | Human-readable name of the memory store. [7] | `Customer Support Memory`; `Shopping Preferences` |
+
+**[1] `gen_ai.operation.name`:** If one of the predefined values applies, but specific system uses a different name it's RECOMMENDED to document it in the semantic conventions for specific GenAI system and use system-specific name in the instrumentation. If a different name is not documented, instrumentation libraries SHOULD use applicable predefined value.
+
+**[2] `gen_ai.provider.name`:** The attribute SHOULD be set based on the instrumentation's best
+knowledge and may differ from the actual model provider.
+
+Multiple providers, including Azure OpenAI, Gemini, and AI hosting platforms
+are accessible using the OpenAI REST API and corresponding client libraries,
+but may proxy or host models from different providers.
+
+The `gen_ai.request.model`, `gen_ai.response.model`, and `server.address`
+attributes may help identify the actual system in use.
+
+The `gen_ai.provider.name` attribute acts as a discriminator that
+identifies the GenAI telemetry format flavor specific to that provider
+within GenAI semantic conventions.
+It SHOULD be set consistently with provider-specific attributes and signals.
+For example, GenAI spans, metrics, and events related to AWS Bedrock
+should have the `gen_ai.provider.name` set to `aws.bedrock` and include
+applicable `aws.bedrock.*` attributes and are not expected to include
+`openai.*` attributes.
+
+**[3] `error.type`:** The `error.type` SHOULD match the error code returned by the memory provider,
+the canonical name of exception that occurred, or another low-cardinality error identifier.
+Instrumentations SHOULD document the list of errors they report.
+
+**[4] `server.port`:** When observed from the client side, and when communicating through an intermediary, `server.port` SHOULD represent the server port behind any intermediaries, for example proxies, if it's available.
+
+**[5] `server.address`:** When observed from the client side, and when communicating through an intermediary, `server.address` SHOULD represent the server address behind any intermediaries, for example proxies, if it's available.
+
+**[6] `gen_ai.memory.query.text`:**
+
+> [!WARNING]
+> This attribute may contain sensitive information.
+
+**[7] `gen_ai.memory.store.name`:** Use this when the store has a separate human-readable name distinct from its machine-generated ID. For frameworks where the name IS the identifier (e.g., Azure AI Foundry), use `gen_ai.memory.store.id` instead.
+
+---
+
+`error.type` has the following list of well-known values. If one of them applies, then the respective value MUST be used; otherwise, a custom value MAY be used.
+
+| Value | Description | Stability |
+| --- | --- | --- |
+| `_OTHER` | A fallback error value to be used when the instrumentation doesn't define a custom value. |  |
+
+---
+
+`gen_ai.operation.name` has the following list of well-known values. If one of them applies, then the respective value MUST be used; otherwise, a custom value MAY be used.
+
+| Value | Description | Stability |
+| --- | --- | --- |
+| `chat` | Chat completion operation such as [OpenAI Chat API](https://platform.openai.com/docs/api-reference/chat) |  |
+| `create_agent` | Create GenAI agent |  |
+| `create_memory_store` | Create/initialize a memory store |  |
+| `delete_memory` | Delete memory items |  |
+| `delete_memory_store` | Delete/deprovision a memory store |  |
+| `embeddings` | Embeddings operation such as [OpenAI Create embeddings API](https://platform.openai.com/docs/api-reference/embeddings/create) |  |
+| `execute_tool` | Execute a tool |  |
+| `generate_content` | Multimodal content generation operation such as [Gemini Generate Content](https://ai.google.dev/api/generate-content) |  |
+| `invoke_agent` | Invoke GenAI agent |  |
+| `retrieval` | Retrieval operation such as [OpenAI Search Vector Store API](https://platform.openai.com/docs/api-reference/vector-stores/search) |  |
+| `search_memory` | Search/query memories from a memory store |  |
+| `text_completion` | Text completions operation such as [OpenAI Completions API (Legacy)](https://platform.openai.com/docs/api-reference/completions) |  |
+| `update_memory` | Create or update (upsert) memory items |  |
+
+---
+
+`gen_ai.provider.name` has the following list of well-known values. If one of them applies, then the respective value MUST be used; otherwise, a custom value MAY be used.
+
+| Value | Description | Stability |
+| --- | --- | --- |
+| `anthropic` | [Anthropic](https://www.anthropic.com/) |  |
+| `aws.bedrock` | [AWS Bedrock](https://aws.amazon.com/bedrock) |  |
+| `azure.ai.inference` | Azure AI Inference |  |
+| `azure.ai.openai` | [Azure OpenAI](https://azure.microsoft.com/products/ai-services/openai-service/) |  |
+| `cohere` | [Cohere](https://cohere.com/) |  |
+| `deepseek` | [DeepSeek](https://www.deepseek.com/) |  |
+| `gcp.gemini` | [Gemini](https://cloud.google.com/products/gemini) [8] |  |
+| `gcp.gen_ai` | Any Google generative AI endpoint [9] |  |
+| `gcp.vertex_ai` | [Vertex AI](https://cloud.google.com/vertex-ai) [10] |  |
+| `groq` | [Groq](https://groq.com/) |  |
+| `ibm.watsonx.ai` | [IBM Watsonx AI](https://www.ibm.com/products/watsonx-ai) |  |
+| `mistral_ai` | [Mistral AI](https://mistral.ai/) |  |
+| `openai` | [OpenAI](https://openai.com/) |  |
+| `perplexity` | [Perplexity](https://www.perplexity.ai/) |  |
+| `x_ai` | [xAI](https://x.ai/) |  |
+
+**[8]:** Used when accessing the 'generativelanguage.googleapis.com' endpoint. Also known as the AI Studio API.
+
+**[9]:** May be used when specific backend is unknown.
+
+**[10]:** Used when accessing the 'aiplatform.googleapis.com' endpoint.
+
+
+
+
+
+#### Update Memory
+
+
+
+
+
+
+**Status:** 
+
+Describes a memory update operation - creating new or modifying existing memory records in a memory store.
+
+The `gen_ai.operation.name` SHOULD be `update_memory`.
+
+This operation covers both creating new and updating existing memory records.
+
+**Span name** SHOULD be `update_memory {gen_ai.memory.store.id}`
+or `update_memory` if store id is not available.
+
+**Span kind** SHOULD be `CLIENT`.
+
+**Span status** SHOULD follow the [Recording Errors](/docs/general/recording-errors.md) document.
+
+**Attributes:**
+
+| Key | Stability | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Value Type | Description | Example Values |
+| --- | --- | --- | --- | --- | --- |
+| [`gen_ai.operation.name`](/docs/registry/attributes/gen-ai.md) |  | `Required` | string | The name of the operation being performed. [1] | `chat`; `generate_content`; `text_completion` |
+| [`gen_ai.provider.name`](/docs/registry/attributes/gen-ai.md) |  | `Required` | string | The Generative AI provider as identified by the client or server instrumentation. [2] | `openai`; `gcp.gen_ai`; `gcp.vertex_ai` |
+| [`error.type`](/docs/registry/attributes/error.md) |  | `Conditionally Required` if the operation ended in an error | string | Describes a class of error the operation ended with. [3] | `timeout`; `java.net.UnknownHostException`; `server_certificate_invalid`; `500` |
+| [`gen_ai.agent.id`](/docs/registry/attributes/gen-ai.md) |  | `Conditionally Required` when operating on agent-scoped memory | string | The unique identifier of the GenAI agent. | `asst_5j66UpCpwteGg4YSxUnt7lPY` |
+| [`gen_ai.conversation.id`](/docs/registry/attributes/gen-ai.md) |  | `Conditionally Required` when operating on conversation-scoped memory | string | The unique identifier for a conversation (session, thread), used to store and correlate messages within this conversation. | `conv_5j66UpCpwteGg4YSxUnt7lPY` |
+| [`gen_ai.memory.expiration_date`](/docs/registry/attributes/gen-ai.md) |  | `Conditionally Required` if expiration is set | string | Expiration date for the memory in ISO 8601 format. | `2025-12-31`; `2026-01-15T00:00:00Z` |
+| [`gen_ai.memory.record.id`](/docs/registry/attributes/gen-ai.md) |  | `Conditionally Required` when available (provided or returned) | string | The unique identifier of a memory record. | `mem_5j66UpCpwteGg4YSxUnt7lPY` |
+| [`gen_ai.memory.store.id`](/docs/registry/attributes/gen-ai.md) |  | `Conditionally Required` if applicable | string | The unique identifier of the memory store. | `ms_abc123`; `user-preferences-store` |
+| [`server.port`](/docs/registry/attributes/server.md) |  | `Conditionally Required` If `server.address` is set. | int | GenAI server port. [4] | `80`; `8080`; `443` |
+| [`server.address`](/docs/registry/attributes/server.md) |  | `Recommended` | string | GenAI server address. [5] | `example.com`; `10.1.2.80`; `/tmp/my.sock` |
+| [`gen_ai.memory.record.content`](/docs/registry/attributes/gen-ai.md) |  | `Opt-In` | any | The content/value of the memory record. [6] | `{"preference": "dark_mode", "value": true}` |
+| [`gen_ai.memory.store.name`](/docs/registry/attributes/gen-ai.md) |  | `Opt-In` | string | Human-readable name of the memory store. [7] | `Customer Support Memory`; `Shopping Preferences` |
+
+**[1] `gen_ai.operation.name`:** If one of the predefined values applies, but specific system uses a different name it's RECOMMENDED to document it in the semantic conventions for specific GenAI system and use system-specific name in the instrumentation. If a different name is not documented, instrumentation libraries SHOULD use applicable predefined value.
+
+**[2] `gen_ai.provider.name`:** The attribute SHOULD be set based on the instrumentation's best
+knowledge and may differ from the actual model provider.
+
+Multiple providers, including Azure OpenAI, Gemini, and AI hosting platforms
+are accessible using the OpenAI REST API and corresponding client libraries,
+but may proxy or host models from different providers.
+
+The `gen_ai.request.model`, `gen_ai.response.model`, and `server.address`
+attributes may help identify the actual system in use.
+
+The `gen_ai.provider.name` attribute acts as a discriminator that
+identifies the GenAI telemetry format flavor specific to that provider
+within GenAI semantic conventions.
+It SHOULD be set consistently with provider-specific attributes and signals.
+For example, GenAI spans, metrics, and events related to AWS Bedrock
+should have the `gen_ai.provider.name` set to `aws.bedrock` and include
+applicable `aws.bedrock.*` attributes and are not expected to include
+`openai.*` attributes.
+
+**[3] `error.type`:** The `error.type` SHOULD match the error code returned by the memory provider,
+the canonical name of exception that occurred, or another low-cardinality error identifier.
+Instrumentations SHOULD document the list of errors they report.
+
+**[4] `server.port`:** When observed from the client side, and when communicating through an intermediary, `server.port` SHOULD represent the server port behind any intermediaries, for example proxies, if it's available.
+
+**[5] `server.address`:** When observed from the client side, and when communicating through an intermediary, `server.address` SHOULD represent the server address behind any intermediaries, for example proxies, if it's available.
+
+**[6] `gen_ai.memory.record.content`:**
+
+> [!WARNING]
+> This attribute may contain sensitive information including user/PII data.
+
+Instrumentations SHOULD NOT capture this by default.
+
+**[7] `gen_ai.memory.store.name`:** Use this when the store has a separate human-readable name distinct from its machine-generated ID. For frameworks where the name IS the identifier (e.g., Azure AI Foundry), use `gen_ai.memory.store.id` instead.
+
+---
+
+`error.type` has the following list of well-known values. If one of them applies, then the respective value MUST be used; otherwise, a custom value MAY be used.
+
+| Value | Description | Stability |
+| --- | --- | --- |
+| `_OTHER` | A fallback error value to be used when the instrumentation doesn't define a custom value. |  |
+
+---
+
+`gen_ai.operation.name` has the following list of well-known values. If one of them applies, then the respective value MUST be used; otherwise, a custom value MAY be used.
+
+| Value | Description | Stability |
+| --- | --- | --- |
+| `chat` | Chat completion operation such as [OpenAI Chat API](https://platform.openai.com/docs/api-reference/chat) |  |
+| `create_agent` | Create GenAI agent |  |
+| `create_memory_store` | Create/initialize a memory store |  |
+| `delete_memory` | Delete memory items |  |
+| `delete_memory_store` | Delete/deprovision a memory store |  |
+| `embeddings` | Embeddings operation such as [OpenAI Create embeddings API](https://platform.openai.com/docs/api-reference/embeddings/create) |  |
+| `execute_tool` | Execute a tool |  |
+| `generate_content` | Multimodal content generation operation such as [Gemini Generate Content](https://ai.google.dev/api/generate-content) |  |
+| `invoke_agent` | Invoke GenAI agent |  |
+| `retrieval` | Retrieval operation such as [OpenAI Search Vector Store API](https://platform.openai.com/docs/api-reference/vector-stores/search) |  |
+| `search_memory` | Search/query memories from a memory store |  |
+| `text_completion` | Text completions operation such as [OpenAI Completions API (Legacy)](https://platform.openai.com/docs/api-reference/completions) |  |
+| `update_memory` | Create or update (upsert) memory items |  |
+
+---
+
+`gen_ai.provider.name` has the following list of well-known values. If one of them applies, then the respective value MUST be used; otherwise, a custom value MAY be used.
+
+| Value | Description | Stability |
+| --- | --- | --- |
+| `anthropic` | [Anthropic](https://www.anthropic.com/) |  |
+| `aws.bedrock` | [AWS Bedrock](https://aws.amazon.com/bedrock) |  |
+| `azure.ai.inference` | Azure AI Inference |  |
+| `azure.ai.openai` | [Azure OpenAI](https://azure.microsoft.com/products/ai-services/openai-service/) |  |
+| `cohere` | [Cohere](https://cohere.com/) |  |
+| `deepseek` | [DeepSeek](https://www.deepseek.com/) |  |
+| `gcp.gemini` | [Gemini](https://cloud.google.com/products/gemini) [8] |  |
+| `gcp.gen_ai` | Any Google generative AI endpoint [9] |  |
+| `gcp.vertex_ai` | [Vertex AI](https://cloud.google.com/vertex-ai) [10] |  |
+| `groq` | [Groq](https://groq.com/) |  |
+| `ibm.watsonx.ai` | [IBM Watsonx AI](https://www.ibm.com/products/watsonx-ai) |  |
+| `mistral_ai` | [Mistral AI](https://mistral.ai/) |  |
+| `openai` | [OpenAI](https://openai.com/) |  |
+| `perplexity` | [Perplexity](https://www.perplexity.ai/) |  |
+| `x_ai` | [xAI](https://x.ai/) |  |
+
+**[8]:** Used when accessing the 'generativelanguage.googleapis.com' endpoint. Also known as the AI Studio API.
+
+**[9]:** May be used when specific backend is unknown.
+
+**[10]:** Used when accessing the 'aiplatform.googleapis.com' endpoint.
+
+
+
+
+
+#### Delete Memory
+
+
+
+
+
+
+**Status:** 
+
+Describes a memory deletion operation - removing one or more memory records.
+
+The `gen_ai.operation.name` SHOULD be `delete_memory`.
+
+**Span name** SHOULD be `delete_memory {gen_ai.memory.store.id}`
+or `delete_memory` if store id is not available.
+
+Deletion semantics SHOULD be interpreted as follows:
+
+- If `gen_ai.memory.record.id` is set, the request is to delete a specific memory record.
+- If `gen_ai.memory.record.id` is not set, the request is to delete all memory records in the specified store.
+
+**Span kind** SHOULD be `CLIENT`.
+
+**Span status** SHOULD follow the [Recording Errors](/docs/general/recording-errors.md) document.
+
+**Attributes:**
+
+| Key | Stability | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Value Type | Description | Example Values |
+| --- | --- | --- | --- | --- | --- |
+| [`gen_ai.operation.name`](/docs/registry/attributes/gen-ai.md) |  | `Required` | string | The name of the operation being performed. [1] | `chat`; `generate_content`; `text_completion` |
+| [`gen_ai.provider.name`](/docs/registry/attributes/gen-ai.md) |  | `Required` | string | The Generative AI provider as identified by the client or server instrumentation. [2] | `openai`; `gcp.gen_ai`; `gcp.vertex_ai` |
+| [`error.type`](/docs/registry/attributes/error.md) |  | `Conditionally Required` if the operation ended in an error | string | Describes a class of error the operation ended with. [3] | `timeout`; `java.net.UnknownHostException`; `server_certificate_invalid`; `500` |
+| [`gen_ai.agent.id`](/docs/registry/attributes/gen-ai.md) |  | `Conditionally Required` when deleting agent-scoped memory | string | The unique identifier of the GenAI agent. | `asst_5j66UpCpwteGg4YSxUnt7lPY` |
+| [`gen_ai.conversation.id`](/docs/registry/attributes/gen-ai.md) |  | `Conditionally Required` when deleting conversation-scoped memory | string | The unique identifier for a conversation (session, thread), used to store and correlate messages within this conversation. | `conv_5j66UpCpwteGg4YSxUnt7lPY` |
+| [`gen_ai.memory.record.id`](/docs/registry/attributes/gen-ai.md) |  | `Conditionally Required` when deleting a specific memory record | string | The unique identifier of a memory record. | `mem_5j66UpCpwteGg4YSxUnt7lPY` |
+| [`gen_ai.memory.scope`](/docs/registry/attributes/gen-ai.md) |  | `Conditionally Required` when performing scope-based deletion | string | The scope of the memory store or memory operation. [4] | `user`; `conversation`; `agent` |
+| [`gen_ai.memory.store.id`](/docs/registry/attributes/gen-ai.md) |  | `Conditionally Required` if applicable | string | The unique identifier of the memory store. | `ms_abc123`; `user-preferences-store` |
+| [`server.port`](/docs/registry/attributes/server.md) |  | `Conditionally Required` If `server.address` is set. | int | GenAI server port. [5] | `80`; `8080`; `443` |
+| [`server.address`](/docs/registry/attributes/server.md) |  | `Recommended` | string | GenAI server address. [6] | `example.com`; `10.1.2.80`; `/tmp/my.sock` |
+| [`gen_ai.memory.store.name`](/docs/registry/attributes/gen-ai.md) |  | `Opt-In` | string | Human-readable name of the memory store. [7] | `Customer Support Memory`; `Shopping Preferences` |
+
+**[1] `gen_ai.operation.name`:** If one of the predefined values applies, but specific system uses a different name it's RECOMMENDED to document it in the semantic conventions for specific GenAI system and use system-specific name in the instrumentation. If a different name is not documented, instrumentation libraries SHOULD use applicable predefined value.
+
+**[2] `gen_ai.provider.name`:** The attribute SHOULD be set based on the instrumentation's best
+knowledge and may differ from the actual model provider.
+
+Multiple providers, including Azure OpenAI, Gemini, and AI hosting platforms
+are accessible using the OpenAI REST API and corresponding client libraries,
+but may proxy or host models from different providers.
+
+The `gen_ai.request.model`, `gen_ai.response.model`, and `server.address`
+attributes may help identify the actual system in use.
+
+The `gen_ai.provider.name` attribute acts as a discriminator that
+identifies the GenAI telemetry format flavor specific to that provider
+within GenAI semantic conventions.
+It SHOULD be set consistently with provider-specific attributes and signals.
+For example, GenAI spans, metrics, and events related to AWS Bedrock
+should have the `gen_ai.provider.name` set to `aws.bedrock` and include
+applicable `aws.bedrock.*` attributes and are not expected to include
+`openai.*` attributes.
+
+**[3] `error.type`:** The `error.type` SHOULD match the error code returned by the memory provider,
+the canonical name of exception that occurred, or another low-cardinality error identifier.
+Instrumentations SHOULD document the list of errors they report.
+
+**[4] `gen_ai.memory.scope`:** Memory scope defines the isolation and sharing boundaries. Scopes determine who can access the memory.
+
+**[5] `server.port`:** When observed from the client side, and when communicating through an intermediary, `server.port` SHOULD represent the server port behind any intermediaries, for example proxies, if it's available.
+
+**[6] `server.address`:** When observed from the client side, and when communicating through an intermediary, `server.address` SHOULD represent the server address behind any intermediaries, for example proxies, if it's available.
+
+**[7] `gen_ai.memory.store.name`:** Use this when the store has a separate human-readable name distinct from its machine-generated ID. For frameworks where the name IS the identifier (e.g., Azure AI Foundry), use `gen_ai.memory.store.id` instead.
+
+---
+
+`error.type` has the following list of well-known values. If one of them applies, then the respective value MUST be used; otherwise, a custom value MAY be used.
+
+| Value | Description | Stability |
+| --- | --- | --- |
+| `_OTHER` | A fallback error value to be used when the instrumentation doesn't define a custom value. |  |
+
+---
+
+`gen_ai.memory.scope` has the following list of well-known values. If one of them applies, then the respective value MUST be used; otherwise, a custom value MAY be used.
+
+| Value | Description | Stability |
+| --- | --- | --- |
+| `agent` | Scoped to a specific agent. Agent-specific knowledge. |  |
+| `conversation` | Scoped to a conversation/thread. Context within a single conversation. |  |
+| `team` | Shared across a team of agents. Multi-agent collaboration. |  |
+| `user` | Scoped to a specific user. Persists across all conversations with a user. |  |
+
+---
+
+`gen_ai.operation.name` has the following list of well-known values. If one of them applies, then the respective value MUST be used; otherwise, a custom value MAY be used.
+
+| Value | Description | Stability |
+| --- | --- | --- |
+| `chat` | Chat completion operation such as [OpenAI Chat API](https://platform.openai.com/docs/api-reference/chat) |  |
+| `create_agent` | Create GenAI agent |  |
+| `create_memory_store` | Create/initialize a memory store |  |
+| `delete_memory` | Delete memory items |  |
+| `delete_memory_store` | Delete/deprovision a memory store |  |
+| `embeddings` | Embeddings operation such as [OpenAI Create embeddings API](https://platform.openai.com/docs/api-reference/embeddings/create) |  |
+| `execute_tool` | Execute a tool |  |
+| `generate_content` | Multimodal content generation operation such as [Gemini Generate Content](https://ai.google.dev/api/generate-content) |  |
+| `invoke_agent` | Invoke GenAI agent |  |
+| `retrieval` | Retrieval operation such as [OpenAI Search Vector Store API](https://platform.openai.com/docs/api-reference/vector-stores/search) |  |
+| `search_memory` | Search/query memories from a memory store |  |
+| `text_completion` | Text completions operation such as [OpenAI Completions API (Legacy)](https://platform.openai.com/docs/api-reference/completions) |  |
+| `update_memory` | Create or update (upsert) memory items |  |
+
+---
+
+`gen_ai.provider.name` has the following list of well-known values. If one of them applies, then the respective value MUST be used; otherwise, a custom value MAY be used.
+
+| Value | Description | Stability |
+| --- | --- | --- |
+| `anthropic` | [Anthropic](https://www.anthropic.com/) |  |
+| `aws.bedrock` | [AWS Bedrock](https://aws.amazon.com/bedrock) |  |
+| `azure.ai.inference` | Azure AI Inference |  |
+| `azure.ai.openai` | [Azure OpenAI](https://azure.microsoft.com/products/ai-services/openai-service/) |  |
+| `cohere` | [Cohere](https://cohere.com/) |  |
+| `deepseek` | [DeepSeek](https://www.deepseek.com/) |  |
+| `gcp.gemini` | [Gemini](https://cloud.google.com/products/gemini) [8] |  |
+| `gcp.gen_ai` | Any Google generative AI endpoint [9] |  |
+| `gcp.vertex_ai` | [Vertex AI](https://cloud.google.com/vertex-ai) [10] |  |
+| `groq` | [Groq](https://groq.com/) |  |
+| `ibm.watsonx.ai` | [IBM Watsonx AI](https://www.ibm.com/products/watsonx-ai) |  |
+| `mistral_ai` | [Mistral AI](https://mistral.ai/) |  |
+| `openai` | [OpenAI](https://openai.com/) |  |
+| `perplexity` | [Perplexity](https://www.perplexity.ai/) |  |
+| `x_ai` | [xAI](https://x.ai/) |  |
+
+**[8]:** Used when accessing the 'generativelanguage.googleapis.com' endpoint. Also known as the AI Studio API.
+
+**[9]:** May be used when specific backend is unknown.
+
+**[10]:** Used when accessing the 'aiplatform.googleapis.com' endpoint.
+
+
+
+
+
+#### Delete Memory Store
+
+
+
+
+
+
+**Status:** 
+
+Describes deletion/deprovisioning of a memory store.
+
+The `gen_ai.operation.name` SHOULD be `delete_memory_store`.
+
+**Span name** SHOULD be `delete_memory_store {gen_ai.memory.store.id}`
+or `delete_memory_store` if store id is not available.
+
+**Span kind** SHOULD be `CLIENT`.
+
+**Span status** SHOULD follow the [Recording Errors](/docs/general/recording-errors.md) document.
+
+**Attributes:**
+
+| Key | Stability | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Value Type | Description | Example Values |
+| --- | --- | --- | --- | --- | --- |
+| [`gen_ai.operation.name`](/docs/registry/attributes/gen-ai.md) |  | `Required` | string | The name of the operation being performed. [1] | `chat`; `generate_content`; `text_completion` |
+| [`gen_ai.provider.name`](/docs/registry/attributes/gen-ai.md) |  | `Required` | string | The Generative AI provider as identified by the client or server instrumentation. [2] | `openai`; `gcp.gen_ai`; `gcp.vertex_ai` |
+| [`error.type`](/docs/registry/attributes/error.md) |  | `Conditionally Required` if the operation ended in an error | string | Describes a class of error the operation ended with. [3] | `timeout`; `java.net.UnknownHostException`; `server_certificate_invalid`; `500` |
+| [`gen_ai.memory.store.id`](/docs/registry/attributes/gen-ai.md) |  | `Conditionally Required` if applicable | string | The unique identifier of the memory store. | `ms_abc123`; `user-preferences-store` |
+| [`server.port`](/docs/registry/attributes/server.md) |  | `Conditionally Required` If `server.address` is set. | int | GenAI server port. [4] | `80`; `8080`; `443` |
+| [`server.address`](/docs/registry/attributes/server.md) |  | `Recommended` | string | GenAI server address. [5] | `example.com`; `10.1.2.80`; `/tmp/my.sock` |
+| [`gen_ai.memory.store.name`](/docs/registry/attributes/gen-ai.md) |  | `Opt-In` | string | Human-readable name of the memory store. [6] | `Customer Support Memory`; `Shopping Preferences` |
+
+**[1] `gen_ai.operation.name`:** If one of the predefined values applies, but specific system uses a different name it's RECOMMENDED to document it in the semantic conventions for specific GenAI system and use system-specific name in the instrumentation. If a different name is not documented, instrumentation libraries SHOULD use applicable predefined value.
+
+**[2] `gen_ai.provider.name`:** The attribute SHOULD be set based on the instrumentation's best
+knowledge and may differ from the actual model provider.
+
+Multiple providers, including Azure OpenAI, Gemini, and AI hosting platforms
+are accessible using the OpenAI REST API and corresponding client libraries,
+but may proxy or host models from different providers.
+
+The `gen_ai.request.model`, `gen_ai.response.model`, and `server.address`
+attributes may help identify the actual system in use.
+
+The `gen_ai.provider.name` attribute acts as a discriminator that
+identifies the GenAI telemetry format flavor specific to that provider
+within GenAI semantic conventions.
+It SHOULD be set consistently with provider-specific attributes and signals.
+For example, GenAI spans, metrics, and events related to AWS Bedrock
+should have the `gen_ai.provider.name` set to `aws.bedrock` and include
+applicable `aws.bedrock.*` attributes and are not expected to include
+`openai.*` attributes.
+
+**[3] `error.type`:** The `error.type` SHOULD match the error code returned by the memory provider,
+the canonical name of exception that occurred, or another low-cardinality error identifier.
+Instrumentations SHOULD document the list of errors they report.
+
+**[4] `server.port`:** When observed from the client side, and when communicating through an intermediary, `server.port` SHOULD represent the server port behind any intermediaries, for example proxies, if it's available.
+
+**[5] `server.address`:** When observed from the client side, and when communicating through an intermediary, `server.address` SHOULD represent the server address behind any intermediaries, for example proxies, if it's available.
+
+**[6] `gen_ai.memory.store.name`:** Use this when the store has a separate human-readable name distinct from its machine-generated ID. For frameworks where the name IS the identifier (e.g., Azure AI Foundry), use `gen_ai.memory.store.id` instead.
+
+---
+
+`error.type` has the following list of well-known values. If one of them applies, then the respective value MUST be used; otherwise, a custom value MAY be used.
+
+| Value | Description | Stability |
+| --- | --- | --- |
+| `_OTHER` | A fallback error value to be used when the instrumentation doesn't define a custom value. |  |
+
+---
+
+`gen_ai.operation.name` has the following list of well-known values. If one of them applies, then the respective value MUST be used; otherwise, a custom value MAY be used.
+
+| Value | Description | Stability |
+| --- | --- | --- |
+| `chat` | Chat completion operation such as [OpenAI Chat API](https://platform.openai.com/docs/api-reference/chat) |  |
+| `create_agent` | Create GenAI agent |  |
+| `create_memory_store` | Create/initialize a memory store |  |
+| `delete_memory` | Delete memory items |  |
+| `delete_memory_store` | Delete/deprovision a memory store |  |
+| `embeddings` | Embeddings operation such as [OpenAI Create embeddings API](https://platform.openai.com/docs/api-reference/embeddings/create) |  |
+| `execute_tool` | Execute a tool |  |
+| `generate_content` | Multimodal content generation operation such as [Gemini Generate Content](https://ai.google.dev/api/generate-content) |  |
+| `invoke_agent` | Invoke GenAI agent |  |
+| `retrieval` | Retrieval operation such as [OpenAI Search Vector Store API](https://platform.openai.com/docs/api-reference/vector-stores/search) |  |
+| `search_memory` | Search/query memories from a memory store |  |
+| `text_completion` | Text completions operation such as [OpenAI Completions API (Legacy)](https://platform.openai.com/docs/api-reference/completions) |  |
+| `update_memory` | Create or update (upsert) memory items |  |
+
+---
+
+`gen_ai.provider.name` has the following list of well-known values. If one of them applies, then the respective value MUST be used; otherwise, a custom value MAY be used.
+
+| Value | Description | Stability |
+| --- | --- | --- |
+| `anthropic` | [Anthropic](https://www.anthropic.com/) |  |
+| `aws.bedrock` | [AWS Bedrock](https://aws.amazon.com/bedrock) |  |
+| `azure.ai.inference` | Azure AI Inference |  |
+| `azure.ai.openai` | [Azure OpenAI](https://azure.microsoft.com/products/ai-services/openai-service/) |  |
+| `cohere` | [Cohere](https://cohere.com/) |  |
+| `deepseek` | [DeepSeek](https://www.deepseek.com/) |  |
+| `gcp.gemini` | [Gemini](https://cloud.google.com/products/gemini) [7] |  |
+| `gcp.gen_ai` | Any Google generative AI endpoint [8] |  |
+| `gcp.vertex_ai` | [Vertex AI](https://cloud.google.com/vertex-ai) [9] |  |
+| `groq` | [Groq](https://groq.com/) |  |
+| `ibm.watsonx.ai` | [IBM Watsonx AI](https://www.ibm.com/products/watsonx-ai) |  |
+| `mistral_ai` | [Mistral AI](https://mistral.ai/) |  |
+| `openai` | [OpenAI](https://openai.com/) |  |
+| `perplexity` | [Perplexity](https://www.perplexity.ai/) |  |
+| `x_ai` | [xAI](https://x.ai/) |  |
+
+**[7]:** Used when accessing the 'generativelanguage.googleapis.com' endpoint. Also known as the AI Studio API.
+
+**[8]:** May be used when specific backend is unknown.
+
+**[9]:** Used when accessing the 'aiplatform.googleapis.com' endpoint.
diff --git a/docs/gen-ai/mcp.md b/docs/gen-ai/mcp.md
index 372c903023..4117a08ead 100644
--- a/docs/gen-ai/mcp.md
+++ b/docs/gen-ai/mcp.md
@@ -246,13 +246,17 @@ deserialize it to an object. When recorded on spans, it MAY be recorded as a JSO
| --- | --- | --- |
| `chat` | Chat completion operation such as [OpenAI Chat API](https://platform.openai.com/docs/api-reference/chat) |  |
| `create_agent` | Create GenAI agent |  |
+| `create_memory_store` | Create/initialize a memory store |  |
+| `delete_memory` | Delete memory items |  |
+| `delete_memory_store` | Delete/deprovision a memory store |  |
| `embeddings` | Embeddings operation such as [OpenAI Create embeddings API](https://platform.openai.com/docs/api-reference/embeddings/create) |  |
| `execute_tool` | Execute a tool |  |
| `generate_content` | Multimodal content generation operation such as [Gemini Generate Content](https://ai.google.dev/api/generate-content) |  |
| `invoke_agent` | Invoke GenAI agent |  |
-| `invoke_workflow` | Invoke GenAI workflow |  |
| `retrieval` | Retrieval operation such as [OpenAI Search Vector Store API](https://platform.openai.com/docs/api-reference/vector-stores/search) |  |
+| `search_memory` | Search/query memories from a memory store |  |
| `text_completion` | Text completions operation such as [OpenAI Completions API (Legacy)](https://platform.openai.com/docs/api-reference/completions) |  |
+| `update_memory` | Create or update (upsert) memory items |  |
---
@@ -406,13 +410,17 @@ It SHOULD be set to `pipe` if the transport is stdio.
| --- | --- | --- |
| `chat` | Chat completion operation such as [OpenAI Chat API](https://platform.openai.com/docs/api-reference/chat) |  |
| `create_agent` | Create GenAI agent |  |
+| `create_memory_store` | Create/initialize a memory store |  |
+| `delete_memory` | Delete memory items |  |
+| `delete_memory_store` | Delete/deprovision a memory store |  |
| `embeddings` | Embeddings operation such as [OpenAI Create embeddings API](https://platform.openai.com/docs/api-reference/embeddings/create) |  |
| `execute_tool` | Execute a tool |  |
| `generate_content` | Multimodal content generation operation such as [Gemini Generate Content](https://ai.google.dev/api/generate-content) |  |
| `invoke_agent` | Invoke GenAI agent |  |
-| `invoke_workflow` | Invoke GenAI workflow |  |
| `retrieval` | Retrieval operation such as [OpenAI Search Vector Store API](https://platform.openai.com/docs/api-reference/vector-stores/search) |  |
+| `search_memory` | Search/query memories from a memory store |  |
| `text_completion` | Text completions operation such as [OpenAI Completions API (Legacy)](https://platform.openai.com/docs/api-reference/completions) |  |
+| `update_memory` | Create or update (upsert) memory items |  |
---
@@ -545,13 +553,17 @@ It SHOULD be set to `pipe` if the transport is stdio.
| --- | --- | --- |
| `chat` | Chat completion operation such as [OpenAI Chat API](https://platform.openai.com/docs/api-reference/chat) |  |
| `create_agent` | Create GenAI agent |  |
+| `create_memory_store` | Create/initialize a memory store |  |
+| `delete_memory` | Delete memory items |  |
+| `delete_memory_store` | Delete/deprovision a memory store |  |
| `embeddings` | Embeddings operation such as [OpenAI Create embeddings API](https://platform.openai.com/docs/api-reference/embeddings/create) |  |
| `execute_tool` | Execute a tool |  |
| `generate_content` | Multimodal content generation operation such as [Gemini Generate Content](https://ai.google.dev/api/generate-content) |  |
| `invoke_agent` | Invoke GenAI agent |  |
-| `invoke_workflow` | Invoke GenAI workflow |  |
| `retrieval` | Retrieval operation such as [OpenAI Search Vector Store API](https://platform.openai.com/docs/api-reference/vector-stores/search) |  |
+| `search_memory` | Search/query memories from a memory store |  |
| `text_completion` | Text completions operation such as [OpenAI Completions API (Legacy)](https://platform.openai.com/docs/api-reference/completions) |  |
+| `update_memory` | Create or update (upsert) memory items |  |
---
@@ -676,13 +688,17 @@ It SHOULD be set to `pipe` if the transport is stdio.
| --- | --- | --- |
| `chat` | Chat completion operation such as [OpenAI Chat API](https://platform.openai.com/docs/api-reference/chat) |  |
| `create_agent` | Create GenAI agent |  |
+| `create_memory_store` | Create/initialize a memory store |  |
+| `delete_memory` | Delete memory items |  |
+| `delete_memory_store` | Delete/deprovision a memory store |  |
| `embeddings` | Embeddings operation such as [OpenAI Create embeddings API](https://platform.openai.com/docs/api-reference/embeddings/create) |  |
| `execute_tool` | Execute a tool |  |
| `generate_content` | Multimodal content generation operation such as [Gemini Generate Content](https://ai.google.dev/api/generate-content) |  |
| `invoke_agent` | Invoke GenAI agent |  |
-| `invoke_workflow` | Invoke GenAI workflow |  |
| `retrieval` | Retrieval operation such as [OpenAI Search Vector Store API](https://platform.openai.com/docs/api-reference/vector-stores/search) |  |
+| `search_memory` | Search/query memories from a memory store |  |
| `text_completion` | Text completions operation such as [OpenAI Completions API (Legacy)](https://platform.openai.com/docs/api-reference/completions) |  |
+| `update_memory` | Create or update (upsert) memory items |  |
---
diff --git a/docs/gen-ai/openai.md b/docs/gen-ai/openai.md
index dc8d82df57..e7f20e9b29 100644
--- a/docs/gen-ai/openai.md
+++ b/docs/gen-ai/openai.md
@@ -241,13 +241,17 @@ and SHOULD be provided **at span creation time** (if provided at all):
| --- | --- | --- |
| `chat` | Chat completion operation such as [OpenAI Chat API](https://platform.openai.com/docs/api-reference/chat) |  |
| `create_agent` | Create GenAI agent |  |
+| `create_memory_store` | Create/initialize a memory store |  |
+| `delete_memory` | Delete memory items |  |
+| `delete_memory_store` | Delete/deprovision a memory store |  |
| `embeddings` | Embeddings operation such as [OpenAI Create embeddings API](https://platform.openai.com/docs/api-reference/embeddings/create) |  |
| `execute_tool` | Execute a tool |  |
| `generate_content` | Multimodal content generation operation such as [Gemini Generate Content](https://ai.google.dev/api/generate-content) |  |
| `invoke_agent` | Invoke GenAI agent |  |
-| `invoke_workflow` | Invoke GenAI workflow |  |
| `retrieval` | Retrieval operation such as [OpenAI Search Vector Store API](https://platform.openai.com/docs/api-reference/vector-stores/search) |  |
+| `search_memory` | Search/query memories from a memory store |  |
| `text_completion` | Text completions operation such as [OpenAI Completions API (Legacy)](https://platform.openai.com/docs/api-reference/completions) |  |
+| `update_memory` | Create or update (upsert) memory items |  |
---
diff --git a/docs/registry/attributes/gen-ai.md b/docs/registry/attributes/gen-ai.md
index b7b4f0926d..d3573dfc60 100644
--- a/docs/registry/attributes/gen-ai.md
+++ b/docs/registry/attributes/gen-ai.md
@@ -27,13 +27,22 @@ This document defines the attributes used to describe telemetry in the context o
| `gen_ai.evaluation.score.label` |  | string | Human readable label for evaluation. [2] | `relevant`; `not_relevant`; `correct`; `incorrect`; `pass`; `fail` |
| `gen_ai.evaluation.score.value` |  | double | The evaluation score returned by the evaluator. | `4.0` |
| `gen_ai.input.messages` |  | any | The chat history provided to the model as an input. [3] | [
{
"role": "user",
"parts": [
{
"type": "text",
"content": "Weather in Paris?"
}
]
},
{
"role": "assistant",
"parts": [
{
"type": "tool_call",
"id": "call_VSPygqKTWdrhaFErNvMV18Yl",
"name": "get_weather",
"arguments": {
"location": "Paris"
}
}
]
},
{
"role": "tool",
"parts": [
{
"type": "tool_call_response",
"id": " call_VSPygqKTWdrhaFErNvMV18Yl",
"result": "rainy, 57°F"
}
]
}
] |
-| `gen_ai.operation.name` |  | string | The name of the operation being performed. [4] | `chat`; `generate_content`; `text_completion` |
-| `gen_ai.output.messages` |  | any | Messages returned by the model where each message represents a specific model response (choice, candidate). [5] | [
{
"role": "assistant",
"parts": [
{
"type": "text",
"content": "The weather in Paris is currently rainy with a temperature of 57°F."
}
],
"finish_reason": "stop"
}
] |
-| `gen_ai.output.type` |  | string | Represents the content type requested by the client. [6] | `text`; `json`; `image` |
+| `gen_ai.memory.expiration_date` |  | string | Expiration date for the memory in ISO 8601 format. | `2025-12-31`; `2026-01-15T00:00:00Z` |
+| `gen_ai.memory.query.text` |  | string | The search query used to retrieve memories. [4] | `user dietary preferences`; `past flight bookings` |
+| `gen_ai.memory.record.content` |  | any | The content/value of the memory record. [5] | `{"preference": "dark_mode", "value": true}` |
+| `gen_ai.memory.record.id` |  | string | The unique identifier of a memory record. | `mem_5j66UpCpwteGg4YSxUnt7lPY` |
+| `gen_ai.memory.scope` |  | string | The scope of the memory store or memory operation. [6] | `user`; `conversation`; `agent` |
+| `gen_ai.memory.search.result.count` |  | int | Number of memory items returned from a search operation. | `3`; `10` |
+| `gen_ai.memory.search.similarity.threshold` |  | double | Minimum similarity score threshold used for memory search. | `0.7`; `0.85` |
+| `gen_ai.memory.store.id` |  | string | The unique identifier of the memory store. | `ms_abc123`; `user-preferences-store` |
+| `gen_ai.memory.store.name` |  | string | Human-readable name of the memory store. [7] | `Customer Support Memory`; `Shopping Preferences` |
+| `gen_ai.operation.name` |  | string | The name of the operation being performed. [8] | `chat`; `generate_content`; `text_completion` |
+| `gen_ai.output.messages` |  | any | Messages returned by the model where each message represents a specific model response (choice, candidate). [9] | [
{
"role": "assistant",
"parts": [
{
"type": "text",
"content": "The weather in Paris is currently rainy with a temperature of 57°F."
}
],
"finish_reason": "stop"
}
] |
+| `gen_ai.output.type` |  | string | Represents the content type requested by the client. [10] | `text`; `json`; `image` |
| `gen_ai.prompt.name` |  | string | The name of the prompt that uniquely identifies it. | `analyze-code` |
-| `gen_ai.provider.name` |  | string | The Generative AI provider as identified by the client or server instrumentation. [7] | `openai`; `gcp.gen_ai`; `gcp.vertex_ai` |
+| `gen_ai.provider.name` |  | string | The Generative AI provider as identified by the client or server instrumentation. [11] | `openai`; `gcp.gen_ai`; `gcp.vertex_ai` |
| `gen_ai.request.choice.count` |  | int | The target number of candidate completions to return. | `3` |
-| `gen_ai.request.encoding_formats` |  | string[] | The encoding formats requested in an embeddings operation, if specified. [8] | `["base64"]`; `["float", "binary"]` |
+| `gen_ai.request.encoding_formats` |  | string[] | The encoding formats requested in an embeddings operation, if specified. [12] | `["base64"]`; `["float", "binary"]` |
| `gen_ai.request.frequency_penalty` |  | double | The frequency penalty setting for the GenAI request. | `0.1` |
| `gen_ai.request.max_tokens` |  | int | The maximum number of tokens the model generates for a request. | `100` |
| `gen_ai.request.model` |  | string | The name of the GenAI model a request is being made to. | `gpt-4` |
@@ -46,22 +55,22 @@ This document defines the attributes used to describe telemetry in the context o
| `gen_ai.response.finish_reasons` |  | string[] | Array of reasons the model stopped generating tokens, corresponding to each generation received. | `["stop"]`; `["stop", "length"]` |
| `gen_ai.response.id` |  | string | The unique identifier for the completion. | `chatcmpl-123` |
| `gen_ai.response.model` |  | string | The name of the model that generated the response. | `gpt-4-0613` |
-| `gen_ai.retrieval.documents` |  | any | The documents retrieved. [9] | [
{
"id": "doc_123",
"score": 0.95
},
{
"id": "doc_456",
"score": 0.87
},
{
"id": "doc_789",
"score": 0.82
}
] |
-| `gen_ai.retrieval.query.text` |  | string | The query text used for retrieval. [10] | `What is the capital of France?`; `weather in Paris` |
-| `gen_ai.system_instructions` |  | any | The system message or instructions provided to the GenAI model separately from the chat history. [11] | [
{
"type": "text",
"content": "You are an Agent that greet users, always use greetings tool to respond"
}
]; [
{
"type": "text",
"content": "You are a language translator."
},
{
"type": "text",
"content": "Your mission is to translate text in English to French."
}
] |
+| `gen_ai.retrieval.documents` |  | any | The documents retrieved. [13] | [
{
"id": "doc_123",
"score": 0.95
},
{
"id": "doc_456",
"score": 0.87
},
{
"id": "doc_789",
"score": 0.82
}
] |
+| `gen_ai.retrieval.query.text` |  | string | The query text used for retrieval. [14] | `What is the capital of France?`; `weather in Paris` |
+| `gen_ai.system_instructions` |  | any | The system message or instructions provided to the GenAI model separately from the chat history. [15] | [
{
"type": "text",
"content": "You are an Agent that greet users, always use greetings tool to respond"
}
]; [
{
"type": "text",
"content": "You are a language translator."
},
{
"type": "text",
"content": "Your mission is to translate text in English to French."
}
] |
| `gen_ai.token.type` |  | string | The type of token being counted. | `input`; `output` |
-| `gen_ai.tool.call.arguments` |  | any | Parameters passed to the tool call. [12] | {
"location": "San Francisco?",
"date": "2025-10-01"
} |
+| `gen_ai.tool.call.arguments` |  | any | Parameters passed to the tool call. [16] | {
"location": "San Francisco?",
"date": "2025-10-01"
} |
| `gen_ai.tool.call.id` |  | string | The tool call identifier. | `call_mszuSIzqtI65i1wAUOE8w5H4` |
-| `gen_ai.tool.call.result` |  | any | The result returned by the tool call (if any and if execution was successful). [13] | {
"temperature_range": {
"high": 75,
"low": 60
},
"conditions": "sunny"
} |
-| `gen_ai.tool.definitions` |  | any | The list of source system tool definitions available to the GenAI agent or model. [14] | [
{
"type": "function",
"name": "get_current_weather",
"description": "Get the current weather in a given location",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "The city and state, e.g. San Francisco, CA"
},
"unit": {
"type": "string",
"enum": [
"celsius",
"fahrenheit"
]
}
},
"required": [
"location",
"unit"
]
}
}
] |
+| `gen_ai.tool.call.result` |  | any | The result returned by the tool call (if any and if execution was successful). [17] | {
"temperature_range": {
"high": 75,
"low": 60
},
"conditions": "sunny"
} |
+| `gen_ai.tool.definitions` |  | any | The list of source system tool definitions available to the GenAI agent or model. [18] | [
{
"type": "function",
"name": "get_current_weather",
"description": "Get the current weather in a given location",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "The city and state, e.g. San Francisco, CA"
},
"unit": {
"type": "string",
"enum": [
"celsius",
"fahrenheit"
]
}
},
"required": [
"location",
"unit"
]
}
}
] |
| `gen_ai.tool.description` |  | string | The tool description. | `Multiply two numbers` |
| `gen_ai.tool.name` |  | string | Name of the tool utilized by the agent. | `Flights` |
-| `gen_ai.tool.type` |  | string | Type of the tool utilized by the agent [15] | `function`; `extension`; `datastore` |
-| `gen_ai.usage.cache_creation.input_tokens` |  | int | The number of input tokens written to a provider-managed cache. [16] | `25` |
-| `gen_ai.usage.cache_read.input_tokens` |  | int | The number of input tokens served from a provider-managed cache. [17] | `50` |
-| `gen_ai.usage.input_tokens` |  | int | The number of tokens used in the GenAI input (prompt). [18] | `100` |
+| `gen_ai.tool.type` |  | string | Type of the tool utilized by the agent [19] | `function`; `extension`; `datastore` |
+| `gen_ai.usage.cache_creation.input_tokens` |  | int | The number of input tokens written to a provider-managed cache. [20] | `25` |
+| `gen_ai.usage.cache_read.input_tokens` |  | int | The number of input tokens served from a provider-managed cache. [21] | `50` |
+| `gen_ai.usage.input_tokens` |  | int | The number of tokens used in the GenAI input (prompt). [22] | `100` |
| `gen_ai.usage.output_tokens` |  | int | The number of tokens used in the GenAI response (completion). | `180` |
-| `gen_ai.workflow.name` |  | string | Human-readable name of the GenAI workflow provided by the application. [19] | `multi_agent_rag`; `customer_support_pipeline` |
+| `gen_ai.workflow.name` |  | string | Human-readable name of the GenAI workflow provided by the application. [23] | `multi_agent_rag`; `customer_support_pipeline` |
**[1] `gen_ai.data_source.id`:** Data sources are used by AI agents and RAG applications to store grounding data. A data source may be an external database, object store, document collection, website, or any other storage system used by the GenAI agent or application. The `gen_ai.data_source.id` SHOULD match the identifier used by the GenAI system rather than a name specific to the external storage, such as a database or object store. Semantic conventions referencing `gen_ai.data_source.id` MAY also leverage additional attributes, such as `db.*`, to further identify and describe the data source.
@@ -82,9 +91,25 @@ input messages.
See [Recording content on attributes](/docs/gen-ai/gen-ai-spans.md#recording-content-on-attributes)
section for more details.
-**[4] `gen_ai.operation.name`:** If one of the predefined values applies, but specific system uses a different name it's RECOMMENDED to document it in the semantic conventions for specific GenAI system and use system-specific name in the instrumentation. If a different name is not documented, instrumentation libraries SHOULD use applicable predefined value.
+**[4] `gen_ai.memory.query.text`:**
-**[5] `gen_ai.output.messages`:** Instrumentations MUST follow [Output messages JSON schema](/docs/gen-ai/gen-ai-output-messages.json)
+> [!WARNING]
+> This attribute may contain sensitive information.
+
+**[5] `gen_ai.memory.record.content`:**
+
+> [!WARNING]
+> This attribute may contain sensitive information including user/PII data.
+
+Instrumentations SHOULD NOT capture this by default.
+
+**[6] `gen_ai.memory.scope`:** Memory scope defines the isolation and sharing boundaries. Scopes determine who can access the memory.
+
+**[7] `gen_ai.memory.store.name`:** Use this when the store has a separate human-readable name distinct from its machine-generated ID. For frameworks where the name IS the identifier (e.g., Azure AI Foundry), use `gen_ai.memory.store.id` instead.
+
+**[8] `gen_ai.operation.name`:** If one of the predefined values applies, but specific system uses a different name it's RECOMMENDED to document it in the semantic conventions for specific GenAI system and use system-specific name in the instrumentation. If a different name is not documented, instrumentation libraries SHOULD use applicable predefined value.
+
+**[9] `gen_ai.output.messages`:** Instrumentations MUST follow [Output messages JSON schema](/docs/gen-ai/gen-ai-output-messages.json)
Each message represents a single output choice/candidate generated by
the model. Each message corresponds to exactly one generation
@@ -104,11 +129,11 @@ output messages.
See [Recording content on attributes](/docs/gen-ai/gen-ai-spans.md#recording-content-on-attributes)
section for more details.
-**[6] `gen_ai.output.type`:** This attribute SHOULD be used when the client requests output of a specific type. The model may return zero or more outputs of this type.
+**[10] `gen_ai.output.type`:** This attribute SHOULD be used when the client requests output of a specific type. The model may return zero or more outputs of this type.
This attribute specifies the output modality and not the actual output format. For example, if an image is requested, the actual output could be a URL pointing to an image file.
Additional output format details may be recorded in the future in the `gen_ai.output.{type}.*` attributes.
-**[7] `gen_ai.provider.name`:** The attribute SHOULD be set based on the instrumentation's best
+**[11] `gen_ai.provider.name`:** The attribute SHOULD be set based on the instrumentation's best
knowledge and may differ from the actual model provider.
Multiple providers, including Azure OpenAI, Gemini, and AI hosting platforms
@@ -127,9 +152,9 @@ should have the `gen_ai.provider.name` set to `aws.bedrock` and include
applicable `aws.bedrock.*` attributes and are not expected to include
`openai.*` attributes.
-**[8] `gen_ai.request.encoding_formats`:** In some GenAI systems the encoding formats are called embedding types. Also, some GenAI systems only accept a single format per request.
+**[12] `gen_ai.request.encoding_formats`:** In some GenAI systems the encoding formats are called embedding types. Also, some GenAI systems only accept a single format per request.
-**[9] `gen_ai.retrieval.documents`:** Instrumentations MUST follow [Retrieval documents JSON schema](/docs/gen-ai/gen-ai-retrieval-documents.json).
+**[13] `gen_ai.retrieval.documents`:** Instrumentations MUST follow [Retrieval documents JSON schema](/docs/gen-ai/gen-ai-retrieval-documents.json).
When the attribute is recorded on events, it MUST be recorded in structured
form. When recorded on spans, it MAY be recorded as a JSON string if structured
format is not supported and SHOULD be recorded in structured form otherwise.
@@ -137,12 +162,12 @@ format is not supported and SHOULD be recorded in structured form otherwise.
Each document object SHOULD contain at least the following properties:
`id` (string): A unique identifier for the document, `score` (double): The relevance score of the document
-**[10] `gen_ai.retrieval.query.text`:**
+**[14] `gen_ai.retrieval.query.text`:**
> [!Warning]
> This attribute may contain sensitive information.
-**[11] `gen_ai.system_instructions`:** This attribute SHOULD be used when the corresponding provider or API
+**[15] `gen_ai.system_instructions`:** This attribute SHOULD be used when the corresponding provider or API
allows to provide system instructions or messages separately from the
chat history.
@@ -163,7 +188,7 @@ system instructions.
See [Recording content on attributes](/docs/gen-ai/gen-ai-spans.md#recording-content-on-attributes)
section for more details.
-**[12] `gen_ai.tool.call.arguments`:**
+**[16] `gen_ai.tool.call.arguments`:**
> [!WARNING]
> This attribute may contain sensitive information.
@@ -172,7 +197,7 @@ It's expected to be an object - in case a serialized string is available
to the instrumentation, the instrumentation SHOULD do the best effort to
deserialize it to an object. When recorded on spans, it MAY be recorded as a JSON string if structured format is not supported and SHOULD be recorded in structured form otherwise.
-**[13] `gen_ai.tool.call.result`:**
+**[17] `gen_ai.tool.call.result`:**
> [!WARNING]
> This attribute may contain sensitive information.
@@ -181,7 +206,7 @@ It's expected to be an object - in case a serialized string is available
to the instrumentation, the instrumentation SHOULD do the best effort to
deserialize it to an object. When recorded on spans, it MAY be recorded as a JSON string if structured format is not supported and SHOULD be recorded in structured form otherwise.
-**[14] `gen_ai.tool.definitions`:** The value of this attribute matches source system tool definition format.
+**[18] `gen_ai.tool.definitions`:** The value of this attribute matches source system tool definition format.
It's expected to be an array of objects where each object represents a tool definition. In case a serialized string is available
to the instrumentation, the instrumentation SHOULD do the best effort to
@@ -191,22 +216,33 @@ Since this attribute could be large, it's NOT RECOMMENDED to populate
it by default. Instrumentations MAY provide a way to enable
populating this attribute.
-**[15] `gen_ai.tool.type`:** Extension: A tool executed on the agent-side to directly call external APIs, bridging the gap between the agent and real-world systems.
+**[19] `gen_ai.tool.type`:** Extension: A tool executed on the agent-side to directly call external APIs, bridging the gap between the agent and real-world systems.
Agent-side operations involve actions that are performed by the agent on the server or within the agent's controlled environment.
Function: A tool executed on the client-side, where the agent generates parameters for a predefined function, and the client executes the logic.
Client-side operations are actions taken on the user's end or within the client application.
Datastore: A tool used by the agent to access and query structured or unstructured external data for retrieval-augmented tasks or knowledge updates.
-**[16] `gen_ai.usage.cache_creation.input_tokens`:** The value SHOULD be included in `gen_ai.usage.input_tokens`.
+**[20] `gen_ai.usage.cache_creation.input_tokens`:** The value SHOULD be included in `gen_ai.usage.input_tokens`.
-**[17] `gen_ai.usage.cache_read.input_tokens`:** The value SHOULD be included in `gen_ai.usage.input_tokens`.
+**[21] `gen_ai.usage.cache_read.input_tokens`:** The value SHOULD be included in `gen_ai.usage.input_tokens`.
-**[18] `gen_ai.usage.input_tokens`:** This value SHOULD include all types of input tokens, including cached tokens.
+**[22] `gen_ai.usage.input_tokens`:** This value SHOULD include all types of input tokens, including cached tokens.
Instrumentations SHOULD make a best effort to populate this value, using a total
provided by the provider when available or, depending on the provider API,
by summing different token types parsed from the provider output.
-**[19] `gen_ai.workflow.name`:** This attribute can be populated in different frameworks eg: name of the first chain in LangChain OR name of the crew in CrewAI.
+**[23] `gen_ai.workflow.name`:** This attribute can be populated in different frameworks eg: name of the first chain in LangChain OR name of the crew in CrewAI.
+
+---
+
+`gen_ai.memory.scope` has the following list of well-known values. If one of them applies, then the respective value MUST be used; otherwise, a custom value MAY be used.
+
+| Value | Description | Stability |
+| --- | --- | --- |
+| `agent` | Scoped to a specific agent. Agent-specific knowledge. |  |
+| `conversation` | Scoped to a conversation/thread. Context within a single conversation. |  |
+| `team` | Shared across a team of agents. Multi-agent collaboration. |  |
+| `user` | Scoped to a specific user. Persists across all conversations with a user. |  |
---
@@ -216,13 +252,17 @@ by summing different token types parsed from the provider output.
| --- | --- | --- |
| `chat` | Chat completion operation such as [OpenAI Chat API](https://platform.openai.com/docs/api-reference/chat) |  |
| `create_agent` | Create GenAI agent |  |
+| `create_memory_store` | Create/initialize a memory store |  |
+| `delete_memory` | Delete memory items |  |
+| `delete_memory_store` | Delete/deprovision a memory store |  |
| `embeddings` | Embeddings operation such as [OpenAI Create embeddings API](https://platform.openai.com/docs/api-reference/embeddings/create) |  |
| `execute_tool` | Execute a tool |  |
| `generate_content` | Multimodal content generation operation such as [Gemini Generate Content](https://ai.google.dev/api/generate-content) |  |
| `invoke_agent` | Invoke GenAI agent |  |
-| `invoke_workflow` | Invoke GenAI workflow |  |
| `retrieval` | Retrieval operation such as [OpenAI Search Vector Store API](https://platform.openai.com/docs/api-reference/vector-stores/search) |  |
+| `search_memory` | Search/query memories from a memory store |  |
| `text_completion` | Text completions operation such as [OpenAI Completions API (Legacy)](https://platform.openai.com/docs/api-reference/completions) |  |
+| `update_memory` | Create or update (upsert) memory items |  |
---
@@ -247,9 +287,9 @@ by summing different token types parsed from the provider output.
| `azure.ai.openai` | [Azure OpenAI](https://azure.microsoft.com/products/ai-services/openai-service/) |  |
| `cohere` | [Cohere](https://cohere.com/) |  |
| `deepseek` | [DeepSeek](https://www.deepseek.com/) |  |
-| `gcp.gemini` | [Gemini](https://cloud.google.com/products/gemini) [20] |  |
-| `gcp.gen_ai` | Any Google generative AI endpoint [21] |  |
-| `gcp.vertex_ai` | [Vertex AI](https://cloud.google.com/vertex-ai) [22] |  |
+| `gcp.gemini` | [Gemini](https://cloud.google.com/products/gemini) [24] |  |
+| `gcp.gen_ai` | Any Google generative AI endpoint [25] |  |
+| `gcp.vertex_ai` | [Vertex AI](https://cloud.google.com/vertex-ai) [26] |  |
| `groq` | [Groq](https://groq.com/) |  |
| `ibm.watsonx.ai` | [IBM Watsonx AI](https://www.ibm.com/products/watsonx-ai) |  |
| `mistral_ai` | [Mistral AI](https://mistral.ai/) |  |
@@ -257,11 +297,11 @@ by summing different token types parsed from the provider output.
| `perplexity` | [Perplexity](https://www.perplexity.ai/) |  |
| `x_ai` | [xAI](https://x.ai/) |  |
-**[20]:** Used when accessing the 'generativelanguage.googleapis.com' endpoint. Also known as the AI Studio API.
+**[24]:** Used when accessing the 'generativelanguage.googleapis.com' endpoint. Also known as the AI Studio API.
-**[21]:** May be used when specific backend is unknown.
+**[25]:** May be used when specific backend is unknown.
-**[22]:** Used when accessing the 'aiplatform.googleapis.com' endpoint.
+**[26]:** Used when accessing the 'aiplatform.googleapis.com' endpoint.
---
@@ -298,9 +338,9 @@ Describes deprecated `gen_ai` attributes.
| `azure.ai.openai` | Azure OpenAI |  |
| `cohere` | Cohere |  |
| `deepseek` | DeepSeek |  |
-| `gcp.gemini` | Gemini [23] |  |
-| `gcp.gen_ai` | Any Google generative AI endpoint [24] |  |
-| `gcp.vertex_ai` | Vertex AI [25] |  |
+| `gcp.gemini` | Gemini [27] |  |
+| `gcp.gen_ai` | Any Google generative AI endpoint [28] |  |
+| `gcp.vertex_ai` | Vertex AI [29] |  |
| `groq` | Groq |  |
| `ibm.watsonx.ai` | IBM Watsonx AI |  |
| `mistral_ai` | Mistral AI |  |
@@ -308,11 +348,11 @@ Describes deprecated `gen_ai` attributes.
| `perplexity` | Perplexity |  |
| `xai` | xAI |  |
-**[23]:** This refers to the 'generativelanguage.googleapis.com' endpoint. Also known as the AI Studio API. May use common attributes prefixed with 'gcp.gen_ai.'.
+**[27]:** This refers to the 'generativelanguage.googleapis.com' endpoint. Also known as the AI Studio API. May use common attributes prefixed with 'gcp.gen_ai.'.
-**[24]:** May be used when specific backend is unknown. May use common attributes prefixed with 'gcp.gen_ai.'.
+**[28]:** May be used when specific backend is unknown. May use common attributes prefixed with 'gcp.gen_ai.'.
-**[25]:** This refers to the 'aiplatform.googleapis.com' endpoint. May use common attributes prefixed with 'gcp.gen_ai.'.
+**[29]:** This refers to the 'aiplatform.googleapis.com' endpoint. May use common attributes prefixed with 'gcp.gen_ai.'.
## Deprecated OpenAI GenAI Attributes
diff --git a/model/gen-ai/registry.yaml b/model/gen-ai/registry.yaml
index ddd2408b27..a31215eb2a 100644
--- a/model/gen-ai/registry.yaml
+++ b/model/gen-ai/registry.yaml
@@ -410,9 +410,25 @@ groups:
value: "execute_tool"
brief: 'Execute a tool'
stability: development
- - id: invoke_workflow
- value: "invoke_workflow"
- brief: 'Invoke GenAI workflow'
+ - id: search_memory
+ value: "search_memory"
+ brief: 'Search/query memories from a memory store'
+ stability: development
+ - id: update_memory
+ value: "update_memory"
+ brief: 'Create or update (upsert) memory items'
+ stability: development
+ - id: delete_memory
+ value: "delete_memory"
+ brief: 'Delete memory items'
+ stability: development
+ - id: create_memory_store
+ value: "create_memory_store"
+ brief: 'Create/initialize a memory store'
+ stability: development
+ - id: delete_memory_store
+ value: "delete_memory_store"
+ brief: 'Delete/deprovision a memory store'
stability: development
brief: The name of the operation being performed.
note: >
@@ -671,3 +687,93 @@ groups:
examples: [ "multi_agent_rag", "customer_support_pipeline" ]
note: |
This attribute can be populated in different frameworks eg: name of the first chain in LangChain OR name of the crew in CrewAI.
+
+ - id: gen_ai.memory.store.id
+ stability: development
+ type: string
+ brief: The unique identifier of the memory store.
+ examples: ["ms_abc123", "user-preferences-store"]
+
+
+ - id: gen_ai.memory.record.id
+ stability: development
+ type: string
+ brief: The unique identifier of a memory record.
+ examples: ["mem_5j66UpCpwteGg4YSxUnt7lPY"]
+
+ - id: gen_ai.memory.store.name
+ stability: development
+ type: string
+ brief: Human-readable name of the memory store.
+ note: >
+ Use this when the store has a separate human-readable name distinct
+ from its machine-generated ID. For frameworks where the name IS the
+ identifier (e.g., Azure AI Foundry), use `gen_ai.memory.store.id` instead.
+ examples: ["Customer Support Memory", "Shopping Preferences"]
+
+ - id: gen_ai.memory.scope
+ stability: development
+ type:
+ members:
+ - id: user
+ value: "user"
+ brief: "Scoped to a specific user. Persists across all conversations with a user."
+ stability: development
+ - id: conversation
+ value: "conversation"
+ brief: "Scoped to a conversation/thread. Context within a single conversation."
+ stability: development
+ - id: agent
+ value: "agent"
+ brief: "Scoped to a specific agent. Agent-specific knowledge."
+ stability: development
+ - id: team
+ value: "team"
+ brief: "Shared across a team of agents. Multi-agent collaboration."
+ stability: development
+ brief: The scope of the memory store or memory operation.
+ note: >
+ Memory scope defines the isolation and sharing boundaries.
+ Scopes determine who can access the memory.
+ examples: ["user", "conversation", "agent"]
+
+ - id: gen_ai.memory.search.similarity.threshold
+ stability: development
+ type: double
+ brief: Minimum similarity score threshold used for memory search.
+ examples: [0.7, 0.85]
+
+ - id: gen_ai.memory.expiration_date
+ stability: development
+ type: string
+ brief: Expiration date for the memory in ISO 8601 format.
+ examples: ["2025-12-31", "2026-01-15T00:00:00Z"]
+
+ - id: gen_ai.memory.record.content
+ stability: development
+ type: any
+ brief: The content/value of the memory record.
+ note: |
+ > [!WARNING]
+ > This attribute may contain sensitive information including user/PII data.
+
+ Instrumentations SHOULD NOT capture this by default.
+ examples:
+ - '{"preference": "dark_mode", "value": true}'
+
+ - id: gen_ai.memory.query.text
+ stability: development
+ type: string
+ brief: The search query used to retrieve memories.
+ note: |
+ > [!WARNING]
+ > This attribute may contain sensitive information.
+ examples: ["user dietary preferences", "past flight bookings"]
+
+ - id: gen_ai.memory.search.result.count
+ stability: development
+ type: int
+ brief: Number of memory items returned from a search operation.
+ examples: [3, 10]
+
+
diff --git a/model/gen-ai/spans.yaml b/model/gen-ai/spans.yaml
index 2ff5f5c639..a608aa4715 100644
--- a/model/gen-ai/spans.yaml
+++ b/model/gen-ai/spans.yaml
@@ -440,6 +440,194 @@ groups:
the canonical name of exception that occurred, or another low-cardinality error identifier.
Instrumentations SHOULD document the list of errors they report.
+ - id: attributes.gen_ai.memory.client
+ type: attribute_group
+ stability: development
+ brief: >
+ Common attributes for GenAI memory operation spans.
+ attributes:
+ - ref: gen_ai.operation.name
+ requirement_level: required
+ - ref: server.address
+ brief: GenAI server address.
+ requirement_level: recommended
+ - ref: server.port
+ brief: GenAI server port.
+ requirement_level:
+ conditionally_required: If `server.address` is set.
+ - ref: error.type
+ requirement_level:
+ conditionally_required: "if the operation ended in an error"
+ note: |
+ The `error.type` SHOULD match the error code returned by the memory provider,
+ the canonical name of exception that occurred, or another low-cardinality error identifier.
+ Instrumentations SHOULD document the list of errors they report.
+
+ - id: span.gen_ai.create_memory_store.client
+ type: span
+ stability: development
+ span_kind: client
+ extends: attributes.gen_ai.memory.client
+ brief: >
+ Describes creation/initialization of a memory store.
+ note: |
+ The `gen_ai.operation.name` SHOULD be `create_memory_store`.
+
+ **Span name** SHOULD be `create_memory_store {gen_ai.memory.store.id}`
+ or `create_memory_store` if store id is not available.
+ attributes:
+ - ref: gen_ai.operation.name
+ requirement_level: required
+ - ref: gen_ai.provider.name
+ requirement_level: required
+ - ref: gen_ai.memory.store.id
+ requirement_level:
+ conditionally_required: when returned by the operation
+ - ref: gen_ai.memory.store.name
+ requirement_level: opt_in
+ - ref: gen_ai.memory.scope
+ requirement_level: recommended
+
+ - id: span.gen_ai.search_memory.client
+ type: span
+ stability: development
+ span_kind: client
+ extends: attributes.gen_ai.memory.client
+ brief: >
+ Describes a memory search/retrieval operation - querying a memory store
+ for relevant memories.
+ note: |
+ The `gen_ai.operation.name` SHOULD be `search_memory`.
+
+ **Span name** SHOULD be `search_memory {gen_ai.memory.store.id}`
+ or `search_memory` if store id is not available.
+ attributes:
+ - ref: gen_ai.operation.name
+ requirement_level: required
+ - ref: gen_ai.provider.name
+ requirement_level: required
+ - ref: gen_ai.memory.store.id
+ requirement_level:
+ conditionally_required: if applicable
+ - ref: gen_ai.memory.store.name
+ requirement_level: opt_in
+ - ref: gen_ai.memory.query.text
+ requirement_level: opt_in
+ - ref: gen_ai.memory.search.result.count
+ requirement_level: opt_in
+ - ref: gen_ai.memory.search.similarity.threshold
+ requirement_level:
+ conditionally_required: when similarity filtering is used
+ - ref: gen_ai.agent.id
+ requirement_level:
+ conditionally_required: when searching agent-scoped memory
+ - ref: gen_ai.conversation.id
+ requirement_level:
+ conditionally_required: when searching conversation-scoped memory
+
+ - id: span.gen_ai.update_memory.client
+ type: span
+ stability: development
+ span_kind: client
+ extends: attributes.gen_ai.memory.client
+ brief: >
+ Describes a memory update operation - creating new or modifying
+ existing memory records in a memory store.
+ note: |
+ The `gen_ai.operation.name` SHOULD be `update_memory`.
+
+ This operation covers both creating new and updating existing memory records.
+
+ **Span name** SHOULD be `update_memory {gen_ai.memory.store.id}`
+ or `update_memory` if store id is not available.
+ attributes:
+ - ref: gen_ai.operation.name
+ requirement_level: required
+ - ref: gen_ai.provider.name
+ requirement_level: required
+ - ref: gen_ai.memory.store.id
+ requirement_level:
+ conditionally_required: if applicable
+ - ref: gen_ai.memory.store.name
+ requirement_level: opt_in
+ - ref: gen_ai.memory.record.id
+ requirement_level:
+ conditionally_required: when available (provided or returned)
+ - ref: gen_ai.memory.record.content
+ requirement_level: opt_in
+ - ref: gen_ai.memory.expiration_date
+ requirement_level:
+ conditionally_required: if expiration is set
+ - ref: gen_ai.agent.id
+ requirement_level:
+ conditionally_required: when operating on agent-scoped memory
+ - ref: gen_ai.conversation.id
+ requirement_level:
+ conditionally_required: when operating on conversation-scoped memory
+
+ - id: span.gen_ai.delete_memory.client
+ type: span
+ stability: development
+ span_kind: client
+ extends: attributes.gen_ai.memory.client
+ brief: >
+ Describes a memory deletion operation - removing one or more memory records.
+ note: |
+ The `gen_ai.operation.name` SHOULD be `delete_memory`.
+
+ **Span name** SHOULD be `delete_memory {gen_ai.memory.store.id}`
+ or `delete_memory` if store id is not available.
+
+ Deletion semantics SHOULD be interpreted as follows:
+
+ - If `gen_ai.memory.record.id` is set, the request is to delete a specific memory record.
+ - If `gen_ai.memory.record.id` is not set, the request is to delete all memory records in the specified store.
+ attributes:
+ - ref: gen_ai.operation.name
+ requirement_level: required
+ - ref: gen_ai.provider.name
+ requirement_level: required
+ - ref: gen_ai.memory.store.id
+ requirement_level:
+ conditionally_required: if applicable
+ - ref: gen_ai.memory.store.name
+ requirement_level: opt_in
+ - ref: gen_ai.memory.scope
+ requirement_level:
+ conditionally_required: when performing scope-based deletion
+ - ref: gen_ai.memory.record.id
+ requirement_level:
+ conditionally_required: when deleting a specific memory record
+ - ref: gen_ai.agent.id
+ requirement_level:
+ conditionally_required: when deleting agent-scoped memory
+ - ref: gen_ai.conversation.id
+ requirement_level:
+ conditionally_required: when deleting conversation-scoped memory
+
+ - id: span.gen_ai.delete_memory_store.client
+ type: span
+ stability: development
+ span_kind: client
+ extends: attributes.gen_ai.memory.client
+ brief: >
+ Describes deletion/deprovisioning of a memory store.
+ note: |
+ The `gen_ai.operation.name` SHOULD be `delete_memory_store`.
+
+ **Span name** SHOULD be `delete_memory_store {gen_ai.memory.store.id}`
+ or `delete_memory_store` if store id is not available.
+ attributes:
+ - ref: gen_ai.operation.name
+ requirement_level: required
+ - ref: gen_ai.provider.name
+ requirement_level: required
+ - ref: gen_ai.memory.store.id
+ requirement_level:
+ conditionally_required: if applicable
+ - ref: gen_ai.memory.store.name
+ requirement_level: opt_in
+
- id: span.aws.bedrock.client
extends: span.gen_ai.inference.client
stability: development