diff --git a/content/develop/ai/context-engine/agent-memory/quickstart.md b/content/develop/ai/context-engine/agent-memory/quickstart.md
index 8d75a4be43..060f90a613 100644
--- a/content/develop/ai/context-engine/agent-memory/quickstart.md
+++ b/content/develop/ai/context-engine/agent-memory/quickstart.md
@@ -49,7 +49,7 @@ You also need a shell with `curl` and `jq` installed.
## Save the connection values
1. Open the Redis Agent Memory service in the Redis Cloud console.
-1. On the **Configuration** tab, copy the **Endpoint** and **Store ID**.
+1. On the **Configuration** tab, copy the **Store ID** and the URL from the **URL List**. This URL is the endpoint.
1. Export the values for your chosen client in your shell:
{{< multitabs id="connection-values" tab1="Python" tab2="TypeScript" tab3="curl" >}}
diff --git a/content/develop/ai/context-engine/agent-playbooks/_index.md b/content/develop/ai/context-engine/agent-playbooks/_index.md
index 200b9e1699..e631c907fd 100644
--- a/content/develop/ai/context-engine/agent-playbooks/_index.md
+++ b/content/develop/ai/context-engine/agent-playbooks/_index.md
@@ -49,7 +49,7 @@ See [Redis Agent Playbooks concepts]({{< relref "/develop/ai/context-engine/agen
## Get started
-1. Set up a playbook. Operator guides are coming soon.
+1. [Create a playbook]({{< relref "/operate/iris/agent-playbook/create-playbook" >}}) on Redis Cloud.
2. [Publish and retrieve your first FAQ]({{< relref "/develop/ai/context-engine/agent-playbooks/quickstart" >}}).
## Manage playbook entries
diff --git a/content/develop/ai/context-engine/agent-playbooks/retrieval.md b/content/develop/ai/context-engine/agent-playbooks/retrieval.md
index 35fbe3bfd4..a1b2896d90 100644
--- a/content/develop/ai/context-engine/agent-playbooks/retrieval.md
+++ b/content/develop/ai/context-engine/agent-playbooks/retrieval.md
@@ -68,9 +68,7 @@ Your administrator sets the playbook controls:
| `discovery.maxResults` | `10` | Combined result ceiling for pins and discovered matches. |
| `discovery.previewTokenBudget` | Disabled | Estimated token ceiling for the discovery response. It applies only when `discovery.previewTokenBudgetEnabled` is `true`. |
-Discovery has no per-request similarity override. An administrator can adjust the playbook thresholds.
-
-
+Discovery has no per-request similarity override. An administrator can adjust the playbook thresholds in its [discovery policy]({{< relref "/operate/iris/agent-playbook/manage-playbook#discovery-policy" >}}).
### Pin required knowledge
diff --git a/content/develop/ai/context-engine/lens/configure.md b/content/develop/ai/context-engine/lens/configure.md
index e93f70bc82..b29959e877 100644
--- a/content/develop/ai/context-engine/lens/configure.md
+++ b/content/develop/ai/context-engine/lens/configure.md
@@ -65,8 +65,8 @@ Lens keys have one of three scopes:
| `read` | People and tools that read turns, in the Lens user interface (UI) or with the read application programming interface (API). |
| `full` | Both. |
-Agents send their key as `IRIS_LENS_API_KEY`. The read client reads its key from `LENS_API_KEY`. Give each agent an ingest key and each reader a read key, so an agent's key can't read other agents' turns. Your administrator creates keys.
-
+Agents send their key as `IRIS_LENS_API_KEY`. The read client reads its key from `LENS_API_KEY`. Give each agent an ingest key and each reader a read key, so an agent's key can't read other agents' turns. On Redis Cloud, [create keys in the console](/content/operate/iris/lens/create-lens.md#create-api-keys). Self-managed, your administrator creates them.
+
## Control content capture
diff --git a/content/develop/ai/context-engine/lens/inspect-sessions.md b/content/develop/ai/context-engine/lens/inspect-sessions.md
index a1bb55eae6..0cb15b0a34 100644
--- a/content/develop/ai/context-engine/lens/inspect-sessions.md
+++ b/content/develop/ai/context-engine/lens/inspect-sessions.md
@@ -15,8 +15,8 @@ Use the Lens user interface (UI) to find a session, open a turn, and see what ha
## Connect to Lens
-Open Lens. If Lens asks for a credential, paste your read key and select **Connect**.
-
+Open Lens. On Redis Cloud, select **Lens** under **Iris** in the console menu; Lens uses your console sign-in. Self-managed, Lens asks for a credential: paste your read key and select **Connect**.
+
## Find a session
diff --git a/content/develop/ai/context-engine/lens/quickstart.md b/content/develop/ai/context-engine/lens/quickstart.md
index 53877e3b1a..5e2508955f 100644
--- a/content/develop/ai/context-engine/lens/quickstart.md
+++ b/content/develop/ai/context-engine/lens/quickstart.md
@@ -15,7 +15,7 @@ Trace one agent turn with the Redis Iris software development kit (SDK), then fi
## Before you begin
-Get these values from your administrator:
+Get these values. On Redis Cloud, [create Lens and its keys](/content/operate/iris/lens/create-lens.md). Self-managed, get them from your administrator.
- The Iris host, such as `https://iris.example.com`. The SDK sends turns there, and the read client reads them back from there.
- An ingest key, for sending turns.
@@ -33,6 +33,7 @@ python -m venv .venv
source .venv/bin/activate
python -m pip install redis-iris 'redis-agent-lens>=0.1.0a4'
```
+
## Configure the SDK
@@ -74,8 +75,8 @@ A turn is readable a few seconds after its export.
To view it in Lens:
-1. Open Lens. If Lens asks for a credential, paste your read key and select **Connect**.
-
+1. Open Lens. On Redis Cloud, select **Lens** under **Iris** in the console menu; Lens uses your console sign-in. Self-managed, Lens asks for a credential: paste your read key and select **Connect**.
+
1. Select the `lens-quickstart` agent.
1. Select the session that matches the printed session ID.
1. Expand the turn.
diff --git a/content/embeds/rc-agent-memory-quickstart-create-service.md b/content/embeds/rc-agent-memory-quickstart-create-service.md
index 44a2eeb6a0..abc0f29e70 100644
--- a/content/embeds/rc-agent-memory-quickstart-create-service.md
+++ b/content/embeds/rc-agent-memory-quickstart-create-service.md
@@ -1,7 +1,6 @@
1. Sign in to the [Redis Cloud console](https://cloud.redis.io/).
-1. Select **Agent Memory** from the navigation menu.
-1. If Redis Cloud displays service terms, review and accept them.
-1. Select **Create custom service**.
+1. Select **Agent Memory** under **Iris** in the navigation menu.
+1. Select **Create Agent Memory service**, or **New service** if you already have a service. Then select **Customize settings**.
1. Enter a service name, select an eligible database, and select its `default` user.
1. Under **Memory configuration**, enter these values:
@@ -12,9 +11,9 @@
| **Extraction cadence** | `1` minute | How often session events are processed for extraction. One minute is for this quickstart; use a longer production interval unless you need rapid extraction. |
1. Select **Create**.
-1. Copy the Redis Agent Memory API key and store it securely.
+1. On the service's **Configuration** tab, select **Create API key** and [create a key](/content/operate/iris/agent-memory/create-service.md#connect-and-create-an-api-key) with access to the service. Copy the key and store it securely.
> [!WARNING]
-> Redis Cloud displays the Redis Agent Memory API key only once. If you lose it, [generate a new API key]({{< relref "/operate/iris/agent-memory/view-service#replace-service-api-key" >}}).
+> Redis Cloud displays the API key's token only once. If you lose it, create a new key.
The one-minute extraction interval makes the result easier to observe in this example. For screenshots and configuration details, see [create a Redis Agent Memory service]({{< relref "/operate/iris/agent-memory/create-service" >}}).
diff --git a/content/operate/iris/_index.md b/content/operate/iris/_index.md
index 056a8f3d2a..71c1ec1a43 100644
--- a/content/operate/iris/_index.md
+++ b/content/operate/iris/_index.md
@@ -1,6 +1,6 @@
---
title: Redis Iris context engine
-description: Deploy and operate Redis Iris context engine services.
+description: Create, deploy, and operate Redis Iris context engine services on Redis Cloud or your own infrastructure.
linkTitle: Redis Iris context engine
alwaysopen: false
categories:
@@ -11,25 +11,30 @@ hideListLinks: true
weight: 45
---
-Redis Iris context engine provides managed and self-managed services for building AI applications with persistent memory, semantic caching, and governed access to business data.
+Redis Iris context engine provides managed and self-managed services that give AI agents persistent memory, answers and procedures your business approved, governed access to business data, and turn-by-turn tracing.
Use this section to deploy, configure, and operate Redis Iris services. Developer guides and API integration documentation remain under [Develop with Redis]({{< relref "/develop/ai/context-engine" >}}).
{{< tile-card icon="images/dev/icons/icon-redis-agent-memory-64-duotone.png" title="Redis Agent Memory" description="Create and manage a service on Redis Cloud or deploy it on your own infrastructure" url="/operate/iris/agent-memory" >}}
- {{< tile-card icon="images/dev/icons/icon-redis-iris-64-duotone.png" title="Redis Context Gateway" description="Deploy one MCP endpoint for your agents' tools on your own infrastructure" url="/operate/iris/context-gateway" >}}
+ {{< tile-card icon="images/dev/icons/icon-redis-iris-64-duotone.png" title="Redis Agent Playbooks" description="Create a playbook of approved answers and procedures on Redis Cloud" url="/operate/iris/agent-playbook" >}}
+ {{< tile-card icon="images/dev/icons/icon-redis-iris-64-duotone.png" title="Redis Context Gateway" description="Create one MCP endpoint for your agents' tools on Redis Cloud or your own infrastructure" url="/operate/iris/context-gateway" >}}
{{< tile-card icon="images/dev/icons/icon-redis-iris-64-duotone.png" title="Redis Intent Router" description="Deploy a service that classifies requests into intents on your own infrastructure" url="/operate/iris/intent-router" >}}
+ {{< tile-card icon="images/dev/icons/icon-redis-iris-64-duotone.png" title="Lens" description="Trace your agents' turns on Redis Cloud" url="/operate/iris/lens" >}}
## Deployment options
-Redis Iris services are available as managed services on Redis Cloud. All Redis Iris services are also available for self-managed deployment.
+Redis Iris services are available as managed services on Redis Cloud. Agent Memory and Context Gateway are also available for self-managed deployment.
### Redis Cloud
Create and manage Redis Iris services through the Redis Cloud console without deploying the supporting infrastructure yourself.
- [Create a Redis Agent Memory service]({{< relref "/operate/iris/agent-memory/create-service" >}})
+- [Create a Redis Agent Playbooks playbook]({{< relref "/operate/iris/agent-playbook/create-playbook" >}})
+- [Create a Redis Context Gateway]({{< relref "/operate/iris/context-gateway/create-gateway" >}})
+- [Create Lens]({{< relref "/operate/iris/lens/create-lens" >}})
### Self-managed
diff --git a/content/operate/iris/agent-memory/_index.md b/content/operate/iris/agent-memory/_index.md
index affa13b64d..5a3fdf2f22 100644
--- a/content/operate/iris/agent-memory/_index.md
+++ b/content/operate/iris/agent-memory/_index.md
@@ -13,9 +13,6 @@ hideListLinks: true
Redis Agent Memory provides persistent session memory and long-term memory for AI agents and applications.
-
-{width="75%" class="border border-redis-pen-300 rounded-lg"}
-
## Deployment options
### Redis Cloud
diff --git a/content/operate/iris/agent-memory/create-service.md b/content/operate/iris/agent-memory/create-service.md
index ddad9d8b35..e5836a99b2 100644
--- a/content/operate/iris/agent-memory/create-service.md
+++ b/content/operate/iris/agent-memory/create-service.md
@@ -21,49 +21,39 @@ Redis Agent Memory provides a persistent, structured memory layer that AI agents
To create a Redis Agent Memory service, you will need a Redis Cloud database. If you don't have one, see [Create a database]({{< relref "/operate/rc/databases/create-database" >}}).
-Redis Agent Memory doesn't support [Redis Flex]({{< relref "operate/rc/databases/create-database/create-flex-database">}}) databases, databases using [AWS PrivateLink]({{< relref "operate/rc/security/aws-privatelink">}}) connectivity, [Active-Active]({{< relref "/operate/rc/databases/active-active" >}}) databases, or databases with the [default user]({{< relref "/operate/rc/security/access-control/data-access-control/default-user" >}}) turned off.
+Redis Agent Memory doesn't support [Redis Flex]({{< relref "operate/rc/databases/create-database/create-flex-database">}}) databases, databases using [AWS PrivateLink]({{< relref "operate/rc/security/aws-privatelink">}}) connectivity, [Active-Active]({{< relref "/operate/rc/databases/active-active" >}}) databases, or databases with the [default user]({{< relref "/operate/rc/security/access-control/data-access-control/default-user" >}}) turned off. The console lists only the databases you can use.
+If the database you select has a Classless Inter-Domain Routing (CIDR) allow list, the console lists the Internet Protocol (IP) addresses to add to it so Agent Memory can reach the database. Add them under **Security** in the database's settings. The console also warns you if the database has Transport Layer Security (TLS) turned off.
-## Create an Agent Memory service
-
-From the [Redis Cloud console](https://cloud.redis.io/), select **Agent Memory** from the left-hand menu.
-
-If you have not already created an Agent Memory service, you'll see a page with an introduction to Agent Memory. Otherwise, select **New service** to go to the Agent Memory introduction page.
-
-{width="150px"}
+## Create an Agent Memory service
-From here:
+To create a service:
-- Select **Quick create** to create a Redis Agent Memory service with default settings using your Free 30MB database. If you haven't created a Free database yet, Redis Cloud will create one and set up the Redis Agent Memory service for you.
+1. From the [Redis Cloud console](https://cloud.redis.io/), select **Agent Memory** under **Iris** in the menu.
- 
- {width="150px"}
+1. Select **Create Agent Memory service** on the Agent Memory introduction page, or **New service** in your list of services.
- After Redis Cloud creates your Agent Memory service, a window containing your Agent Memory service key will appear. Select **Copy** to copy the key to your clipboard.
+
- 
- {width="40%"}
+1. In the **Create Agent Memory service** dialog, enter a **Service name**, up to 128 characters.
- > [!WARNING]
- > This is the only time the value of the user key is available. Save it to a secure location before closing the dialog box.
- >
- > If you lose the service key value, you will need to [generate a new service key]({{< relref "/operate/iris/agent-memory/view-service#replace-service-api-key" >}}) to be able to use the Agent Memory API.
+1. Select a **Database**. The console selects your free database by default. If you don't have one yet, **Free Redis database** creates it for you. You can select another eligible database instead.
+
- After Redis Cloud creates your service, [continue with the quickstart]({{< relref "/develop/ai/context-engine/agent-memory/quickstart" >}}).
+1. Review the **Default settings**: 1 day of short-term memory, 365 days of long-term memory, and session summary on.
-- If you want to customize your Redis Agent Memory service, select **Create custom**.
+1. Select **Create** to create the service with these defaults. To change the defaults first, select **Customize settings** instead and continue with [General settings](#general-settings).
- 
- {width="150px"}
+After Redis Cloud creates the service, the **Connect to Agent Memory** dialog opens so you can [connect your agent and create an API key](#connect-and-create-an-api-key).
- This takes you to the **Create Agent Memory Service** page. This page is divided into the following sections:
+**Customize settings** opens the **Create Agent Memory service** page, which has these sections:
- 1. The [General settings](#general-settings) section defines basic properties of your service.
- 1. The [Memory configuration](#memory-configuration) section allows you to define the time-to-live (TTL) of your agent's memories, set how often memories are extracted, and control automatic summarization of session memory.
- 1. The [AI model and credentials](#ai-model-and-credentials) section allows you to use your own model provider key and select the models used by the service.
- 1. The [Memory types & extraction](#memory-types-and-extraction) section allows you to define custom memory types with their own extraction strategies.
- 1. The [Sensitive-data exclusions](#sensitive-data-exclusions) section allows you to keep sensitive content out of long-term memory.
+1. The [General settings](#general-settings) section defines basic properties of your service.
+1. The [Memory configuration](#memory-configuration) section allows you to define the time-to-live (TTL) of your agent's memories, set how often memories are extracted, and control automatic summarization of session memory.
+1. The [AI model and credentials](#ai-model-and-credentials) section allows you to use your own model provider key and select the models used by the service.
+1. The [Memory types & extraction](#memory-types-and-extraction) section allows you to define custom memory types with their own extraction strategies.
+1. The [Sensitive-data exclusions](#sensitive-data-exclusions) section allows you to keep sensitive content out of long-term memory.
### General settings
@@ -73,8 +63,8 @@ The **General settings** section defines basic properties of your service.
| Setting name |Description|
|:----------------------|:----------|
-| **Service name** | Enter a name for your Agent Memory service. We recommend you use a name that describes your service's purpose. |
-| **Select database** | Select the Redis Cloud database to use for this service from the list. |
+| **Service Name** | Enter a name for your Agent Memory service, up to 128 characters. We recommend you use a name that describes your service's purpose. |
+| **Select Database** | Select the Redis Cloud database to use for this service from the list. |
| **User for this service** | The [database access user]({{< relref "/operate/rc/security/access-control/data-access-control/role-based-access-control" >}}) to use for this service. Agent Memory only supports the [`default` user]({{< relref "/operate/rc/security/access-control/data-access-control/default-user" >}}). |
### Memory configuration
@@ -85,20 +75,20 @@ The **Memory configuration** section allows you to define the time-to-live (TTL)
| Setting name |Description|
|:----------------------|:----------|
-| **Short-term TTL** | Defines the time-to-live (TTL) of your agent's **short-term memory** (also known as **session memory**). You can define this TTL in seconds, minutes, hours, or days. Default: 1 hour |
-| **Long-term TTL** | Defines the time-to-live (TTL) of your agent's **long-term memory**. You can define this TTL in seconds, minutes, hours, or days. Default: 365 days |
+| **Short-term TTL** | Defines the time-to-live (TTL) of your agent's **short-term memory** (also known as **session memory**). You can define this TTL in seconds, minutes, hours, or days, up to 365 days. Default: 24 hours |
+| **Long-term TTL** | Defines the time-to-live (TTL) of your agent's **long-term memory**. You can define this TTL in seconds, minutes, hours, or days, up to 365 days. Default: 365 days |
| **Extraction cadence** | How often the extraction pipeline runs while a session is active. Leave this blank to use the default of 5 minutes, or set a value between 60 and 600 seconds to override it. |
#### Automatic summarization
Automatic summarization keeps your agent sharp during long conversations by compressing older messages in a session into a summary, while keeping the most recent messages in full. This helps control the size of session memory without losing important context.
-Use the **Automatic summarization** toggle to enable or disable this behavior. When it is enabled, you can configure the following settings:
+Use the **Automatic summarization** toggle to enable or disable this behavior. It's enabled by default. When it is enabled, you can configure the following settings:
| Setting name |Description|
|:----------------------|:----------|
-| **Summarize after (messages)** | The number of messages a session can hold before older messages are summarized. When a session exceeds this threshold, the oldest messages beyond the **Keep most recent** count are compressed into a summary. |
-| **Keep most recent (messages)** | The number of most recent messages that are always kept in full and never summarized. |
+| **Summarize after (messages)** | The number of messages a session can hold before older messages are summarized, from 1 to 500. It must be greater than **Keep most recent**. When a session exceeds this threshold, the oldest messages beyond the **Keep most recent** count are compressed into a summary. Default: 20 |
+| **Keep most recent (messages)** | The number of most recent messages that are always kept in full and never summarized. Default: 10 |
For example, with **Summarize after** set to 20 and **Keep most recent** set to 10, once a session reaches 20 messages, the oldest 10 messages are summarized automatically and the 10 most recent are kept in full.
@@ -227,17 +217,32 @@ When you are done setting the details of your Agent Memory service, select **Cre

-A window containing your Agent Memory service key will appear. Select **Copy** to copy the key to your clipboard.
+Redis Cloud creates the service and opens its page. To connect an agent, use the [connect banner](/content/operate/iris/agent-memory/view-service.md#configuration-tab) on the **Configuration** tab.
-
-{width="40%"}
+If an error occurs, verify that your database is active. For help, [contact support](https://redis.io/support/).
-> [!WARNING]
-> This is the only time the value of the user key is available. Save it to a secure location before closing the dialog box.
->
-> If you lose the service key value, you will need to [generate a new service key]({{< relref "/operate/iris/agent-memory/view-service#replace-service-api-key" >}}) to be able to use the Redis Agent Memory API.
+## Connect and create an API key {#connect-and-create-an-api-key}
-If an error occurs, verify that your database is active. For help, [contact support](https://redis.io/support/).
+The **Connect to Agent Memory** dialog shows the service's endpoint and store ID, and **Quick connect** samples for each software development kit (SDK). Your agent needs an API key with access to the service.
+
+1. Select **Create an API key**.
+
+1. Enter a name for the key.
+
+1. Under **What can this key do?**, select the actions the key allows on this service.
+
+1. Set when the key expires.
+
+1. Select **Create API key**.
+
+1. Copy the key and save it to a secure location.
+
+ > [!WARNING]
+ > The console shows the key only once. If you lose it, create a new key.
+
+1. Select **Done** to open the service's page.
+
+To connect later, select **Skip for now**. You can create a key from the service's page or in [**Access & Identity**](/content/operate/iris/agent-memory/view-service.md#create-an-api-key).
## Next steps
diff --git a/content/operate/iris/agent-memory/model-configuration.md b/content/operate/iris/agent-memory/model-configuration.md
index 82dbd0c192..90d5fd31cc 100644
--- a/content/operate/iris/agent-memory/model-configuration.md
+++ b/content/operate/iris/agent-memory/model-configuration.md
@@ -47,7 +47,7 @@ Before you use your own key, make sure:
To configure your own model provider key:
-1. Start the [custom service creation flow]({{< relref "/operate/iris/agent-memory/create-service" >}}).
+1. [Start creating a service]({{< relref "/operate/iris/agent-memory/create-service" >}}) and select **Customize settings**.
1. In **AI model and credentials (optional)**, select **Bring my own key**.
diff --git a/content/operate/iris/agent-memory/view-service.md b/content/operate/iris/agent-memory/view-service.md
index 3b8b09d2a7..4a10f0cda2 100644
--- a/content/operate/iris/agent-memory/view-service.md
+++ b/content/operate/iris/agent-memory/view-service.md
@@ -14,41 +14,56 @@ aliases:
- /operate/rc/agent-memory/view-service/
---
-After you have [created your first Agent Memory service]({{< relref "/operate/iris/agent-memory/create-service" >}}), selecting **Agent Memory** from the Redis Cloud Console menu will take you to the **Agent Memory Services** page.
+After you have [created your first Agent Memory service]({{< relref "/operate/iris/agent-memory/create-service" >}}), select **Agent Memory** under **Iris** in the Redis Cloud console menu to see the **Agent Memory** page.
-This page displays a list of all Agent Memory services associated with your account.
+This page lists all Agent Memory services associated with your account, with each service's status, name, store ID, related database, and created date.
-
+Select your Agent Memory service from the list to view the service's details. The service's page has these tabs:
-Select your Agent Memory service from the list to view the service's details.
+- [**Configuration**](#configuration-tab): view and edit the service's settings, connect an agent, and flush or delete the service.
+- **MemoryETL**: extract long-term memories from documents you upload. This tab has a **Beta** badge.
+- [**API explorer**](#api-explorer-tab): try Agent Memory API requests against the service.
+- **Memory Inspector**: browse the service's sessions and search its long-term memories.
+- [**Metrics**](#metrics-tab): view latency and token usage.
+
+
+
+Which tabs, sections, and buttons you see depends on your permissions. For example, **Edit**, **Flush**, **Delete**, **Create API key**, **Metrics**, and **Memory Inspector** each need a specific permission.
+
## Configuration tab
-The **Configuration** tab lets you view the details of your Agent Memory service. It contains the following sections:
+The **Configuration** tab lets you view the details of your Agent Memory service.
+
+It starts with a banner for connecting your agent:
+
+- Select **Connect** to see the service's endpoint, its store ID, and **Quick connect** samples for each software development kit (SDK).
+- Select **Create API key** to create a key with access to this service. The button appears only when the service has no active API key. See [Connect and create an API key](/content/operate/iris/agent-memory/create-service.md#connect-and-create-an-api-key).
+- Select **API docs** to open the Agent Memory API documentation.
+
+The banner is followed by these sections:
- The **General settings** section provides the connection details and general settings for your Agent Memory service.
- The **Memory configuration** section provides the service settings for your Redis Agent Memory service.
- The **AI model and credentials** section shows the model configuration for a service that uses a customer-managed provider key.
- The **Memory types & extraction** section shows any custom memory types defined for your service.
- The **Sensitive-data exclusions** section shows the sensitive-data exclusions configured for your service.
-- The **Actions** section lets you flush or delete your Redis Agent Memory service.
+- The **Danger zone** section lets you flush or delete your Redis Agent Memory service.
-Some of these settings can be changed after service creation. To do so, select the **Edit** button.
+Some of these settings can be changed after service creation. To do so, select **Edit** in the **General settings** section, make your changes, and select **Save**.
### General settings
The **General settings** section provides the connection details and general settings for your Agent Memory service.
-
-
| Setting name |Description|
|:----------------------|:----------|
-| **Service name** | The name of your agent memory service. _(Editable)_ |
+| **Service Name** | The name of your agent memory service. _(Editable)_ |
| **Database** | The name of the database your service uses. |
| **Store ID** | The unique ID of your Agent Memory store. |
-| **Endpoint** | The base URL for any Agent Memory requests. |
+| **URL List** | The base URL for Agent Memory requests. If the service is available in several regions, select **Show all regions** to see each region's URL. |
-Select the **Copy** button next to the Store ID and API Base URL to copy them to the clipboard.
+Select the copy button next to the **Store ID** or a URL to copy it to the clipboard.
Follow the [Redis Agent Memory quickstart]({{< relref "/develop/ai/context-engine/agent-memory/quickstart" >}}) to use the connection information and API key.
@@ -94,7 +109,7 @@ Because a custom memory type's structure is fixed after creation, only some sett
| **Extraction prompt** | The extraction strategy prompt for the custom memory type. _(Editable)_ |
| **Enabled** | Whether the extraction strategy is active. _(Editable)_ |
-To change a custom memory type's name or fields, you must create a new service. You can, however, add a new custom memory type when editing the service, up to the limit of 3 custom memory types.
+To change a custom memory type's name or fields, you must create a new service. You can't delete a custom memory type, remove an existing type's extraction prompt, or add an extraction strategy to a type created without one. You can, however, add a new custom memory type when editing the service, up to the limit of 3 custom memory types.
### Sensitive-data exclusions {#sensitive-data-exclusions}
@@ -116,11 +131,9 @@ Changing exclusions affects memories extracted after you save. Memories already
> [!WARNING]
> Semantic exclusions are **advisory**. They steer the extraction model, but they do not guarantee that sensitive content is excluded. Do not rely on semantic exclusions as your only control for regulated or highly sensitive data.
-### Actions
+### Danger zone
-The **Actions** section lets you flush or delete your Agent Memory service.
-
-
+The **Danger zone** section lets you flush or delete your Agent Memory service.
#### Flush memory entries
@@ -128,72 +141,59 @@ Flushing the service completely erases all stored memory data while preserving t
To flush the service:
-1. Select **Flush**.
+1. Select **Flush**. You can't flush the service while you're editing it, or while it's unavailable.
+
+1. In the **Flush all entries** dialog, select **Yes, I want to flush all entries**.
-1. A confirmation dialog will appear. Select **Flush** again to confirm.
+1. Select **Flush** to confirm.
Flushing the service is permanent and cannot be undone, and will result in empty memory retrieval results until new memory is stored.
#### Delete service
-Deleting your Agent Memory service permanently deletes all associated memory data, the service configuration, the Agent Memory search index, and any stored model provider key. It also immediately terminates all API keys associated with the service. Data stored in other indexes within the same database will remain unaffected.
+Deleting your Agent Memory service permanently deletes the service configuration and its short-term sessions. Long-term memories stay in your database.
+
To delete your Agent Memory service:
-1. Select **Delete**.
+1. Select **Delete**. You can't delete the service while you're editing it.
-1. A confirmation dialog will appear. Select the checkbox to confirm that you want to delete the service.
+1. In the **Delete service** dialog, select **Yes, I want to delete this resource**.
1. Select **Delete** again to confirm.
Deleting the Agent Memory service is permanent and cannot be undone.
+## API explorer tab
+
+The **API explorer** tab lets you try Agent Memory API requests against your service from the console.
+
## Metrics tab
-The **Metrics** tab provides a series of graphs showing performance data for your Agent Memory service.
+The **Metrics** tab shows performance and usage data for your Agent Memory service. Choose a period of an hour, a day, a week, 30 days, or 90 days.
+
+The **API & reliability** view shows the following:
| Metric | Description |
|--------|-------------|
| Short-term Memory Latency | The average time to process a Short-term memory (or Session memory) lookup request. |
| Long-term Memory Latency | The average time to process a Long-term memory lookup request. |
-## API keys tab
+The view also shows **Latency by phase**, with charts for **Retrieval latency**, **Embedding latency**, and **Generation latency**. Some services don't report phase latency.
-The **API keys** tab shows a list of all API keys for your service.
+The **Token consumption** view shows how many large language model (LLM) and embedding tokens the service used, with a breakdown by feature, such as extraction and session summaries. Select **Export** to download the data as a comma-separated values (CSV) file.
-
+## Create an API key {#create-an-api-key}
-Here, you can generate a new API key or remove any keys that are no longer in use. You can generate or remove service API keys at any time.
-
-### Generate a new service API key {#replace-service-api-key}
-
-To generate a new service key:
+Agents call the Agent Memory API with an API key that has access to the service. To create a key for one service, select **Create API key** or **Connect** in the service's [connect banner](#configuration-tab). To create a key that can reach several services, or to manage existing keys, use **Access & Identity**:
+1. In the Redis Cloud console menu, select **Access & Identity** under **Iris**.
1. Select **New API key**.
+1. Under **Access**, give the key access to your service's memory store under **Agent Memory**.
+1. Select **Create key**.
+1. Copy the key's token.
- 
- {width="150px"}
-
-1. Enter a new name for your API key.
-
- 
- {width="37.5%"}
-
-1. Select **Generate key** to generate your new API key.
-
-1. The new key will appear in a dialog box. Select **Copy** to copy the key to the clipboard.
-
- 
- {width="40%"}
-
- > [!WARNING]
- > This is the only time the value of the user key is available. Save it to a secure location before closing the dialog box.
- >
- > If you lose the service key value, you will need to generate a new key again.
-
-### Delete API key
-
-To delete an API key, select the **Delete API key** button next to the old key.
+> [!WARNING]
+> The console shows the key's token only once, when you create it. Save it to a secure location before you close the page. If you lose it, create a new key.
-
-{width="36px"}
+To remove an agent's access, delete its key in **Access & Identity**.
diff --git a/content/operate/iris/agent-playbook/_index.md b/content/operate/iris/agent-playbook/_index.md
new file mode 100644
index 0000000000..3e20f3dc7a
--- /dev/null
+++ b/content/operate/iris/agent-playbook/_index.md
@@ -0,0 +1,24 @@
+---
+title: Redis Agent Playbooks
+description: Create and operate Redis Agent Playbooks on Redis Cloud.
+linkTitle: Agent Playbooks
+alwaysopen: false
+categories:
+- docs
+- operate
+- iris
+weight: 15
+hideListLinks: true
+---
+
+Redis Agent Playbooks stores the answers and procedures your business approves as versioned FAQs and skills, and serves the published versions to your agents.
+
+## Deployment options
+
+### Redis Cloud
+
+Use Redis Agent Playbooks as a managed service on Redis Cloud.
+
+[Create a playbook](/content/operate/iris/agent-playbook/create-playbook.md), or [view and manage an existing playbook](/content/operate/iris/agent-playbook/manage-playbook.md) and its entries, proposals, and settings.
+
+After setup, use the [developer quickstart](/content/develop/ai/context-engine/agent-playbooks/quickstart.md) to publish and retrieve your first FAQ.
diff --git a/content/operate/iris/agent-playbook/create-playbook.md b/content/operate/iris/agent-playbook/create-playbook.md
new file mode 100644
index 0000000000..af4978e6b6
--- /dev/null
+++ b/content/operate/iris/agent-playbook/create-playbook.md
@@ -0,0 +1,94 @@
+---
+alwaysopen: false
+categories:
+- docs
+- operate
+- iris
+description: Create an Agent Playbooks playbook in Redis Cloud and give your agents access to it.
+hideListLinks: true
+linktitle: Create playbook
+title: Create a playbook
+weight: 5
+---
+
+A playbook is a registry of the frequently asked questions (FAQs) and skills your agents can use, with its own access grants and retrieval settings. Agents receive only the versions you publish. This guide walks you through creating a playbook in the Redis Cloud console and giving an agent access to it.
+
+## Before you begin
+
+The playbook stores its data in a Redis Cloud database. Use one of your databases, or let the console create a free database when you create the playbook. To create one yourself, see [Create a database](/content/operate/rc/databases/create-database/_index.md).
+
+If the database has a Classless Inter-Domain Routing (CIDR) allow list that blocks Agent Playbooks, you can't create the playbook with it. The console lists the Internet Protocol (IP) addresses to add. Add them under **Security** in the database's settings.
+
+## Create a playbook
+
+1. From the [Redis Cloud console](https://cloud.redis.io/), select **Agent Playbooks** under **Iris** in the menu.
+
+ If you don't have a playbook yet, you see an introduction to Agent Playbooks. Otherwise, you see the list of your playbooks.
+
+
+
+1. Select **New playbook**.
+
+1. In the **New playbook** dialog, enter the following:
+
+ | Setting | Description |
+ |:--------|:------------|
+ | **Name** | A name for the playbook, up to 128 characters. |
+ | **Database** | The Redis Cloud database that stores the playbook's data. The list shows the databases you can use. If you don't have a free database, select **Free Redis database** to create one with the playbook. An existing free database appears first, with a **Free** badge. |
+ | **Embedding model** | The model that creates embeddings for semantic matching. Each option shows its provider and number of dimensions. Models listed as **Redis** use Redis-managed credentials. Models listed as **Bring Your Own** use your provider's application programming interface (API) key. |
+
+ You can't change the database or the embedding model after you create the playbook.
+
+
+
+1. Select **Create playbook**. Creation can take up to two minutes.
+
+1. In the **Connect to Playbook** step, [create an API key for your agent](#give-an-agent-access), or select **Skip for now**.
+
+The console opens the playbook's **Configuration** tab. The playbook's status shows **Provisioning** until it's **Ready**. A playbook can also show **Failed**, **Suspended**, **Deleting**, or **Unavailable**.
+
+## Add your provider API key
+
+If you chose a **Bring Your Own** embedding model, the playbook needs your provider API key before it can process content. Until you add it, the **Registry** tab asks you to add it in **Configuration**.
+
+1. On the playbook's **Configuration** tab, find the **Embedding provider credential** section.
+1. Enter your **Provider API key**.
+1. Select **Save provider credential**.
+
+This key is separate from the API key your agents use to read the playbook. You can replace it later from the same section.
+
+## Give an agent access
+
+Agents read a playbook at its endpoint, with an API key that has access to it.
+
+1. On the playbook's page, select **Connect**. The **Connect to Playbook** dialog shows the playbook's **Endpoint** and **Playbook ID**. Copy them for your agent.
+
+ This dialog also opens as the second step when you create a playbook.
+
+
+
+1. Select **Create an API key**.
+
+1. Enter a **Key name**, or keep the default.
+
+1. Under **What can this key do?**, select `read` to retrieve published content. Also select `propose` if your agent submits proposals.
+
+
+
+1. Choose an **Expiration**. The default is 90 days.
+
+1. Select **Create API key**.
+
+1. Copy the key, and then select **Done**.
+
+ > [!WARNING]
+ > The console shows the key only once, when you create it. Save it to a secure location before you select **Done**.
+
+To set more options, select **Customize in the full page** in the **Create API key** step. The console opens **Access & Identity** with this playbook selected.
+
+For what each action allows, see [Playbooks](/content/develop/ai/context-engine/agent-playbooks/concepts.md#playbooks).
+
+## Next steps
+
+- [Publish and retrieve your first FAQ](/content/develop/ai/context-engine/agent-playbooks/quickstart.md).
+- [View and manage the playbook](/content/operate/iris/agent-playbook/manage-playbook.md): add FAQs and skills, publish versions, test retrieval, and review proposals.
diff --git a/content/operate/iris/agent-playbook/manage-playbook.md b/content/operate/iris/agent-playbook/manage-playbook.md
new file mode 100644
index 0000000000..cc923ac05a
--- /dev/null
+++ b/content/operate/iris/agent-playbook/manage-playbook.md
@@ -0,0 +1,162 @@
+---
+alwaysopen: false
+categories:
+- docs
+- operate
+- iris
+description: Manage a playbook's FAQs, skills, versions, proposals, and settings in Redis Cloud, and test what agents retrieve.
+hideListLinks: true
+linktitle: Manage playbook
+title: View and manage a playbook
+weight: 15
+---
+
+After you [create a playbook](/content/operate/iris/agent-playbook/create-playbook.md), select **Agent Playbooks** under **Iris** in the Redis Cloud console menu to see the list of your playbooks.
+
+The list shows each playbook's **Status**, **Name**, **Playbook ID**, when its configuration was last updated, and its database. Select a playbook to open its **Configuration** tab.
+
+
+
+A playbook's page has the following tabs:
+
+- [**Configuration**](#configuration-tab): the playbook's settings, credentials, extraction, and retrieval policy.
+- [**Registry**](#registry-tab): the playbook's frequently asked questions (FAQs) and skills, and their versions.
+- [**Proposals**](#proposals-tab): suggested FAQs waiting for review.
+- [**Playground**](#playground-tab): a test of what an agent retrieves for a query.
+
+If your role can't read the playbook's content, you see only the **Configuration** tab.
+
+To connect an agent, select **Connect** on the playbook's page. See [Give an agent access](/content/operate/iris/agent-playbook/create-playbook.md#give-an-agent-access).
+
+
+
+## Registry tab
+
+The **Registry** tab lists the playbook's entries, with **FAQs** and **Skills** on separate tabs. For each entry, it shows the question or skill name, which version is published, the latest version, and when it was updated. Filter the list by **Publication** to find entries that are published, not published, or have a newer version waiting.
+
+### Add a FAQ
+
+1. On the **FAQs** tab, select **New FAQ**.
+1. In the **New FAQ** dialog, enter the **Question** and the **Answer** your agents should give.
+1. Optionally, open **Optional settings** and set the following:
+
+ | Setting | Description |
+ |:--------|:------------|
+ | **Alias (optional, immutable)** | A stable, human-readable identifier for the entry, using lowercase letters, numbers, and single hyphens, up to 64 characters. You can't change it after you create the entry. |
+ | **Retrieval intents** | Up to five task paraphrases, one per line, returned with the entry to help an agent interpret it. |
+ | **Filter attributes** | A JavaScript Object Notation (JSON) object of up to 32 attributes, such as locale or audience, that retrieval filters can match. |
+ | **Metadata** | JSON for any other context your agent or application needs. Retrieval filters don't search it. |
+
+1. Select **Create FAQ**.
+
+The console saves the FAQ as an unpublished version 1. Agents don't receive it until you [publish it](#publish-a-version).
+
+### Upload a skill
+
+A skill packages instructions and supporting files for a procedure, in the [Agent Skills](https://agentskills.io/home) format.
+
+1. On the **Skills** tab, select **Upload Skill**.
+1. In the **Upload Skill** dialog, drop or browse to an **Agent Skills ZIP** file, up to 5 MiB. The ZIP must contain one folder, named after the skill, with a `SKILL.md` file that begins with YAML `name` and `description` fields, plus any resources. Exclude `__MACOSX` files.
+1. Optionally, set the entry's **Optional settings**, as for a FAQ.
+1. Select **Upload Skill**.
+
+See [Manage skills](/content/develop/ai/context-engine/agent-playbooks/manage-skills.md) for how to package a skill.
+
+### Publish a version
+
+Every change to an entry creates a new version. Agents receive only the version you publish, so you can prepare and review a new version while agents keep using the current one.
+
+Select an entry to open its page. The published version card shows which version agents receive, and whether a newer version isn't published yet. The **Versions** table lists every version and its state.
+
+- To publish a version, select it and select **Publish version**, or select **Publish** in the **Versions** table. The **Versions** table also has a **Withdraw** button for the published version.
+- To roll back, publish an earlier version.
+- To stop serving the entry, select **Withdraw version**. Its versions stay available, and you can publish one again later.
+- To edit the entry, select **New version**. Saving creates an unpublished version.
+- To see what changed between two versions, select **Compare versions**.
+
+You can also publish an entry's newest version from the **Registry** list: select **Publish latest** from the entry's actions menu. The option shows the newest version number, such as **Publish latest v3**.
+
+### Delete an entry
+
+Deleting an entry permanently removes all its versions and resources.
+
+1. In the **Registry** list, select **Delete entry** from the entry's actions menu. To delete several entries, select them and select **Delete selected**.
+1. Select the confirmation checkbox, and then select **Delete**.
+
+You can also delete an entry from its page, in the **Danger zone**.
+
+## Proposals tab
+
+The **Proposals** tab holds suggested FAQs for review. Proposals can come from agents with `propose` access, or from [automatic FAQ extraction](#automatic-faq-extraction).
+
+The **Inbox** lists open proposals, with how much evidence supports each one and when to review it by. Select a proposal to review its candidate question and answer, and its **Supporting evidence**. Then:
+
+- Select **Accept as draft FAQ** to create an unpublished FAQ version from the candidate. Review it, then [publish it](#publish-a-version) when it's ready.
+- Select **Edit candidate** to change the question, answer, alias, intents, or attributes before you accept it.
+- Select **Move to trash** to dismiss it.
+
+More evidence means more observations, not greater accuracy. Check the candidate against its sources before you accept and publish it. See [Review proposals](/content/develop/ai/context-engine/agent-playbooks/proposals.md) for more.
+
+The **Trash** lists dismissed proposals until they're purged. Select **Restore to inbox** to review one again, or **Purge proposal** to delete it permanently.
+
+## Playground tab
+
+The **Playground** tab shows what an agent would retrieve for a query, using only published versions.
+
+1. Enter a **Query**, such as a question your agent needs to answer.
+1. Optionally, open **Options** to choose a **Search mode** (combined discovery, FAQ search, or skill search), a **Result limit**, pinned entries, or an **Attribute filter**. These options apply only to this test. They don't change the playbook's policy.
+1. Select **Run search**.
+
+**What your agent sees** lists the matching FAQs and skill previews, with each one's version and similarity score, and the full response as JSON. To change how discovery selects entries for every request, edit the [discovery policy](#discovery-policy).
+
+## Configuration tab
+
+The **Configuration** tab has the following sections. To change a section, select its **Edit** button, make your changes, and select **Save changes**.
+
+### General settings
+
+Shows the **Playbook name**, which you can change, and the **Playbook ID**, **Embedding model**, and **Redis Cloud database**, which you can't. It also lists the playbook's **Agent endpoint** for each region.
+
+### Embedding provider credential
+
+Appears only for a playbook that uses a **Bring Your Own** embedding model. It shows whether a provider API key is configured, and lets you replace it.
+
+### Automatic FAQ extraction
+
+Extraction turns your agents' conversations in Agent Memory into FAQ proposals for review. The playbook must be **Ready** to create or turn on extraction.
+
+1. Enter the **Source RAM store ID**, the ID of the Agent Memory service whose conversations to read, or choose one from your account. You can't change it after you create the extraction job.
+
+1. Set the **Session inactivity window**, how long after a session's last event it becomes eligible for extraction, from 1 to 1440 minutes. The default is 30 minutes.
+1. Select **Create extraction job**.
+1. Turn extraction on when you're ready.
+
+Extraction suggests FAQs only. It never publishes them: accepted proposals become unpublished FAQs that you review and publish. To stop extraction and remove its settings, use **Remove extraction job** in the [Danger zone](#danger-zone).
+
+### Discovery policy
+
+Controls how discovery selects entries for every request.
+
+| Setting | Description |
+|:--------|:------------|
+| **FAQ minimum score** | The minimum similarity, from 0 to 1, for a FAQ to match. |
+| **Skill minimum score** | The minimum similarity, from 0 to 1, for a skill to match. |
+| **Maximum results** | The most entries discovery returns, from 1 to 50. |
+| **Preview token budget** | An estimated token ceiling for one discovery response, from 64 tokens. Turn the switch off to disable it. The console keeps the saved number. |
+
+See [Configure discovery](/content/develop/ai/context-engine/agent-playbooks/retrieval.md#configure-discovery) for how these settings work together.
+
+### Proposal review policy
+
+Set the **Review window**, how long proposals stay available for review, from 1 to 365 days. **Maximum open proposals** shows the inbox's capacity, which you can't change in the console.
+
+### Danger zone
+
+| Action | What it does |
+|:-------|:-------------|
+| **Clear entries** | Permanently removes all FAQs, skills, versions, and resources, including published content. Proposals and settings stay. |
+| **Clear proposals** | Permanently removes all proposals from the inbox and trash. Entries and their versions stay. |
+| **Remove extraction job** | Stops automatic FAQ extraction and removes its source connection and settings. Your Agent Memory service, FAQs, and proposals stay. Appears only when an extraction job exists. |
+| **Delete** | Permanently deletes the playbook, with its entries, versions, resources, and proposals. |
+
+You can clear entries or proposals only while the playbook is **Ready**. To confirm clearing or deleting, select the confirmation checkbox in the dialog. None of these actions can be undone. If a clear fails partway, check the playbook's current state before you retry.
diff --git a/content/operate/iris/context-gateway/_index.md b/content/operate/iris/context-gateway/_index.md
index 23ddffa213..84c7c731ef 100644
--- a/content/operate/iris/context-gateway/_index.md
+++ b/content/operate/iris/context-gateway/_index.md
@@ -1,6 +1,6 @@
---
title: Redis Context Gateway
-description: Deploy and operate Redis Context Gateway on your own infrastructure.
+description: Deploy and operate Redis Context Gateway on Redis Cloud or your own infrastructure.
linkTitle: Context Gateway
alwaysopen: false
categories:
@@ -11,15 +11,22 @@ weight: 22
hideListLinks: true
aliases:
- /operate/iris/context-retriever/
-- /operate/iris/context-retriever/create-service/
-- /operate/iris/context-retriever/view-service/
-- /operate/iris/context-retriever/view-admin-keys/
- /operate/rc/context-engine/context-retriever/
---
-Deploy Redis Context Gateway on Kubernetes to give agents one Model Context Protocol (MCP) endpoint for the tools of any MCP server, plus tools over your Redis data.
+Redis Context Gateway gives agents one Model Context Protocol (MCP) endpoint for the tools of any MCP server, plus tools over your Redis data.
-## Self-managed
+## Deployment options
+
+### Redis Cloud
+
+Use Redis Context Gateway as a managed service on Redis Cloud.
+
+[Create a Context Gateway](/content/operate/iris/context-gateway/create-gateway.md) and connect an agent, or [view and manage an existing Gateway](/content/operate/iris/context-gateway/manage-gateway.md).
+
+### Self-managed
+
+Deploy Redis Context Gateway on Kubernetes to run it on your own infrastructure.
[Start with the self-managed deployment guide](/content/operate/iris/context-gateway/self-managed/_index.md).
diff --git a/content/operate/iris/context-gateway/create-gateway.md b/content/operate/iris/context-gateway/create-gateway.md
new file mode 100644
index 0000000000..ff0280e580
--- /dev/null
+++ b/content/operate/iris/context-gateway/create-gateway.md
@@ -0,0 +1,176 @@
+---
+alwaysopen: false
+categories:
+- docs
+- operate
+- iris
+description: Create a Context Gateway in Redis Cloud, add its first MCP server or Context Surface, and connect an agent.
+hideListLinks: true
+linktitle: Create gateway
+title: Create a Context Gateway
+weight: 5
+aliases:
+- /operate/iris/context-retriever/create-service/
+---
+
+A Context Gateway gives your agents one Model Context Protocol (MCP) endpoint for the tools of the systems behind it. Each of those systems is an *Upstream*: an MCP server you run or use, or a Context Surface that generates search tools from a data model over your Redis data. This guide walks you through creating a Gateway in the Redis Cloud console, adding its first Upstream, and connecting an agent.
+
+## Before you begin
+
+To add an MCP server, you need its endpoint URL, and its credentials if it requires them. The server must use the Streamable HTTP transport and be reachable from Redis Cloud.
+
+If you don't have permission to make a change, the console says so and tells you to ask your account administrator for access.
+
+## Create a Gateway
+
+1. From the [Redis Cloud console](https://cloud.redis.io/), select **Context Gateways** under **Iris** in the menu.
+
+ If you don't have a Gateway yet, you see an introduction to Context Gateway. Otherwise, you see the list of your Gateways.
+
+
+
+1. Select **New gateway**.
+
+1. In the **Create gateway** dialog, enter a **Name** for the Gateway, up to 128 characters. Add a **Description** if you want one.
+
+1. Choose a **Tool exposure** mode:
+
+ | Mode | What agents see | Use it when |
+ |:-----|:----------------|:------------|
+ | **Search** | Two tools, `search_tools` and `run_tool`. Agents find a tool with `search_tools`, then run it with `run_tool`. This is the default. | The Gateway serves many tools. Agents load two tools instead of all of them. |
+ | **Full** | Every tool, named `namespace.tool`. | The Gateway serves only a few tools. |
+
+ You can change the mode later on the Gateway's [**Configuration** tab](/content/operate/iris/context-gateway/manage-gateway.md#configuration-tab).
+
+
+
+1. Select **Create gateway**.
+
+When the Gateway is ready, the dialog offers to add its first Upstream. Select [**Add MCP server**](#add-an-mcp-server) or [**Create Context Surface**](#create-a-context-surface). To add one later, select **Skip for now**, which opens the Gateway's **Configuration** tab.
+
+## Add an MCP server
+
+Add an MCP server to serve its tools through the Gateway. The Gateway connects to the server, discovers its tools, and serves them under the Upstream's namespace.
+
+1. Select **Add MCP server**, either after you create the Gateway or from the Gateway's **Upstreams** tab.
+
+1. In the **Server** section, enter the following:
+
+ | Setting | Description |
+ |:--------|:------------|
+ | **Name** | A name for the Upstream, up to 128 characters. Required. |
+ | **Namespace** | The prefix for this Upstream's tool names. Agents see its tools as `namespace.tool_name`. Use up to 32 lowercase letters and digits, joined by single hyphens. Leave it empty to make one from the name. You can't change it after you add the Upstream. |
+ | **Endpoint URL** | The absolute HTTP or HTTPS URL of the MCP server, such as `https://mcp.example.com/mcp`. The URL can't contain a user name or password. Required. |
+
+ The **Transport** is always **Streamable HTTP**.
+
+1. In the **Authentication** section, add the credentials the server needs. If you add none, the Gateway sends no credentials.
+
+ - To send a token in the `Authorization` header, select **Add bearer token** and enter the **Bearer token**.
+ - To send a header, select **Add header**, then enter the header's name, such as `X-Api-Key`, and its value. Add one row for each header.
+
+ You can use a bearer token and headers together. The console stores secrets encrypted and never shows them again. You can't add a header the Gateway sets itself, such as `Host` or `Content-Type`, or an `Authorization` header alongside a bearer token.
+
+1. Under **Availability**, leave the Upstream enabled so agents see its tools as soon as discovery finishes. Turn it off to add the Upstream without serving its tools yet.
+
+1. Select **Add MCP server**.
+
+The Gateway connects to the server and discovers its tools, which can take a few seconds. The Upstream's page then shows how many tools it found.
+
+
+
+### If discovery fails
+
+If the Gateway can't discover the server's tools, it still adds the Upstream, without tools. The Upstream's page shows the error and how to fix it. Fix the problem, then select **Refresh**. Don't add the server again, because the Upstream already exists.
+
+| Status | Fix |
+|:-------|:----|
+| 422 | Check the credentials in the Upstream's configuration, then refresh. |
+| 424 | Check that the endpoint URL is right and that the server speaks MCP, then refresh. |
+| 408 | The server was slow to list its tools. Refresh to try again. |
+
+## Create a Context Surface
+
+A Context Surface generates search tools from a data model over the records in a Redis database. You describe your records as entities with fields, and the Gateway generates the tools agents use to find and read them. See [Write a data model](/content/develop/ai/context-engine/context-gateway/manage-context-surfaces.md#write-a-data-model) for how the data model shapes the tools.
+
+1. Select **Create Context Surface**, either after you create the Gateway or from the Gateway's **Upstreams** tab.
+
+1. On the **Settings** step, enter the following, then select **Entities**:
+
+ | Setting | Description |
+ |:--------|:------------|
+ | **Name** | A name for the Upstream, up to 128 characters. Required. |
+ | **Namespace** | The prefix for this Upstream's tool names, with the same rules as for an MCP server. Optional. |
+ | **Database** | The database in your account that holds your records. The Gateway must be able to reach it, so its CIDR allow list can't block the Gateway. You can't change it after you create the Surface. Required. |
+ | **Description** | What the data holds. Agents read it with the tools. Optional. |
+
+1. On the **Entities** step, add each kind of record in your data model. Select **Add entity**, then enter its settings:
+
+ | Setting | Description |
+ |:--------|:------------|
+ | **Entity name** | The name of the entity, such as `Customer`. Required. |
+ | **Key template** | The Redis key pattern for the entity's records, such as `customer:{id}`. Leave it empty to use `{name}:{id}`. |
+ | **Description** | What the entity represents. Optional. |
+ | **Storage** | How the records are stored: **JSON** (the default) or **Hash**. |
+
+ To start from a data model you already have, select **Import JSON**, then upload or paste a JavaScript Object Notation (JSON) object of up to 1 MiB, in the format the Iris command-line interface (CLI) writes. Importing replaces the entities and fields on the page.
+
+ If a key template has no placeholder such as `{id}`, every record of that entity maps to the same key, and the console asks you to confirm.
+
+1. Select **Fields**. For each entity, select **Add field**, then enter its settings:
+
+ | Setting | Description |
+ |:--------|:------------|
+ | **Field** | The field name, such as `customer_id`. Required. |
+ | **PK** | Whether the field is the entity's primary key (PK). A PK field can't have indexes. |
+ | **Related entity** | Another entity this field points to, which creates a relationship. Optional. |
+ | **Type** | One of `str`, `int`, `float`, `bool`, `list[str]`, `list[float]`, `object`, `geo`, or `timestamp`. |
+ | **Indexes** | The index that lets agents search or filter on the field. A field can have at most one index. The choices depend on the type, and `geo` and `timestamp` fields always have one. |
+
+ To adjust an index, open its **Index settings**:
+
+ | Index | Settings |
+ |:------|:---------|
+ | Text | **Weight**, how much a match in this field counts (1 by default), and **No stemming**. |
+ | Numeric | **Sortable**, which lets list tools sort by the field. On by default. |
+ | Tag | **Allowed values**, one per line. The filter tool offers only these. Leave it empty to allow any value. |
+ | Vector | **Vector size** (1536 by default), **Distance metric** (cosine, euclidean, or dot_product), **Embeds the text of** a `str` field or none, and the **Embedding model**. |
+
+ Under **Relationships**, you can also add a relationship directly, with its name, target entity, and source field.
+
+1. Select **Create Context Surface**.
+
+The Gateway generates the tools from your data model, which can take a few seconds. The Upstream's page then shows how many tools it generated. If the console finds problems in the data model, it marks the entities that need a fix and lists the errors.
+
+To create the Surface first and add its data model later, select **Create without a data model** on the **Entities** step. A Surface without a data model has no tools until you add one.
+
+
+
+## Connect an agent
+
+Agents connect to the Gateway's MCP endpoint with an agent key that has a `use` grant on the Gateway.
+
+1. On the Gateway's **Configuration** tab, find the **Connect an agent to start using these tools** banner and select **Create API key**.
+
+ The banner shows **Create API key** only while the Gateway has no active agent key. To create another key, select **Connect**, then **Create an API key**.
+
+1. In the **Create API key** dialog, keep or change the **Key name**. Under **What can this key do?**, choose what the key can do on this Gateway, then set its **Expiration**. To set more options, select **Customize in the full page**, which opens **Access & Identity**.
+
+1. Select **Create API key**.
+
+ > [!WARNING]
+ > The console shows the key only once, when you create it. Copy it and save it to a secure location before you select **Done**.
+
+1. Select **Done**, then select **Connect** in the banner.
+
+1. In the **Connect to Context Gateway** dialog, copy the **Endpoint** under **Connection details**. Under **Quick connect**, select **Claude Code**, **Cursor**, or **ADK**, and copy its sample. Replace `` with your agent key.
+
+
+
+
+
+## Next steps
+
+- [View and manage a Context Gateway](/content/operate/iris/context-gateway/manage-gateway.md).
+- [Connect with MCP](/content/develop/ai/context-engine/context-gateway/mcp.md) from other clients, and use the Gateway's tools.
+- Follow the [Context Gateway quickstart](/content/develop/ai/context-engine/context-gateway/quickstart.md) to list and call your first tools.
diff --git a/content/operate/iris/context-gateway/manage-gateway.md b/content/operate/iris/context-gateway/manage-gateway.md
new file mode 100644
index 0000000000..684117834f
--- /dev/null
+++ b/content/operate/iris/context-gateway/manage-gateway.md
@@ -0,0 +1,92 @@
+---
+alwaysopen: false
+categories:
+- docs
+- operate
+- iris
+description: View and manage a Context Gateway and its Upstreams in Redis Cloud.
+hideListLinks: true
+linktitle: Manage gateway
+title: View and manage a Context Gateway
+weight: 15
+aliases:
+- /operate/iris/context-retriever/view-service/
+- /operate/iris/context-retriever/view-admin-keys/
+---
+
+After you [create a Context Gateway](/content/operate/iris/context-gateway/create-gateway.md), select **Context Gateways** under **Iris** in the Redis Cloud console menu to see the list of your Gateways.
+
+The list shows each Gateway's **Name**, its **Tool exposure** mode, and its **Created date**. Select a Gateway to open it.
+
+
+
+The Gateway's page has the **Configuration** and **Upstreams** tabs, and opens on the **Configuration** tab.
+
+
+## Configuration tab
+
+The **Configuration** tab starts with a banner for connecting agents. Select **Connect** or **Create API key** there to [connect an agent](/content/operate/iris/context-gateway/create-gateway.md#connect-an-agent).
+
+The **General settings** section shows the Gateway's **Gateway ID**, its Model Context Protocol (MCP) endpoint (**MCP endpoint**), its **Created date**, and its **Configuration updated date**. To change a setting, select **Edit**, make your changes, and select **Save changes**.
+
+| Setting | Description |
+|:--------|:------------|
+| **Name** | The Gateway's name, up to 128 characters. |
+| **Description** | An optional description. |
+| **Tool exposure** | **Search** or **Full**. Agents get the new mode on their next request. With many tools, full mode fills more of their context. |
+
+If someone else changed the Gateway while you were editing, the console asks you to reload it and apply your changes again. If the Gateway is in search mode and serves only a few tools, the tab suggests full mode.
+
+### Delete a Gateway
+
+Deleting a Gateway removes its MCP endpoint, and agents that use it lose access right away. You can't delete a Gateway that has Upstreams, because deleting a Gateway never deletes its Upstreams for you. [Delete its Upstreams](#delete-an-upstream) first. Until you do, the **Danger zone** section lists them.
+
+1. On the Gateway's **Configuration** tab, select **Delete gateway** in the **Danger zone** section.
+1. Select the **Yes, I want to delete this resource** checkbox.
+1. Select **Delete gateway**.
+
+This action can't be undone.
+
+## Upstreams tab
+
+The **Upstreams** tab lists the Gateway's Upstreams, with each one's **Name**, **Namespace**, **Type** (**MCP server** or **Context Surface**), number of **Tools**, whether it's **Enabled**, and its **Created date**.
+
+From this tab, you can:
+
+- [Add an MCP server](/content/operate/iris/context-gateway/create-gateway.md#add-an-mcp-server) or [create a Context Surface](/content/operate/iris/context-gateway/create-gateway.md#create-a-context-surface).
+- Turn an Upstream on or off with its **Enabled** switch. A disabled Upstream keeps its configuration and tools, but agents see none of its tools.
+- Use an Upstream's actions menu to open, refresh, enable or disable, or delete it.
+
+Select an Upstream to open its page, which has the **Configuration** and **Tools** tabs and opens on the **Configuration** tab.
+
+### Refresh an Upstream
+
+Select **Refresh** on an Upstream to discover an MCP server's tools again, or to regenerate a Context Surface's tools. Refresh after the server's tools change, or after you fix a problem that stopped discovery. If the refresh fails, the console shows the error and how to fix it.
+
+### Tools tab
+
+The **Tools** tab lists the Upstream's tools by their `namespace.tool` names, with each tool's description and annotations, such as **Read-only** or **Destructive**.
+
+The tab also shows each tool's **Cache** and **Compression** policy. You can't change these policies in the console.
+
+
+For a Context Surface, the **Entities** section shows its data model. Select **Edit data model** to change it. Saving regenerates the Surface's tools and removes the policies of any tools the new model drops.
+
+### Configuration tab
+
+The **Configuration** tab shows the Upstream's settings and its **Upstream ID**. In the **General** section, select **Edit name** to rename the Upstream, or use the **Status** switch to turn it on or off.
+
+- For an MCP server, select **Edit MCP server** to change the **Endpoint URL** and the authentication. When you change the endpoint, enter every secret again, so the Gateway never sends credentials to a host you didn't intend. Saving discovers the server's tools again.
+- For a Context Surface, you can replace the data model from a JavaScript Object Notation (JSON) file with **Replace from JSON**. Replacing the data model regenerates the Surface's tools.
+
+You can't change an Upstream's namespace, or a Context Surface's **Surface database ID**, after you create it.
+
+### Delete an Upstream
+
+Deleting an Upstream removes its tools from the Gateway right away, along with their tool policies.
+
+1. On the Upstream's **Configuration** tab, select **Delete Upstream** in the **Danger zone** section. **Delete** in the Upstream's actions menu on the **Upstreams** tab opens the same step.
+1. Select the **Yes, I want to delete this resource** checkbox.
+1. Select **Delete Upstream**.
+
+When you delete a Context Surface, the Gateway also drops the search indexes it built on the Surface database. Your records stay. If the Gateway can't drop the indexes, you can retry once the database is fixed, or select **Delete anyway**. Then indexes named `idx::*` stay on the database until someone drops them.
diff --git a/content/operate/iris/lens/_index.md b/content/operate/iris/lens/_index.md
new file mode 100644
index 0000000000..7098837745
--- /dev/null
+++ b/content/operate/iris/lens/_index.md
@@ -0,0 +1,26 @@
+---
+title: Lens
+description: Create and operate Lens on Redis Cloud.
+linkTitle: Lens
+alwaysopen: false
+categories:
+- docs
+- operate
+- iris
+weight: 27
+hideListLinks: true
+bannerText: Lens is currently in beta. Features and behavior are subject to change.
+bannerChildren: true
+---
+
+Lens traces your AI agent's turns, so you can see what each source returned, what entered the prompt, and how each step went.
+
+## Deployment options
+
+### Redis Cloud
+
+Use Lens as a managed service on Redis Cloud.
+
+[Create Lens](/content/operate/iris/lens/create-lens.md), connect your agent, and open Lens in the Redis Cloud console.
+
+After setup, use the [developer quickstart](/content/develop/ai/context-engine/lens/quickstart.md) to trace your first turn.
diff --git a/content/operate/iris/lens/create-lens.md b/content/operate/iris/lens/create-lens.md
new file mode 100644
index 0000000000..eb624faf39
--- /dev/null
+++ b/content/operate/iris/lens/create-lens.md
@@ -0,0 +1,104 @@
+---
+alwaysopen: false
+categories:
+- docs
+- operate
+- iris
+description: Create Lens in Redis Cloud, create the keys your agents and readers use, open Lens in the console, and delete it.
+hideListLinks: true
+linktitle: Create Lens
+title: Create Lens
+weight: 5
+---
+
+Lens records each turn your agent handles, so you can open it later and see what the agent recalled, what it sent to the model, and what came back. This guide walks you through creating Lens in the Redis Cloud console, connecting an agent, and opening its sessions.
+
+## Before you begin
+
+Each Redis Cloud account has one Lens instance, which stores its data in two databases you choose:
+
+| Database | Holds | Requirements |
+|:---------|:------|:-------------|
+| **Records database** | Turns, sessions, and their search indexes. | A Redis Cloud Essentials or Pro database. |
+| **Content database** | Captured prompts, responses, and tool payloads. | Any Redis Cloud database, including Redis Flex. |
+
+If you don't have a database, see [Create a database](/content/operate/rc/databases/create-database/_index.md).
+
+If a database's Classless Inter-Domain Routing (CIDR) allow list blocks Lens, the **Create Lens** dialog lists the Internet Protocol (IP) addresses to add, and you can't create Lens until you add them. Add them under **Security** in the database's settings.
+
+## Create Lens
+
+1. From the [Redis Cloud console](https://cloud.redis.io/), select **Lens** under **Iris** in the menu.
+
+ If you haven't created Lens yet, you see an introduction to Lens.
+
+
+
+1. Select **New lens**.
+
+ **New lens** is unavailable until your account has a database for each role in [Before you begin](/content/operate/iris/lens/create-lens.md#before-you-begin). If you don't see it, you don't have permission to create Lens.
+
+1. In the **Create Lens** dialog, choose a **Records database** and a **Content database**. You can't change them after you create Lens.
+
+1. Select **Create**.
+
+When Lens is ready, the **Lens is ready** dialog shows the **Instance ID** and the **Endpoint**, with the steps to connect your agent:
+
+1. Install the Redis Iris software development kit (SDK).
+1. Set `IRIS_LENS_ENDPOINT` to the endpoint, and `IRIS_LENS_API_KEY` to an agent's API key.
+1. Add Lens to your agent: call `lens.init` once, and wrap each turn in `lens.turn`.
+
+Copy each step's code with **Copy code**. See [Instrument an agent](/content/develop/ai/context-engine/lens/instrument.md) for what to record in a turn.
+
+If one of the databases is unavailable, the dialog shows a warning in place of the endpoint and the connection steps.
+
+Select **Open Lens** to go to Lens, or **I'll do this later** to close the dialog.
+
+
+
+## Create API keys
+
+Agents send turns to Lens with an API key that has the `ingest` scope. Readers, such as the [read application programming interface (API)](/content/develop/ai/context-engine/lens/read-api.md) client, need a key with the `read` scope. Give each agent its own ingest key, so an agent's key can't read other agents' turns.
+
+To create an agent's key:
+
+1. In the **Lens is ready** dialog, select **Create API key**. The console opens **Create API key** with **ingest** already selected for your Lens instance.
+1. Enter a **Key name**. Use letters, numbers, periods, underscores, or hyphens.
+1. Choose an **Expiration**. The default is 90 days.
+1. Select **Create key**.
+1. Copy the key from the **API Key Generated** dialog, and then select **Close**.
+
+To create a read key:
+
+1. Select **Access & Identity** under **Iris** in the console menu.
+1. Select **New API key**.
+1. Enter a **Key name** and choose an **Expiration**.
+1. Under **Access**, expand **Lens** and select **Lens instance**. **ingest** is selected by default.
+1. Select **read**, and then clear **ingest**.
+1. Select **Create key**, and copy the key from the **API Key Generated** dialog.
+
+> [!WARNING]
+> The console shows a key only once, in the **API Key Generated** dialog. Save it to a secure location before you select **Close**.
+
+See [Configure Lens](/content/develop/ai/context-engine/lens/configure.md) for the environment variables each key goes in.
+
+## Open Lens
+
+Select **Lens** under **Iris** in the Redis Cloud console menu. Then select an agent to see its sessions. Sessions appear as soon as the agent handles a turn.
+
+See [Inspect sessions](/content/develop/ai/context-engine/lens/inspect-sessions.md) to find a session and read each turn's steps.
+
+## Delete Lens
+
+Deleting Lens removes the Lens instance and its Lens data from both databases. You can't undo it. Because you can't change the databases of an existing Lens, delete Lens and create it again to use different databases.
+
+1. In Lens, select , and then select **Delete lens instance**.
+1. Select **Yes, I want to delete this resource**.
+1. Select **Delete lens instance**.
+
+The console returns to the Lens introduction.
+
+## Next steps
+
+- [Trace your first turn](/content/develop/ai/context-engine/lens/quickstart.md).
+- [Integrate with an agent framework](/content/develop/ai/context-engine/lens/agent-integration.md), such as LangGraph or the OpenAI Agents SDK.
diff --git a/static/images/rc/agent-memory-add-api-key.png b/static/images/rc/agent-memory-add-api-key.png
deleted file mode 100644
index a6b60aa563..0000000000
Binary files a/static/images/rc/agent-memory-add-api-key.png and /dev/null differ
diff --git a/static/images/rc/agent-memory-get-started.png b/static/images/rc/agent-memory-get-started.png
deleted file mode 100644
index b88727b6da..0000000000
Binary files a/static/images/rc/agent-memory-get-started.png and /dev/null differ
diff --git a/static/images/rc/agent-memory-new-api-key.png b/static/images/rc/agent-memory-new-api-key.png
deleted file mode 100644
index ccc6bce0c9..0000000000
Binary files a/static/images/rc/agent-memory-new-api-key.png and /dev/null differ
diff --git a/static/images/rc/agent-memory-service-key.png b/static/images/rc/agent-memory-service-key.png
deleted file mode 100644
index 57b083de74..0000000000
Binary files a/static/images/rc/agent-memory-service-key.png and /dev/null differ
diff --git a/static/images/rc/agent-memory-service-list.png b/static/images/rc/agent-memory-service-list.png
deleted file mode 100644
index 79e7292df5..0000000000
Binary files a/static/images/rc/agent-memory-service-list.png and /dev/null differ
diff --git a/static/images/rc/agent-memory-view-actions.png b/static/images/rc/agent-memory-view-actions.png
deleted file mode 100644
index 3c079ee63d..0000000000
Binary files a/static/images/rc/agent-memory-view-actions.png and /dev/null differ
diff --git a/static/images/rc/agent-memory-view-api-keys.png b/static/images/rc/agent-memory-view-api-keys.png
deleted file mode 100644
index a57aded723..0000000000
Binary files a/static/images/rc/agent-memory-view-api-keys.png and /dev/null differ
diff --git a/static/images/rc/agent-memory-view-general.png b/static/images/rc/agent-memory-view-general.png
deleted file mode 100644
index ca648b77b3..0000000000
Binary files a/static/images/rc/agent-memory-view-general.png and /dev/null differ
diff --git a/static/images/rc/iris-overview.png b/static/images/rc/iris-overview.png
deleted file mode 100644
index 5e51410776..0000000000
Binary files a/static/images/rc/iris-overview.png and /dev/null differ