From 32aa48b231b84fd4a4b94770405d3ab79f6a5a78 Mon Sep 17 00:00:00 2001 From: mich-elle-luna Date: Tue, 27 Oct 2026 15:23:15 -0700 Subject: [PATCH 1/2] Add Redis Cloud setup docs for the Iris GA services Document the Redis Cloud console for Context Gateway, Agent Playbooks, and Lens, from the new irisultra screens in cloud-ui: - Context Gateway: create a Gateway, add an MCP server or Context Surface, connect an agent, and manage Gateways and Upstreams. - Agent Playbooks: a new operator section to create a playbook and manage its registry, versions, proposals, playground, and settings. - Lens: a new operator section to create Lens, its API keys, and where to open it. Update the Agent Memory Redis Cloud pages for the new console: API keys move to Access & Identity, the short-term TTL default is 24 hours, flush needs a confirmation checkbox, and labels follow the console. Remove the screenshots of the old console. Point the Playbooks, Lens, and Agent Memory developer pages at the new operator pages, and update the Iris operator page for the GA services. Open questions for product are marked as TODO comments in the pages. Co-Authored-By: Claude Opus 5.5 (1M context) --- .../context-engine/agent-memory/quickstart.md | 2 +- .../context-engine/agent-playbook/_index.md | 2 +- .../agent-playbook/retrieval.md | 4 +- .../develop/ai/context-engine/lens/_index.md | 4 +- .../ai/context-engine/lens/configure.md | 4 +- .../context-engine/lens/inspect-sessions.md | 4 +- .../ai/context-engine/lens/quickstart.md | 9 +- ...-agent-memory-quickstart-create-service.md | 8 +- content/operate/iris/_index.md | 17 +- content/operate/iris/agent-memory/_index.md | 3 - .../iris/agent-memory/create-service.md | 48 ++--- .../operate/iris/agent-memory/view-service.md | 92 ++++----- content/operate/iris/agent-playbook/_index.md | 24 +++ .../iris/agent-playbook/create-playbook.md | 76 ++++++++ .../iris/agent-playbook/manage-playbook.md | 159 ++++++++++++++++ .../operate/iris/context-gateway/_index.md | 19 +- .../iris/context-gateway/create-gateway.md | 178 ++++++++++++++++++ .../iris/context-gateway/manage-gateway.md | 99 ++++++++++ content/operate/iris/lens/_index.md | 26 +++ content/operate/iris/lens/create-lens.md | 75 ++++++++ static/images/rc/agent-memory-add-api-key.png | Bin 16559 -> 0 bytes static/images/rc/agent-memory-get-started.png | Bin 72698 -> 0 bytes static/images/rc/agent-memory-new-api-key.png | Bin 4377 -> 0 bytes static/images/rc/agent-memory-service-key.png | Bin 16418 -> 0 bytes .../images/rc/agent-memory-service-list.png | Bin 19777 -> 0 bytes .../images/rc/agent-memory-view-actions.png | Bin 28465 -> 0 bytes .../images/rc/agent-memory-view-api-keys.png | Bin 25758 -> 0 bytes .../images/rc/agent-memory-view-general.png | Bin 18661 -> 0 bytes static/images/rc/iris-overview.png | Bin 132952 -> 0 bytes 29 files changed, 728 insertions(+), 125 deletions(-) create mode 100644 content/operate/iris/agent-playbook/_index.md create mode 100644 content/operate/iris/agent-playbook/create-playbook.md create mode 100644 content/operate/iris/agent-playbook/manage-playbook.md create mode 100644 content/operate/iris/context-gateway/create-gateway.md create mode 100644 content/operate/iris/context-gateway/manage-gateway.md create mode 100644 content/operate/iris/lens/_index.md create mode 100644 content/operate/iris/lens/create-lens.md delete mode 100644 static/images/rc/agent-memory-add-api-key.png delete mode 100644 static/images/rc/agent-memory-get-started.png delete mode 100644 static/images/rc/agent-memory-new-api-key.png delete mode 100644 static/images/rc/agent-memory-service-key.png delete mode 100644 static/images/rc/agent-memory-service-list.png delete mode 100644 static/images/rc/agent-memory-view-actions.png delete mode 100644 static/images/rc/agent-memory-view-api-keys.png delete mode 100644 static/images/rc/agent-memory-view-general.png delete mode 100644 static/images/rc/iris-overview.png 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-playbook/_index.md b/content/develop/ai/context-engine/agent-playbook/_index.md index da4d37a9d9..83885f1a93 100644 --- a/content/develop/ai/context-engine/agent-playbook/_index.md +++ b/content/develop/ai/context-engine/agent-playbook/_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-playbook/quickstart" >}}). ## Manage playbook entries diff --git a/content/develop/ai/context-engine/agent-playbook/retrieval.md b/content/develop/ai/context-engine/agent-playbook/retrieval.md index 127e26961d..77597ba400 100644 --- a/content/develop/ai/context-engine/agent-playbook/retrieval.md +++ b/content/develop/ai/context-engine/agent-playbook/retrieval.md @@ -68,9 +68,7 @@ Your administrator sets the playbook controls: | `discovery.maxResults` | `10` | Combined result ceiling for pins and discovered matches. | | `discovery.maxPreviewTokens` | Disabled | Estimated token ceiling for the discovery response. | -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/_index.md b/content/develop/ai/context-engine/lens/_index.md index 99776e73b1..6814a380dc 100644 --- a/content/develop/ai/context-engine/lens/_index.md +++ b/content/develop/ai/context-engine/lens/_index.md @@ -46,8 +46,8 @@ When your agent gives a wrong answer, Lens shows where it went wrong. For exampl ## Get started -1. Get your Lens endpoints and keys from your administrator. - +1. Get your Lens endpoints and keys. On Redis Cloud, [create Lens and its keys](/content/operate/iris/lens/create-lens.md). Self-managed, get them from your administrator. + 1. [Trace your first turn](/content/develop/ai/context-engine/lens/quickstart.md). ## Use Lens diff --git a/content/develop/ai/context-engine/lens/configure.md b/content/develop/ai/context-engine/lens/configure.md index 148ea2078a..0a857950f4 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..f2df40965e 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. If 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 9aae5c3db7..9b91be38c1 100644 --- a/content/develop/ai/context-engine/lens/quickstart.md +++ b/content/develop/ai/context-engine/lens/quickstart.md @@ -15,11 +15,12 @@ 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 Lens ingest endpoint and an ingest key, for sending turns. - The Lens read endpoint, your instance ID, and a read key, for reading them back. - + + You also need Python 3.11 or later. The cURL example uses Bash and jq. This walkthrough needs no agent framework or model provider key. @@ -73,8 +74,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. If 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..597783254f 100644 --- a/content/embeds/rc-agent-memory-quickstart-create-service.md +++ b/content/embeds/rc-agent-memory-quickstart-create-service.md @@ -1,7 +1,7 @@ 1. Sign in to the [Redis Cloud console](https://cloud.redis.io/). -1. Select **Agent Memory** from the navigation menu. +1. Select **Agent Memory** under **Iris** in the navigation menu. 1. If Redis Cloud displays service terms, review and accept them. -1. Select **Create custom service**. +1. Select **Create Agent Memory service**, or **New Service** if you already have a service. Then select **Create custom service**. 1. Enter a service name, select an eligible database, and select its `default` user. 1. Under **Memory configuration**, enter these values: @@ -12,9 +12,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. [Create an API key]({{< relref "/operate/iris/agent-memory/view-service#create-an-api-key" >}}) in **Access & Identity** with access to the service's memory store. Copy the key's token 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 11cb775d07..bea33de968 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: @@ -9,30 +9,31 @@ categories: - iris hideListLinks: true weight: 45 -bannerText: Agent Memory and Context Retriever are currently available in preview. Features and behavior are subject to change. --- -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. - -![The Redis Iris overview page in the Redis Cloud console, with cards for Data Pipelines, Context Retriever, Agent Memory, and LangCache.](/images/rc/iris-overview.png) -{width="100%" class="border border-redis-pen-300 rounded-lg"} +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="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. -![The Agent Memory page in the Redis Cloud console, with Quick create and Create custom service options.](/images/rc/agent-memory-get-started.png) -{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..75dbdea826 100644 --- a/content/operate/iris/agent-memory/create-service.md +++ b/content/operate/iris/agent-memory/create-service.md @@ -21,14 +21,16 @@ 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. +From the [Redis Cloud console](https://cloud.redis.io/), select **Agent Memory** under **Iris** in the menu. If Redis Cloud displays service terms, review and accept them. -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. +If you haven't created an Agent Memory service yet, you see an introduction to Agent Memory. Select **Create Agent Memory service**. Otherwise, select **New Service** from your list of services. ![The New service button.](/images/rc/langcache-new-service.png) {width="150px"} @@ -40,21 +42,11 @@ From here: ![The Quick create button.](/images/rc/langcache-quick-create.png) {width="150px"} - 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. - - ![The Agent Memory service key window. Use the Copy button to save the service key to the clipboard.](/images/rc/agent-memory-service-key.png) - {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 service key]({{< relref "/operate/iris/agent-memory/view-service#replace-service-api-key" >}}) to be able to use the Agent Memory API. - - After Redis Cloud creates your service, [continue with the quickstart]({{< relref "/develop/ai/context-engine/agent-memory/quickstart" >}}). + After Redis Cloud creates your Agent Memory service, it opens the service's page. [Create an API key]({{< relref "/operate/iris/agent-memory/view-service#create-an-api-key" >}}) for your agent, then [continue with the quickstart]({{< relref "/develop/ai/context-engine/agent-memory/quickstart" >}}). -- If you want to customize your Redis Agent Memory service, select **Create custom**. +- If you want to customize your Redis Agent Memory service, select **Create custom service**. - ![The Create custom button to create an Agent Memory service.](/images/rc/agent-memory-custom-service.png) + ![The Create custom service button to create an Agent Memory service.](/images/rc/agent-memory-custom-service.png) {width="150px"} This takes you to the **Create Agent Memory Service** page. This page is divided into the following sections: @@ -73,8 +65,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 64 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 +77,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,15 +219,7 @@ When you are done setting the details of your Agent Memory service, select **Cre ![Use the Create button to create an Agent Memory service.](/images/rc/button-access-management-user-key-create.png) -A window containing your Agent Memory service key will appear. Select **Copy** to copy the key to your clipboard. - -![The Agent Memory service key window. Use the Copy button to save the service key to the clipboard.](/images/rc/agent-memory-service-key.png) -{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 service key]({{< relref "/operate/iris/agent-memory/view-service#replace-service-api-key" >}}) to be able to use the Redis Agent Memory API. +Redis Cloud creates the service and opens its page. To connect an agent, [create an API key]({{< relref "/operate/iris/agent-memory/view-service#create-an-api-key" >}}) with access to the service. If an error occurs, verify that your database is active. For help, [contact support](https://redis.io/support/). diff --git a/content/operate/iris/agent-memory/view-service.md b/content/operate/iris/agent-memory/view-service.md index 3b8b09d2a7..d3d63f1e61 100644 --- a/content/operate/iris/agent-memory/view-service.md +++ b/content/operate/iris/agent-memory/view-service.md @@ -14,41 +14,37 @@ 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. -![The Agent Memory service in the Agent Memory service list.](/images/rc/agent-memory-service-list.png) - -Select your Agent Memory service from the list to view the service's details. +Select your Agent Memory service from the list to view the service's details. The service's page has the [Configuration](#configuration-tab), [API explorer](#api-explorer-tab), and [Metrics](#metrics-tab) tabs. ## 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 shortcuts to explore the API, connect, and open the API docs, 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** at the top of the page, make your changes, and select **Save**. ### General settings The **General settings** section provides the connection details and general settings for your Agent Memory service. -![The General settings for the Agent Memory service.](/images/rc/agent-memory-view-general.png) - | Setting name |Description| |:----------------------|:----------| | **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 +90,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 +112,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 - -The **Actions** section lets you flush or delete your Agent Memory service. +### Danger zone -![The actions for the Agent Memory service.](/images/rc/agent-memory-view-actions.png) +The **Danger zone** section lets you flush or delete your Agent Memory service. #### Flush memory entries @@ -128,72 +122,56 @@ 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. A confirmation dialog will appear. Select **Flush** again to confirm. +1. In the **Flush all entries** dialog, select **Yes, I want to flush all entries**. + +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. A confirmation dialog will appear. Select the checkbox to confirm that you want to delete the service. +1. In the confirmation 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 **API keys** tab shows a list of all API keys for your service. - -![The actions for the Agent Memory service.](/images/rc/agent-memory-view-api-keys.png) - -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. +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. -### Generate a new service API key {#replace-service-api-key} +## Create an API key {#create-an-api-key} -To generate a new service key: +Agents call the Agent Memory API with an API key that has access to the service. You create and manage these keys in **Access & Identity**, not on the service's page. -1. Select **New API key**. +1. In the Redis Cloud console menu, select **Access & Identity** under **Iris**. +1. Select **Create API key**. +1. Give the key access to your service's memory store under **Agent Memory**, then create it. +1. Copy the key's token. - ![The New API key button.](/images/rc/agent-memory-new-api-key.png) - {width="150px"} - -1. Enter a new name for your API key. - - ![The Add API key window.](/images/rc/agent-memory-add-api-key.png) - {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. - - ![The Agent Memory service key window. Use the Copy button to save the service key to the clipboard.](/images/rc/agent-memory-service-key.png) - {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. -![Delete button.](/images/rc/icon-delete-lb.png) -{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..42dbec6259 --- /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-playbook/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..fe2f80348e --- /dev/null +++ b/content/operate/iris/agent-playbook/create-playbook.md @@ -0,0 +1,76 @@ +--- +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 + +You need a Redis Cloud database for the playbook's data. If you don't have one, see [Create a database](/content/operate/rc/databases/create-database/_index.md). + +If the database has a Classless Inter-Domain Routing (CIDR) allow list, the console lists the Internet Protocol (IP) addresses to add to it so Agent Playbooks can reach the database. 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. | + | **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**. + +The console creates the playbook and opens its **Registry** tab. The playbook's status shows **Provisioning** until it's **Ready**. + +## 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 **Settings**. + +1. On the playbook's **Settings** 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 with an API key that has access to it, at the playbook's agent endpoint. + +1. On the playbook's **Settings** tab, find the **Agent endpoint** in the **General settings** section. Copy the URL for your region. + +1. In the **Manage API keys** section, select **Manage API keys**. The console opens **Access & Identity**. + +1. Create an API key with access to this playbook. Grant `read` to retrieve published content. Also grant `propose` if your agent submits proposals. + + > [!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. + +For what each action allows, see [Playbooks](/content/develop/ai/context-engine/agent-playbook/concepts.md#playbooks). + +## Next steps + +- [Publish and retrieve your first FAQ](/content/develop/ai/context-engine/agent-playbook/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..95bf7e2b2b --- /dev/null +++ b/content/operate/iris/agent-playbook/manage-playbook.md @@ -0,0 +1,159 @@ +--- +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 it. + + + +A playbook's page has the following tabs: + +- [**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. +- [**Settings**](#settings-tab): the playbook's settings, credentials, extraction, and retrieval policy. + +If your role can't read the playbook's content, you see only the **Settings** tab. + +## 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. Enter the **Question** and the **Answer** your agents should give. +1. Optionally, open **Optional settings** and set the following: + + | Setting | Description | + |:--------|:------------| + | **Alias** | A stable, human-readable identifier for the entry, using lowercase letters, numbers, and single hyphens. 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 **Save as draft**. + +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. 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. +1. Optionally, set the entry's **Optional settings**, as for a FAQ. +1. Select **Save as draft**. + +See [Manage skills](/content/develop/ai/context-engine/agent-playbook/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. +- 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. + +### 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. Confirm the deletion. + +## 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-playbook/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). + +## Settings tab + +The **Settings** 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. + +### Manage API keys + +Select **Manage API keys** to create or change API keys in **Access & Identity**. An agent needs `read` access to retrieve published content, and `propose` access to submit proposals. + +### 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, select **Remove extraction job**. Your Agent Memory service, FAQs, and proposals stay. + +### 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. Leave it empty to disable it. | + +See [Configure discovery](/content/develop/ai/context-engine/agent-playbook/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. | +| **Delete** | Permanently deletes the playbook, with its entries, versions, resources, and proposals. | + +You can clear entries or proposals only while the playbook is **Ready**. Each action asks you to confirm, and none 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..fc63e2d8c2 --- /dev/null +++ b/content/operate/iris/context-gateway/create-gateway.md @@ -0,0 +1,178 @@ +--- +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. +- To create a Context Surface, you need the ID of the Redis database that holds your records. + + +If your role doesn't allow a change, the console says so and names the role it needs. + + +## 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 200 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 in the Gateway's [settings](/content/operate/iris/context-gateway/manage-gateway.md#settings-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 **Overview** 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 | + |:--------|:------------| + | **Display name** | A name for the Upstream, up to 200 characters. Required. | + | **Namespace** | The prefix for this Upstream's tool names. Agents see its tools as `namespace.tool_name`. Use up to 63 lowercase letters and digits, joined by single hyphens. Leave it empty to make one from the display 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, choose how the Gateway authenticates to the server: + + | Method | What the Gateway sends | + |:-------|:-----------------------| + | **None** | No credentials. This is the default. | + | **Bearer token** | The **Token** you enter, in the `Authorization` header. You can also add headers, such as a tenant ID. | + | **Headers** | One or more headers you name, such as `X-Api-Key`, with their values. | + + 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 | + |:--------|:------------| + | **Display name** | A name for the Upstream, up to 200 characters. Required. | + | **Namespace** | The prefix for this Upstream's tool names, with the same rules as for an MCP server. Optional. | + | **Surface database ID** | The ID of the database that holds your records, using 1 to 32 letters, digits, or hyphens. 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 indexes that let agents search or filter on the field. 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 page, select **Create agent key**. + + The console opens **Access & Identity** with a `use` grant on this Gateway already selected. Create the 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. + +1. Back on the Gateway's page, select **Connect**. + +1. In the **Connect an agent** dialog, copy the **MCP endpoint**. Under **Client setup**, select your client, **Claude Code**, **Cursor**, or **ADK**, and copy its setup. Replace `` with your agent key's token. + +The dialog's **What the agent sees** section describes the tools agents get in the Gateway's tool exposure mode. + + + +## 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..6db7a71458 --- /dev/null +++ b/content/operate/iris/context-gateway/manage-gateway.md @@ -0,0 +1,99 @@ +--- +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. To go straight to a Gateway's settings or delete it, use the row's actions menu. + + + +The Gateway's page has the **Overview**, **Upstreams**, and **Settings** tabs. From any tab, select **Create agent key** or **Connect** to [connect an agent](/content/operate/iris/context-gateway/create-gateway.md#connect-an-agent). The **Set up this Gateway** checklist tracks the steps to add an Upstream, create an agent key, and connect an agent. + +## Overview tab + +The **Overview** tab shows the following: + +- **Endpoint**: the Model Context Protocol (MCP) endpoint agents connect to with an agent key. Select the copy button to copy it. +- **Details**: the Gateway's tool exposure mode, its created date, and when its configuration was last updated. +- **Upstreams**: how many Upstreams the Gateway has, how many are enabled, and how many tools they serve, with the newest ones listed. Select **View all** to open the **Upstreams** tab. + +If the Gateway is in search mode and serves only a few tools, the tab suggests full mode, so agents can see every tool directly. + +## Upstreams tab + +The **Upstreams** tab lists the Gateway's Upstreams, with each one's **Name**, **Namespace**, **Kind** (**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 **Tools** and **Configuration** tabs. + +### 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**. Use **Filter by name** to find a tool. + +The tab also shows each tool's **Result cache** and **Result handle** 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**. + +- For an MCP server, you can change the **Display name**, 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 change the **Display name**, and 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 page, select **Delete**. +1. Type the Upstream's name to confirm. +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. + +## Settings tab + +The **Settings** tab shows the Gateway's settings, with its **Gateway ID**, **MCP endpoint**, created date, and when its configuration was last updated. To change a setting, select **Edit**, make your changes, and select **Save changes**. + +| Setting | Description | +|:--------|:------------| +| **Name** | The Gateway's name, up to 200 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. + +### 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. + +1. On the **Settings** tab, select **Delete gateway** in the **Danger zone** section. +1. Type the Gateway's name to confirm. +1. Select **Delete gateway**. + +This action can't be undone. diff --git a/content/operate/iris/lens/_index.md b/content/operate/iris/lens/_index.md new file mode 100644 index 0000000000..abb4687b30 --- /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 available in preview. 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..df5624576b --- /dev/null +++ b/content/operate/iris/lens/create-lens.md @@ -0,0 +1,75 @@ +--- +alwaysopen: false +categories: +- docs +- operate +- iris +description: Create Lens in Redis Cloud, create the keys your agents and readers use, and open Lens in the console. +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 has a Classless Inter-Domain Routing (CIDR) allow list, the console lists the Internet Protocol (IP) addresses to add to it so Lens can reach the database. 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**. + +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 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. + + + +## 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, select **Create API key** in the **Lens is ready** dialog. The console opens **Access & Identity** with the `ingest` scope on your Lens instance already selected. Create the key. + +To create a read key, create an API key in **Access & Identity** with the `read` scope on your Lens instance. + +> [!WARNING] +> The console shows a key's token only once, when you create it. Save it to a secure location before you close the page. + +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. + +## 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 a6b60aa563a428ba60b4e034920179f50c01dcad..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16559 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 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 b88727b6dade5e85c2c318e1fd99c09b245faadd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 72698 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

Lp)+D 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 z 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 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 ccc6bce0c97ae2d38580135a91b9b91989ceb53f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4377 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 T4Q?Q_00000NkvXXu0mjfpq+iQ 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 57b083de74370145b2f52eb2d2ff95c2de1a51af..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16418 zcmb`ubx>SQ^foxS+u+W?V8LAi1ZQw}cPF^JJHrGG794^@un;7KpaFurYjAg2-ru)> zZS7aPTeV%)Rrj9md;00V=RDng`rbG-6*(+)GIRg{fF%!+)&KwyApiip4l2T%B(PGF z4*x;qZMQ;GpU7l}gy+$8$C1L#5A&$onH|VX?%w9xX7I zMw_cBNrqK_AMLEvlPoKu8u!?sx-^*O*-cXdBtY2!vJe1$0HZfBZ*s~9D}7TK{{xIU z$33LUXV18V;gW+)Sl?kPYu!7gE6c0x^d2@^86_)x7|DdIa9>g1ruWb~FW8Iq{dyOv zTG5NQL}CSodBM31z9X&4qoU-6`f zfsQh+=roFVX`vM;p8tuU@CavubscB=V`Q5$cms^nk4KoCKqZo(MgaUO^8OqGmRHgG z?MIi6!pL+B!?X|19WM9=+=;n8)QJ^EPXKBM3=y=m%6rLKWoS`lmQ;UY9ov!XXFde! ziu1aH5cR%@)8Utiv&R~C9Cn128lWMF4bqTHuNP@WdzWBWL;mvM#cyy((=t&k5-)eh zr_q*#P-tnZ5)YE;v60QEqTt{XixX@|pb{W-fTb2R)>TVlUsLl^q5(5GDaZz|KE|cN zm99`=jRrvkss3U_{{bPkxiaEwTcI$Sv27#vryhHYV5@p*2S|jm`W^z6gOFW_3vSd6){(_n9`Y_8_&| zA(^S2(8TvL!cq)lW2sGo`$;qw=V16bJXRk8ACAzMTMW$k1mB*&k)$nwvqUd&>mfht z>Q48@4Yu7vsXO6FVm>%xI{}QnLYrcc(DhR_=-^0^NWNe_m|^akVPUVspR6MV<02N~ zqBTGf?K#m9p$JGc5%!!IyHaRrKhgCt$jvdFVph%&C_?=O;TboG1#z5Rkz6EEJbUr? z!*tK6esPkO#c^?2{(*1$oy+Bun1p0jsK=WTT53+J$ItMSV4l?pq!V4!%Wtt%?{Fk{ z#OV!uAJc3pP~V|Pd_xfsgWrZ+o07BPeFw=+@;GA>K`V&0-O@a_2*m5cG)>Xn2sjsh z0tZudhx@Fno|(X-di6rr#4BOjXCOQ&8Sz64d>mf8BBL zk?)E(m$!`!pO=7agxA|X_itO_xumA%lnM`o$5^wrU8%|7GHsV~RKP%qO_wb{L(Q>P zCrT%8R;H$W(bL(`Ir#>BY;o*<9I;6Jt;1_y*jw0$vTKYY4?XXf@SLZ=SN8W}PfITh z&&-393DNRLNJ^P)Iq_G`}F8Ou`{&cWr5y25zB=8Xpuu(N( z>QU&3If_{g~-+TVve0LKi?6kRQ|#l=RGoq8uY0Q;DsOok>}l>@*-U zpq%Wi()OubGg&ig3dwePVMPDv$549^qIKjr>QL-gyg4IYBSCf%WE@`_4uOm68P%;LJ3zLniyIGM;Vq8_SEyWCqQCW zqW4Rl1ddR0uF;su*pykTnf_Vf`kayJiPK3OE-hH3gtvrGi-T9l({ewLv#S26{&Ri4 z>-bsr1|uyKo;n^2UG4cFUw9L~I>yQO?%q}&X|h@t)BP0z6Dkvp`~3}f^Megl1FP{3 zNvVC)1Cp#9-d;z?f{$&LZXX6Tx3)G}HmSjh3R&r{45`_ILT;*?RVC{sJMsdbC}D&{ z%FK(*_!?g|P0FK7Y88%21l*U8-1erFCj0EM{(ZYjyUP35xg|AFN4X~S(?fD7vI_s0 zQKi7w1vXUjBrnJ4sJg2vmL)L+8J+)h9!5P^(R&VS|7!e!yofMjQxV{EAJoCr_s65u@$et zez0BUUClC8`%Ga)#S%)*pz_+hMY;soF>4<>BN6}L^^S&LLa)Sm(x!{LxVp?ljy>}f zw#r-{d-f{#FZ+HNDNe$#`0fJvF@ir%pRI))U#dHrgqm7Mf9_h1*?)Ev^_f^6^V_)e z9=H87p7Xi{--=X4^us9Yd%augLXls>NeKRnvT~eGT=n*1Yw((jz7jhThl??{|4=l2 zfkISicSd`9dS;N`JH3ZPpW-gVSL3zDYU`Sj&Ww*H62>5XH!th;;gu>+UBbHW-Tp@h z-}$QfN*zsV^M2eIwaeXScqMwpdr=-1&j~oyFVtK7ib)b8uhT-*J*wiZG19pA|KvLL zdsHIFu{Fz?dFjHX%J=Zvd1L9|>(STYR?Svo=a70j>w)akg*Dw%-Ua=Z%Psby+T<0q zj-0B_s;b+p6Md72IVOkiH!AZ>H&TN*Sk3IsOE;t^EK4|#gpbs(S?60b2?CY(a zZ*FxmmN0%-wJG?q#@qgHx6-YgU0^_Zy4demyWTG|zG7rcnF7;{Zc`GG$; z{=u`V?n|BOaOQd88Y=HuHEZZz2Y`19kmU?WJV#gyQTPQQr@d1ZIZLYG!PZx8C7td#Br>AfE?DXkm>gHtgKZk2WYwH`A%k8Uc>-#JH6RVGl%PZIO6}yYS<`x#W=XwSg z?zd*T`sN-cr)Ssxe(##RUmI<^7=eyXOs*)7RR@r25OBWl8&m@5`%dyNlzatFC$rLOZ|26qZ$f&x^<}Dhn*W zXw44E&M)-HJ5SHaZ%Fm}`1zzh*)uicb8>oCO`^M9#(7oT$I57@*yK;9(6i{o)UpWs zl2Gf2xTLU{grZ;zo!FC*sJJfyrUiZ`0b$X3p8ASm$E9wno`GSX-Lzc&f+YhEGo01Z z9h99t{DeFYQ?2FgTs@P_Wvratxjr6nxEv&yNSN8X#2Si4>%BL!bcoav)G@OTSLf3- zwg^$-RMR&NlxK;Np;XW?@RkBgDrvY1k%>W6-^(ZoNXm1GNU;ihVB{7CvGI}8vtg6b z+6+In0RUVL^3oDozKch*4GMkYxS<>NlM3&C_RB&jp@$j^B^^QdH7Cp(X#D7@L0TI{ za_)#Z^_y;MbL{V@o|UGx0Zy7IJ+jz9aY*PIDw-=O67kKd{{KyPdoD}0l?Y593%b1A zYLyiqgXgpwJPR0{tN%?|-5>6LyJScA^CcC#u%ei}o+(k43+gGbyG$8>H%4(0-@3A^68*@~q$HZTA)=*u`-V|GJys=r_||%;WUU@<0)mj0L~r(yQ1^#x&g}i| zO^O@}ykDc`N?bn}Ou0GmhT+RzmQdCIYbR@t)9m7R{ z0W3@I^<_~96>Zr7)DXhF#*5V!^DY@%EwDJpR?_0z1SZnW4)h6Cb7a(HU0RP%ax#vF zo`^4WEfpUlC$56WXsblEb?mL}Vm9=A_82Qkq5S^A_8F;Oa!79>!w;HUCv}%x@duUv zsRJUHN#zGK{)qfmLj}Wa=Spu7t^Zem$-&_s06!V3&^Ff!DI`slA30d#(xyrI(eyPY zk}~Gi-)=6ludPdnTOv})6d#Br2W@kJ7#$mAe!px*lpDH9Wfr*M!LD3>stopel0?#k zz!6^kdLzfU=Z7%)pBS(Esj(Cx1z1GFTD?umxjF|ydkf&o;*{9Iho|3{&jB#s#$^VG z%($iS{q}tq&d_+34@J8IF`x1r$Aczb?%DEbB*e)0O5&(XjitAm zr~DbRJpRS%x$mpm@4p(?(J~KraeUnEB!&BP@pA*t_vUEhAyf#4DI6C@M*+lp9~n+R zLp#9>A!n!1cg?peg}BoA)Z)ge-5Jj`2ZQq}1+d@aJgc1ayrI$|=l;u5)Mq>}u^D-R179M|wkG)s0 zLIu|^L(hdMlXVQhpBW07KfwJ%KTnVe-@CrijqQt}X#Hx@(I))`4;6Hnsrpe|Hh~~^ zf*K~gPs-g-{7*#g=o@`%ZWn><9?j}tY*ek65M9D9GjOPUZ@zOCKOp}o>@z6AM}|7? zx6AJ_R$rnn_2Iy@D|S=Yzi*ZigFr0FC5}}JIkAQEv`c~$+Z-Ck!?%y_RP*PdMOF!X z5=!+LTs}U5C)`%S3iFKN5ZI%VXuyO9=ySzjI&r4VCXI*cur*IT0d00s#Qbqi@7m^5 zXpCNh^c0C<8z<4La4+roF~>t~w?dftlQj73o#~N>Ln?)$>wvAj^fz;NsXu3t=Tf8! zCv6fd$mKlb>R_rNS0q)D_+kumhGMq(l9YZ;W|{kWH4uzMx02{bs!b@>kocQ=f?KG0 zJcyDubujxAbsRW|R^)v(N8_f{nf4z&gD7iUxOeAjOj{V0VKV4rPxCgh?3b8r8; ztW?gHI5(sr3QW2D*8rh@`RNh^@X9h;8Yki8Nb+$xMoY0zCxk> zX$)SLaog(Zqfj{^{JnktLj_FP<_e>?3o-$}7eOw5`dMpLsLB*uqD-JRt)3{eDc|z3 z(B6$lE93C~Of<8>FS-$fw*RC;{^FSLxw|HPXV6Wuz537n%nFCJr&DTi z<*$^2S%Le&ejcVfTpJ>U7v1x?ckb0S8sIcarU6S@yi%X_QD`W<37Glk-y2_2xMEqb zquSpc1}C(b!Z$}j%y=s6%oVfpbdcdL+;&Kn)*Q;0cjRWP_0qB*q&)gGDOe{0;59nzE!K zZCnfSEJlb3C+Ze@DwwFd8>$)D9IizXSreZ+Dj{kR01`T;C?Fo9AaLpe0THymvB+4+ z0OsPYaM1gI({82JdMlsPmMfaq$8F`ai3>T zRq2ETZ=e{pS0ViRkHvqIrTtiifJ<~u+CS&~ei>WYog>)P3&dw>x<5Zl9lg69@`LC&V zsDLeVnQBJ#M+j~ge&#k#U>B%o+YQXet)@s%Au?FaYin;jk4j4#;ZBC(ZU3R_)4lI3 zY}ZJW1?|I;pp5?$@ya7SyDJqcns$D6OB%SEts#!{l`}jXXY8c3IzlCi^PT8p9e5AM zv9@MMaXzGu%p*wQe=fFQ=>L{}9G!Q0z6WqD^?^+BhQ|c&6^k|BytOsEd1i@{2u{-2 zSm{kfMGvncKdy%)@^GsB!y^Gz63PqRhVhDdls7pt8iMk=Fp+~XMdVl%HO}&DL|-C! zk^8mE7Nk!XzS_UV-Gg}_1v>H|iA`#ye45rfvA=1GO$DCmY#Gw@O~e%zUuq$Cs2UkF z+BsAecD5Qlv>+ZRa7WdvP#|QM7ln$+vnq45VE+x06PK^afv6-^Byuo)PB^yo<+k!dA7%H<5s zZ-huTgFxp|+uz1R(U|0sQgIp6{k9)zLH#Nxc&tFJMvK6|e)3@1a2d&cr31WZKS1g~ z$pmQ+@-w0XP3?V-k4(Vt#I1q+{4|X+?UN(Rb;mju$2ZmW;G9=$?oY-f;KJhVbh zTp`RIEPG5Ig5P}G`7-Pc=zElF?#1;bnz+=<^tpwZNE`KmUR$b4POm zs+Q0~`2Le`M|#=i!}jLoF`ZbK zp=yZj;q!g@#N5Qp&xi?|fYZ^Ds}kLTy}7yK!=}y}9sj-zw-8_S zvpR#dk1NR!HeO~9HKsUurN6IP;Z#ScVFg5ho@&rN6kvlfBmAu*YQLKPeB@#c zO^j|RaHu73&;XFuNPB8_Vg=2MyI5mt)_Boopwm>9#`=Ghf8b&Y{ewKA>eWKcK0(tF zJUUk+H^CPA=et|lK{dKS4b=GkS1nsSB&f0UR~`@?2oI=-DhZDo2kik%(t_)0A`x+c zpfLGJX^5EwD%xxL9ukH$B;LZuN2IHrv>=}-6sklBTR9)?jAPbcxwpK0F>Y_a%*o^N zcFtWW^5wEHAau|Wj6!chmF!WZSyza{z?&xNLk>%*H=C8gj3#L!vEXEul;o7faeG-| zG#y?37)U24e-qG=^1D2imu@H7b9YRYOkTd^Mfl$V0Rp=hordmv_P@d(PX#+J{Bu-_ zM3KI`d@3Cu%WYKioL$AHRILb>ISyjQIZz#@8)*x%J9k7M8@s{-pCS(lltIW9T+FU> zXR*gayHAltkX%QG5UVU!o7r=PhmcnV;9M&s7dyc_#x%Ogv}PsPXufKvYHbjM&)gyQPSTl!GO=ge?$p9%sp5>=zZy|Y9!iUbgD zPz-v#prUA|z#@tUJNsu}fo=cHtBEp$R2zZ=Y2y>C_(0!sWQrtzaW&0T?u&>PQIbUW zp}QH{M=5EFZg%&k5k^Q-wvX= z#~CqxT|@@Xpx6Y+?_R@L;|LCUsmeNgGJe=Wu~bA?{WYAEg6Ijc8@Choh^D%9z#lM0 z33Z%v{W^Tj2P4|?z3mqCSS+UV>Rpb&ox1GiCN|516$`Oe+K5q!yeglecCOoA{~|8PtO{+?M@=)h+pyb{-haU2Rp zmAW*{SFLJ%>+Y0;@vRbjZl8Y2inXa81M5)qOr|~memuT*nErx5^OmQb*#S;CxJ@Z0 zkdxcIlqZ*CjG0QpU2pBP#6=S!SnTX5eA_)DkBWBc7Z3Ep-|;k6!P<#?gQz66b!|!! z%014Ok=;3l$m8;hB{VdpgxAfgCh=!GA-tccZ-BrB+CL%Ah2v~=s1_NV8xQ1(aebA+ zUdN)mBb3aazd5t#2NIas+W@6SX~0Nr$3s_4CcVX7x;V}IP`#T#J>h)vAD*_72(mnS z;sR0$ia}M1v!~AFy(34RVZaW?q1XJkReP^tMupEBMGe}HC#PaHSfO0{-nd|Y#K~S= zT5}v>DNwGaNO;L{bR-!4n8wdd9QgCAoab7vokPp_yp2(_Z)Zj?AA0S|+6TMS;PIyy zkzM#1a}yeM`s@&g$bjIjuS%-2WD?wVh;b%xIAY}m6J^30nrdqGGSCH&CbO(j;wYiNlkVCr)0H~Rd8cDq5>wz`kr?DIFo zjJ>>7wosL4+#*P?OUs(jD$tkIbBj5YrSwXaa9j>xkrVx?jr?OMQW6i@KZ4wWtO`P| z&*JcZn)-a|jOa^mfT%fT{CmnY=euM3ZHQ304Ksv4l|y&~Gan-mchXN~$k*c~ir^AE z@?Oa1ec{2qI>qa(NJO?*@-k><1Qnm?;W`)YY|2gjg&}~*R!)*hL8O)VfoW&5U37P;4jFNY-#lNgmQ4b_9DpXw>=L*D$~otG z?zh>K`*5h0`GR$q)JYPb9&_u#=M*lFM4z*E!!TI5uFFq3yWoSLtb3%X>^7O+VCkunjz(zT)>%3Z&x~Opq2j=erQ~Z=H3tW?a&5n zAB?iT&?+x`nY;J`EvuXGwP`asiYH_GV-)CpY_plxpFFWhbcKxC4k2F6624yWi1v5T z*oe=NEqb%J+(o9s_g@CUUv+2YOE*T55y$6fKr0u6U%-2oS=s#MGmS`KmcxZ&3>dSv z32S-7f88JjFOnU%lAeA~yYwMl9x##MIMz z?65i1%IWm$aA&3R*BmkZ^cH@cW8!=a&!t2kG-h#$iuH$QR+hC}o={@{VTvA{d;d_JU7_oS=Zd-4T+ z^(jTHx#Hyh$ZxuC*M|U`QY4}qZXkdN4Jf317Sr6VWE!b-P6kQ9x~UdY&QuVA8+N0w&)}D4=TdrG7*! z@UQ@KAE#oQy8i~%vPi%lJMwL^(HuluUxW9bn^x$=0zL!2Ao$N!&5F=02hVEa0a z{o|18v|jCUg(9J9h41hLG&SEn4^Qki!P82qR_BO%^M~Mn`DQaH{eOrvG+8WvV1QXd zwHi|8=^tx`oG_y7*o+lckY zc&PM)B+T5FXh1q{p9aGF)xWMHxKBLf)^Z*m7~E~RTZgYB=z%!IA?oyee~Ex&cq;)! zm=aTDd4^v%&z1I%nhbpAF+liYeu;UdpUTaxn;vZ;9h9Td2+gnha--3W3~x>EAd`3- zT7sb4;QPFU3M32k9JXxYJ2cGZ&1ESldn$m7n>~*EE)_{yG8vdyj&%9XorQxuDOnP14SqiCOV) zGxkuZy%7t_?lH~AF&R&WN`eMOHCz&(bP?&8#sq%mPzl|~ zr!hB;l%98_**Q%pOn=83qWehG4*!ttch+=nSC>(#EMC4Uueh!OuJ+tTh2exrk2%}T zCdc8)T`UN?zxU`7+SW`(u}Bg2+FClHTnM-T zHTMCVxn?jMhb^w~dIc4z_>WSjaDN;B5PQa z!Qzt+BJWo)fqW=kXP1T(1}u;g4lwCWqUq>$7$K#)ytOemMDR|O|GM(G_$o4tm}V1Y z_$?m5gGDoxLgPmcHq9wW4SXblOtW#$%uE_i9X_Bzfv*CHK*McUCC9z1zjXk1r`7HwERa5nrRS(FDIA$ZF9)SxM)0*5^ej{_fDrk3C{x_& z#Q(@#SiCxBZQk(!GX5@o4P%^7CAf<*9uMlHD9@{^#xMo&J8(mf6eh z)+`D-)^)DtQ&7Tgha0}>s87PPo;4MY_sm|4AY`{JMN`Yb z6z2j+;_)Fto!!A2^As&h&isccA}sYiLOVc*8cx2x(6E$)o>O&G9!}&UodWWw@SZwn zk)Vg+m~ji91oh2O^r=FJv?mE^?78xdfixRpwK&n^#x1k(z<&wps7q{N)?|D1oYx1B zG2B8){ZN{rJ5}@Ij0=b-p_I6IDF>UbVZji+ zZt@5?53)fri^+g1ZC9M)&4kV_=x%Eu)@_kHRx8=M{dK2*mO9j@FnK2=*JH z(j}g9X{$IuLUk7pI$yLq7{*-zd|Z4Br@`ZYGxq(5Pa1GAoB!d3Rlku65e0KiR6|KY;`y1n5m=YQ@0zz^dI;xNX8 zXtk>Jcd%<0tg71|9Wq;&3;4UOnfvQY{3|#qUZI|2_N;|Gl!2Z4mMirsxBG^AdeJ~{ zK!eSN(GSwz6Q+odhh4wm%4-9ZR^5NDS4KH^juHlQ>h+kC|XBP0lVuwnw)QJNO3 zmPIFyLl!zBGWx?f6StW0;gRUgZe|sjOJc$-Vo~F1oy^ItKrwj{G)E}&kHfT7h$+1$ zJI~)8zhWQbrln(pw_bhFNPEBe<%o=8f>I4jmm3X+W+Gw(TXPm@>^XiImSW&JM_4@z z=rm<+43QVu5Wj2QyS>a8^lHd;Njcex>zrc0Z+@`ZQDuZoo2Gu?FG~?n@O?7e9ysis z^hv2AaP*!OGBaecWHI+irMd403u#fq{%P1cIu11HiN<}>810x2I>z!|o$ZUL=wcx_VDyIA|iKgC2yQ@ThGjTRnIkb@7)9$g$5{vZNm7doCr6Nxh8?&TUu{eLuoS$&^}PJ(+8Ynuln5!4;&oP z_ua{pUuH3UTV?xPSUqEEk#NXiO#j-HnHIOy zD98dsRj^WlrEt-R!HswsyeW2o@3YUJ58Sx`c^yU%Vz832Jp^dwC7t|fAp&Pljnv*2 z9ErK+dup5>)SSh8Ux4iV^wyk6}M#MDd%I>Y;-op?zCE}2l=#syq$)y+6B76p$NdK6?Kb7i~r@*76LIp1p zkmYFTUGTdcYTHA}A{m|Q&4}|_FpkIk(IMzOS0u~ROSqufZmbch>OQ^GHga1VqR@wf zDz8TgoYRKnlI=osKf%6ngF#n7puDP(TZbf&KdP@}ALND-1FjS-AZz7UEa>}qs{%Oy z#a+TB^$|nR!X=pU!!kUPX{%J#Y9dA@1`BIy$d@oCt^+I57jNz7i$Wu|!O^md% zW=0x4ea&2Ap9IK0)eoZeZLK-(ajjWh6nuU;vjAnaHeFd=3Q(+&hQA&v-$X{_i|(*6DGoB zNW%|$N726(stYLWvg|1MO2uV7+PrHrX?<}?IMujPMMP(iv6f1gfve!{`(n1E!zj18 znMa#fi(mgJXn*&8HBRa93ZVGF*Jf_%Iu;kPGB@BB`N#q*1P?tTqm5$Lak*6yga3eu zHWisFXu~Pb3Bh6L3E6ooqBKjDvht#;48qaz`H!mA*<9S`WSTWiA2+`(jjZ-`eGXc9 zcA#_|*ZarG7PR14!dkNB813&{lVU*(rk4*6M3El|Ap@T?L0}~uv1$AeSl)vK%t@)} zU~KR(q9l3_LrL|iW*=!t&@G4Uz%&Yo#&gJ0sIH z?1;i=;zh_AFUhKrhgmQbx`KKLp(j#i8>l(t-ZiSY>cp!LOfxNqzK~2l)dp{G= zx8RVwwGWn@8{cwQmEn1$;mD z-_LoYR|3FfTJqQQ5BO$edZcu!;ghuvTBjKBD-|Q1NcK)d zO#~OUsMq!Ox2n`Yvh*k;HD5p$iL?wQHSMe(@?U)HPN?U;d~eEUvsCoI-#ZU)7S^oG zuqYOFiUc_`T3AqTA(_TCVzz%3{60n1)m=BIr%+iVF_c8i@>Ev901#^VE{m&*q56b_ z0NVTO@e8q`y?DfRzjcbZ$f$Ms^&nPi24r$Q3CQVRGs$q$GbpY_BF74_LH`TE2BGAG zKr&rxtd-%7G2VR@O(hW12IIn= zP7)0X!Yrdjcr2^eF_OsPby-CXD9~`1@pm2i<4W0gdN;z8SB0tYdhbeR{e4I7sJD#U z6i+Pw9XMMd-7)lH+RT3;_rQ`&wA>`+Ew)9ee4qouedM{Sh4f3W=kzIw{+XvgEarf< z5yyp&6%`q0H=;h$#yw`F-t5JJ&luMB@P^U5et*P|LmBxs1*4p%PCY_ity|$P#wP=Y zu6?MA10z0+i3p#&;+3IYkiO$-!HdsAW4ymjuYS*} zIO;by`boUreOHInPTd_h;2*sgiJxB^!=qFm9a7Nf-|$I#V9WUG{nQtXoYHh@J9AEJgYsK(~mBn}Y?`N4%*quS%GD?@E(ixw~)-T8Ede{&RVQQj^o-&I@kzA|Z z0QwPU>$bY1wP1WRiGFAsWbwVZRFe{|m?{nFyI(7PI~4gaRKtXArKqbFf0Bm}enc@c z(w=ry2_0r=FqoWu53$@d(a1(%0)4ja;A|dnjxMz|U5)-tTO4|D}dd zRolJxi5Ai`;!#(X=971Ce8lImZVOVH-9#O|Fdy4o`eXc67wl5q0%6!U3!gj7dVe`p zcJwi%8A5|k6WSp#HOzi79V_2JcOh)A*l1>bu zUFr+U75aS3rarTiG|T=q&*(O@7T+eNUiky}2^~^b6iHMGy4xgp5GD7=g7Eh+MVGrr z?T{J>CNjJeCp))Ig2YJzxL-FlamyGc^<69L%e z`;-=&$#PXfd09B^P|?7INSl(O94^k-yoJiYLLan*ajmWys@Et}->se_-U6!Occeeo zN1JmtCD5U5M{F^IJGWc8aih0hiqze|D9ukwQ|uu3oj(~fXUAftFTgTK6tY78_5~|^ zkvq@8<#mc!Ww{_1GXQ75D9#wkwP@X6bbB)l6G7}`wM2aod{H0#f0^@EDd0fs5fsOE zuI>1wev0koAQ|a2zN^A%@1CI5+g-x^5l_E}h497SohN*RIim5#nLfQ8WtejGDne>p%%>$06=!ZDZ?ghF5+1D~lTK5DZU%i;DRjpZ zAG27H*Z55k+IH_^8BLoI(RCm~W-)&<+T7jSe`U;0SE4cx2t6AXEEIeFI~y4Xb+}w; z{#Nv3(kIsXflk`?UgYmKgLVxL{-#~o>~5Hc$>hGoU!tMi9GoZ31ls#~EANgWnJX)A z#*qYDou=*pm$bDw)A~z+X$Kn```1RF|5@-7M9af}1mSVoR4Lx@inYxdRPQ!&d^+p)#F7PgM8X1}##Jh18Tn!MYjVHyor z)d$;eEDNm62YKv7dl!1^H!Tt{>Tv?)$8?$nbN|)c;|OUUiAFb9Xm$SHQtDF8Co+$A zTb>V!Ke#DRWX6P!Jqqff$$Yu-dM9$SIksMG{l13dEf%_L{0W+6eL{RqSgECoS_o^?s&`&yPkqBi~|t9ARQ9EST?pWX_f=`G_kGRns9R^&3Zh z*6jp>$)%9xH!p{`X{>!m#k^CUPqU%}>WDNdj4_?~!|q?NX}u$T>`V0%d9js z_%$Z3bT)q3$#1@Vy<@u54d0$SO)@P;mVeeMuJqHdZ+1T_8qiKOKp4uQo~bt$Ce3 zUP1m&nEs8$_&Zs2wNt#VkUTbS3EZbXdcGyH@NId&w{UC;k*z?$via-P)_4nlSD%wm z3l5Ao@mT`uG`Dj8E@l_*79#oAS4e{tObh8^QPo(zrQTd+Upy>Ys6P2V%m2%P>l4I* z417=0BB8;=q8iXKSbL@7cgSauwp@2AP?stV4I~CnnoDfnqR3AKKn1&bAiIXpeJBmu zq^kri9=JFSWgRnb(a#Ss_O~)G^Z)xz%OKo-E|G_5)7T+`Yq;!8FAQ1I!~*^=o1yU9JlFu>S@U=e;a*k>Faz(!;{CteY5m_-d#U${`Qa?34v?*jmy|+? zDN-m*jYdb8Q;?*KLQEvhMvPp3?3inJBiCM}aQ@_EyGLWHm=f$C++y{Ar|o|$TdnCz zwj}Hc(i70P9I~P8d7^YQ8UWb1Ow7(N$^e>XXYUpPyH2K>^*Cl-8Ty*g5rEC1+LSA* zS<4t7)*iry#gU9Vbm42|o4_Fp3V1tkM&tD2Q-T0MaFK{v-^m!jq5nyhjIr>6>(o); zD8za?xc;@&5-1>q1Qw`0rvVA=#*{}#I~z*cs~(;5Z(lqaTT$D4?!p6p(QOrE-`cEP zDxjdFibC9J<~aEDqGK}740auNdEWcuzeZ(BMQhZGg`PRYX;|F0A)<`kg*EEsaIsa8T8s7<)fLHUnJ*>YU_R&Pr!>nLbJ-Z;cT1#*1uzN=&2M7?6 z(5HvMyuqEHJ28M6YT^{OA5$~tb;JmYgZ;~a_W4g~1JAVJVPKw53OZCW;XkD|jRuYs z!vC>>xg8JJ&`#b-VY%vI1Ad)?Kk=S3_(F0Ivy2x&dKhsx$99Knc*$fiG=An3wLdV~ zRlol!9P0V?0z=Hbj{l(yJqWB|S-s@H;I_&!GkKN2c8g`vlRht)v@Jm&R>y{5+{ieSC?`I`@l)-DSo&w6d9YHY}2N5Ja0Fu~AYj3uAc z7=2hR%in3}>O?29nuvfvenVq@y*=))1k zIr5_r8CYv`e8OVK%u_XlO(ZomZb|Vv(k9<+%4H^xahDcM)UYf5)18xq$0wS*0zodd zJ0DWV=CZtaMwF$O*jVRQp5`WTY^(eic5HNqZ?2m6TzFYtoTAVYSQJcQ3C|7ONkx;d>|Bf;3Jl>#AgllH_x5CxvYjs}j2g{xm$1NPnDse{)7 z5&=pE%Vkc7GhY{c3>hbcoKHX71l(EfmM&13%+Y!)Pf>}cATqGKOvP-R9-=heQ^KzAIaA?mH*|5B;Wt9S1%2~ zUur;314;O0XX;<|sy%iyT$o<){f8t{u1Y@q)p* qc>j|fwl)1K5QxxLu?qDVyC=>!SB^7ZaNz$BoxF^SbgiUW`2PX_A6|t3 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 79e7292df5dc4f08928597955bde3321eb47d9af..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19777 zcmdqHbx@o^_cb`UyL+(U5_E8Pm*5s45PWcVhX6r>4(<-Yf?IGH9D=*MJACAQ>-X)y zTf4QpRohiPH8pel-g{2p?t1z>9jU4;gN96u3;+Pohd$U8;yKdNN;GJXHAd9e#gAH86tU&bcvx z>4{Hc=n26m0sD7E2Gk7Ky^k(WfELM=u2hgM-zNDVd+b~t=$tWeQdL!UsR$rUEzD&+ z)oI)~xgqoP0B|j$VmH(tv(!Z#>|w0dJcL-uZ8CZaj6gtZ1Duz)i?O zUQ@*8!)da4{~xM3iDzkMSXBj6x0zYaRmMD7lRTxMB9R%gBh$}t zM5!&x1)_x2$q}W-DH3Ik&~H6z4J_0{f)O74Kq9%Gry1r}fLWbRp3vm`B{ZvkXVO>_-{M{1}1?h?shODE=((p#De;|N|vK-F=r$_AgYZ5||+py3u zo;<=%zxf69g7)XwP;}K2FZ!TSHgB=T+|(>{_Jg>*{J{cBD`?gNgyCLF7&Qx(0;kWe z`NW-v8`^aDJ|w|@F1-B86w(-Z0zT~;BXT3oKc2i_zWQr6SfJl}mjwCm?)gpnQl{s3 z+|uCVAVhNhk=rD73@JgtcLaa?pcj!J5$W%jpg zv#)B^kks@}z;^*Deu<9|NPHb|Kjwq!1r78(7PC9AJ6pi(9SZ8-XpgRm5TZt(Is8|s zb^o^N>a)FZy=}(;igqZ%a1k4HTY#Z!KwUT-vTnROH53sXVGi1(3F@v18u~i)={lSr zCTuPyQtb~|D|RHTo3o6n-Jn;rZB&`h^*nG1m35@F%XmrzdR~Ty zg1X$tAu2;z5so0mk8saN$qu4@ah-8L}6!Vi* zhZzJI!s&}A{Yw)sqvQ*T)lW)S_d8Ri#|j|@tcCV@r}|pHJPJky=m5H~~N`_k>EQU&XjiQwXc5#cJ8ltT+W>=?O_ZwY|y_gMU zv&D>+*TftOjC0(l);L{=Zc+WEv8hu&W!Gk@jR41f_j%-2RoNGw=95>mYGoI982NTS z>fW>-I&fcefw_JY<8a{;k8rtJfhT_FUWjXGOe=HBavEw>H7nNXT_x?3jq&O!vS_np zC9B$0X@zQK&Pi1kFS^+2+r{3}oS2?Codhou)VI3s^SkjIkaa*vGm$fU`R84{T+>?e zUCdljTv85CCxwciWaEk~iwVl;X7mf149}8QeLr^BTR5db?~3oD?^; zH!gY$_AB>`3(N`(7mMn42}TaihbIdQ$<3r3XI}#~Z$R~yhn3h!py_i|xc%+> zQXLaU0!I}2T|VZP$ncYwWy7x*u2&(P zg7CGK!T!)Z-GqPIrPV6hsyeM%_jlTiZSVp^oxQWf)rTvCEAHKa(N^YEd?;FSu-nZqA#U2%N7gP539qgj0@I*v%=*|bEr0ruE{sVM<0*KNl-Fs zdFpJfZT*@Gmwwqf+s-d!)%x05I;2?NRT{RhPQuv{+(E?5vvh84QIK$Frs_hHq`73`!!@7aVVk;YuVQ%{ghcWKa!7nmg9(^mLmQR1NAB)N^+EyWgBo zA}w+Sy2bRgz5RVUbWM8nP-&UCC&T8zmZn{)ozfKJ9_C(n$K5C_5Zj*QI~Tr*bIduv z7cs7H%x2tt2DR4tV(@(Ve0wiMY$hVjWigQY^s4ph^Je!-22~O8J)jbbEHF9nxvQ+p zTWn6OCnr-3gD)0r05O70n>3l|p69O58yKJ3ow{^aq+pB?Ps!=*BsZR z*JOdl&(k*OsOYiOu$ZW;E=E0|jkv4nrUaba%$<{@HBD#wOS~tQCx7kt*WUjftSui{ zjjD}_|1&cn&dlcKdVB(W`d#WMGN7@wwaK(eLGxWc^(W|Kd>W9?QDw8dV7*{RjyI7k z0dGi&VUYnxy-dTXIIN&b{)CX%Y5CZ3Z(4Ecj}_WM{dLlH=0W?G#6UIK8eg}w_)thW z&Iz4zwugPfP{FgD44sY2u8MG~*pTel-^7bRijnHgJBv#WCQffygKqwAoG(8>F*OR? zYYmX(Viz%+_G+SPQj-~0 z4Abb!^O>w^s~o*n{Ru=E(Y;Zf*>VuvQQP#dd^WEYt#y2LO=I1=<`AoN8zJ|}Wr*j- zmD{-G=y=B45_A(>Iewc#YDOBD>N>i9T_0X4chSbHZt3(o zK5XHx;4ZW=s>*D;HE5Q3NOt}18s$oMlt0gFTeDDO+8Z9jM^dc`t9@L~RcWC9;FSoP z?i&-!uxU!QV_3ShFZVdQvD;WWEITe6ZqjHXu=B5>{yLC$wy>ss#G|qbGF#qo8gv&L#*^LHfBWfVfEC_I(34?%iY>)6W!yNjdCHIb;qb-= zr^?lUz{uZ)`mMiiE!xlD-+7f~xN>TVziH$wb+z=d_ae@h%!o|pENt1XImP2_*SGtH z&L98vA=h~lW(;8mgN0m6#L3^KfT^PV8#<)jj38@JV||BfMDTh3wj0Vf=R% z#PXM=?|4cFyI<{5;lN1I>hD#7YGk8!f5XTA`?1re<0i}1!Vd3yzeR+_@EZy;5gxy& zN0;*IoNATfl#ARoM6UA+=77Cc0M|4i)ei9e0%px$z8643b+00L9#g`_7NF-FaBmMd zdwXjIas|2h933C~g+z4! z8MwQ@C!%Gsb@u#`oF1K!JT@`a*wWVA){&W4sAFPbU}l|LR4S>gp{!%1Zt!JcVd3=r zJoaarjH;HIog=4^RC{N)f`&dFCqKWGLPyV^k+F%C%$$|Bti-=BdY#lREi%u5l^BYxMTnt}V}o#)=UhtRSspZv>!u;{tXr;+8yvfewp zw2P^=r%w)t-hrV;G3VRIFHx1(Yx~dYp(pjj_wADpHT6xwkujIIuO9xv+L5Puowp`d z_G@b!N0%>F$rnZ4x5hut2mU^`K*i5 z6w~xrJYE_?gBHVt>B=(GCH(N_;t6W=pqg1Ki|R=@d7p&;CtEAZI6| zlA&UT0swIEk1^f?03Wh_=O`Va0o%@5KfldF0j5f8*L+Bz0HUmRbDQPpfFFw44cGUj zBVNtYT1Q*>#>?};LajFPB#6E2&!iqy+-?2RF%^VxNXYoMHX=1IZ=K~5ZipdWJ&Kt~ zz031o+<5D}-Nx2nmGC|ltu}@_la>6HCsamln+F=*TTH#Cui{ z6a0=NV%?Sp=)mma>*3LDCFh&84hsNK!dljK6J>-}VPLQUkEXp~=>PykY9I+3Bw4p) z9-STdq<1Cz&ntUS-Q+rHDnUdC42rUVhLrh#EUErk{waH0q#8DZI~K4^m3bortCZ~@ zBSUCZaNWo9 zXLu*zTEb*x82HSJ&-3wev$+~|Py+|bQsIM~@9o%cZB9D}^c#QvcKl@K!o+rP&+V|F z${p|hyzvIy@3Wx})sTDiTy(4|9`x+2KP-HHmjPl2hH59nJvrINN1rNPt9_XY)67>D z72Jd6F*}Ust5pk6|HzNW3ohlfQUfb1@tW<>Ah$7NO` z-mh_H(>A)^^N@hBuiHw))>`)+9x2I@SRB2_+=mPGH&t1s6frKa<5718C zob$2XO}rEgbNh1y?NPL>5g(kPLsuFL?KxT^4hj79FN(w;ei#s|AXAs>s4e1nXzCE) zp5F93J|0*oLB8vw98n0cV84_>t0eJbYgw|Pz7Q3!Kga@W;ya3RxJx5{C0D5J7a58T zCQUi_(yZzPDityhi77wHZioMPSJ*!5j#N=WgiP`k89n=VFVGIb+S1Y#Vp}C`IW6J# zg_!rpW{UtzLrYQnU@f!q3X-h287eA`V!rlhEEm!r$%A<60@oGeH6wNU&WXRjC#+8u z2fMdN2fIhumD2sw8x2sE8VIHM2Yjx`5lGJX!<;flx)y9=c|a_`a9~}BV9A5&Ied^I z4_Z~FDbGeD!k2p_hC%s{(~ohmbnsUQdwd|OQ`!#b0aLMaMesUr z$83av1KOqCLiui1KEfXQ1F@UM%`EW)&-JhJ+bOp+A6mfRn{-E;c|W{maRrNieOpsi zNbq$1;I!{jS%bXpWm1EcZqq@GAe^tlQtWNUJ^n+56T?cm^_}R=I%=CvkV7^N!haK> znj>O|jiRO$?@kjWQw}@rP5wf-DYnLr?KHxE8d8l&)Aj;L5O28`<|C$i$$v6+vAll! zP7wJt*84<;fj%&wc=7X`R;!AR$sGj=GV#*HBPYUsqi#5SUsn!qslk`0Rji7eei*!{ zv3)T5Dgq|+Kab((sf69*_hjASazfZ%&?uT^SSRqlTl&c})$jOBrzph0f_hMvGuJQ` zYFIn#b=w%l@(R_A^3%S;OWtur@9w2DqIG*%(Xz;@#$y@*d~{WS79zKqf0l+C(yzu- z7x1uigDn0yoIOS9l+lv70lznQ`7*z>ga=qU#G^k-IFF%-^}&Jbh- z@q*ka4pkf0@i8o@88{+6p)e=mi**ByLQ99_oNZbL38sUj zI>z!xyMC?DCVVj^#zU_jpv|9$@=q~Rf4kG-%?HB0|F$hsDV$QL7&RN0FzOQMUFX^^ zX*6+L%Kq9GB)9sUfMN2U&R>7(|O#{v#+^BsRVD1?T|3nN&{k1Hitg z)y3x)1l+dqO89_adUWp-NCn~y>OK-XCL?eh0EUoqi3xdObd7Z%;{|jV1YfyZ&FlBS zq+No2Nz!fgx^c3%ZKLi#As~A@SGiY<54oqtTrs zI1Jl#E+4R&OI~UwfqXFv`ZtLhUnN0B0I)wAL~JH|1?s#S_+8i^1~4%BY_3Otpn(dP z>5TP2upfG6tjs7f3TDldswozTX*&ndq8=LA~1=B%zCpMtN_XflX;V`+%I!&IK0Si76)V`I%={ZVL+JmMl7bURow(z3wrBpy6a7CElNR6203SdAxA#fW zm(r^%9x1A|5F3)8?g4YGr`BN$2)_&tp)N)Aww$u!c{NO8=04}&< z1lTM$nm@FlWOU9tKtwr+u8^C)UaA18zLy9RRDAOpR3=mvg0PH826hO*dGcWu+Of^+ zPD@-%k@>b(#qrcfOluW%C>i9e?4CpZ4T1)-2BKh< zW%CG4);qc7b@Q>|wAEzEyiyRZrgb;JO$Tep=o^hsR&}F6mfr+`H=(RO_0&UVoIr}6 zTDqaej#zH?cT#N^m#Ki`P%b@-0#g_mkAmO0^4n~nUuvY-N+^&{j*&K@pjI-obMICW zid~VF3lV(akvDBXjV`rDFee+kABb7LdElTy+7xTPiAd9vIMa2!FFtA!_>VYXrUYie zWb-~WW#0)U5$P}B^)`yudv)nwk=+k+3GNdryRiSM@3Dw=RBot=>rL+ugghoKm_pxw zRl>_1?IBp%8G>(&bbjRJ2i@R`&Z9%nRROHu*N>sUx#w@bkdklcNOlT~Os@M-;ylc; z_4%tPa-ko5W)(;(*o;Xf8)R$EB*2NDb!xc%QksF^G9|s5ESSGKvFEgF4gn64`>Y&9B?@= zCufxLA82LE0&{!P2&Y0zqh@h(bzPlbji4lo55A>*t7H902X}E8%y)ZFa1=>7JeA&mNT=) zSXpd*nAoKW{2me{ePj^;qB7{b$WQMpy;6E~e06Xe;ZjB(0EQ zfjeq@l^qqVJHNPqTKJ^3q~YkY6zs_CK?!u~BLvy_h3eM>sLK8_{rbK8>(3vk-^|WV zy{6!Mf#2T(v8fA|XFh2!{D}NZo3n{BJc4lk{fhSL$v^gM(C0aEc{%>O?ME^mrNt~m zIqx;@I)wM58-i!mWJiDFbwS9+qloKsZ6%WTQFp1C0-p3j@YT2Z^<&+NCQ6`wZebaN zC8*54G`$kF`{A2I5i|gRerb>|B-J>j%IrHIhg-3;{@39d4{WU;Wl?b4eQ-t$4(tn( z1lgl)q&p!LwR`g_nh z=61`$w{@wp>DpTAX5{H%K5P|r>Q{}QX)S0`zIkr1vb&UGMa8jU?kDDA^qJQUW`~EW z9;pA>YT8t0GI=SAWE2Rmn$HdyF&ulkBT$>73^TjFwaizY*@@Spon6l(0vPSCIVo^Q*_0Q?_7GD9g?J z*%!RsEDiU7y*TVShH>q~S)*-8nIYA=MzL5f`c8rz-Z%>$UZEvPNQj1(_AMk500_t! z&e9)d98D_}!2g9nrvQWkfQ*Nn734yZSeeISe$W9e-zToh=_u1nN=i?sr-XGI2@?1| zuC6Rgp^Q{v%-&f#&0v$>y(H0`Fd& zi-8!|aqKDR06@*>*_bmR)8}{S>%oja-|luRk`&$}{U0r0?RZH{9!3l^Y_dfZf!KoK zH4R`H*$fl_Sm!jrogB;$02Dj*ar?ZBBV9rSTN^0K0087f(BR$TzM9vS zz!d=SOSF2|GECmP>d$wxfcGwH2>&j5{Ohg_#9(-K{(Q9DTu$OoKrzebn2CJ}OUb|) zROOFTMB@2qnOJb@oWL|$OT-u+7inDCv2}B*OiHfB2_m%*+`);FE@2bj{(nD!g%fgI zyw}u}GJk)*Pm!21@^v8G{T5PGsz&?0=S+(OG?h+InGZ`davmJXOnRwUyT-!ed>9p0N9M0wRkxs#XF?W88luYP!#)pW9NEilZ--yjI+%}iJMB#@P`F+GtA%8IGklqLFxxvWOiPGf5X z478*MhlRPP%Mhe1=#Ec+*q=K3oz%l8qx=+siU7UWFge)#R}L8b0px}a5q7db|2)CK z+w<_Lv?(At8t(${B!uNxV?Ic0OXzS$5^|pVO%a%a3HFFa(ptfTQqiO|o@xWZO9Roy zc1OcZl5Y`M1CZL+p?Y6J>oRGoI-IP5sEtUL3Hz$cCsbfSkpPNi0?m&QP3hug#Jz!n zIcUG(sRI$TfXwQ&CICAFY?VL`+NfuDGLtiEwsk^|yk zGm!!YI_bbYh^7kMV-ml*-x@o}QYZChBHq;3NfF>?VJKy0k@z@_B+ zHx`g$yGFMp?#r~^2Ckx^iLH|dp)H=WT-i_Mc}-oQ>)4L#lDqjKW8ZGX;}%JXMz(5< zEC)uPs&bIiaI@=56WDdboZz4x-CbC7y5-2bSi8uMsm&L13ZSu`_HhjS(%fWw#E(Xn zfZHVGY!4+ErBedaVt!hjRrvV5eN;GO&AU?R!h#y$=evD5%iiXYj;&1R?=lS!Qh^=g z##(8L-@w948J!W-DS_;WOWS&Z~cE)F%U z1q}C4+l=sA5(^g#34bucf4?h}6#&Mbtc)f|i1vEFxe^e$@ulW7@aoq~lct6qkcpc& zyy!Cv&&O%vC6drY_(l6pl^>Hwsth|m0pA@&8bA>5OK(0k&k~cekNHf~jofW3BUb1P z>HxReCNFD!XY8cL7j7;aEAYUe&LBMiD`jbI5z}D~-aw0_*@t_S!ozEg%TwVcL9PE_ z`2e@U32AHyf8#m_>2Jr8^9;PEkFtkp`*&S}90$(2>*QN_>Zdr9f zS5oXt5^0?fWZEE=z~*E`W1$DxE;f$p?|p~5S0c7_BN|0%=Z3!AV;))Rz(7;eE}V4C z^-%5Mn{@U|+Nwl^daj6GezZ=F2A>f_NCZDwKk-!V7h@J!@s9^>-JU+fik8>V5I~GY zKWv?{Ry-jA{2eyxp$eEbl2%FFD{CNAdxqTb6CO((F8XvIEA9f z?k=ZP|EDiw{GAp-R}951;E$!|>TTQsT0mh$pFA*o3E<^N3?o|zf{t{!0Vwhy7PCz2 z;52Vq6RxtwAknFq)2Cb=mW#mv3=El!ag&omuf%_%X8`KjLldi@{x*YJM4gIgy49a1 z<87^f%Ol#G->)1S_`=r@f%a!kxl}y5(Vmre7H;_hpfp$nR0H+dT~*0BTsD&IRaS1MWTvoacRr*wQV1yVBuGsBv?NJ=Sg=V)HQ2@BX3 z^}AM&mB@3f`33rp?y{mTOE|a)6A<72E?l;Oto}Amhp^Igswng{|6l=A=v#^^w$L}f z*66c=@c~yDK=dG%o`e3NPp}eNr3|#-+4SiiU9w3%A&<@qEC_;$;x+|_w4}T;3Pbj7 z(BPcA8O2UqDwbTsv38gnU^%fXYZ;bhx>0JC-;y$bO_S!V5{@0BBEh)S!3gFt&mUTA zu@N7Es^>wpgnk}?G#?jX1%H`Y!bYfoC5`0nxdUrW|CF~kRw$#VHnI`Gs3zedAdbOiL zPZ2^Y{&9euGb*^jEX*QJIGhR^);~_k_U=;-(Rc}nrv|6lE3toHp+HFAgxf2N8>y2g zaX3Yz)CrkJ-VYmn!*5VZEjR0OgmlN~YtJDo%4^C)y{tzD}BQe@yJcqcV4DDanL2xpV! zOy)9`M^9P|mL$-7cmhEaSPzvvEne6db1s$uC!30~*vNBLx zlntLxRCYupe5@nn>iAZfu`E?|$GY$&sr9t?rFZGQxMx!;L`I?ZPsM?s35tws5+4EU zZn+s-B_QjZ>QL{WKqo3bo43?$y~q|UHMhc-5l#l6&6 zy!1I8djr*4IfRq6HYAN>#sS3=VZsdod*^&}FH+=*fKT-1SyM#{`1Pv~I*xyd;rXF5 zAQi9Fj@oCUR`w^hpJ)5eUfJsZkXtNWH4A;(hy&qMm7&^Ok$w!n3RuVhK|Aq`_RPzh zOsTOk!)%ZaJqg1wflrt@6~r~xeF%Eepe#ju;XQQTEYDEWr^5p2D{OjG$3Mzr*(db7 zN+I=sw4=|pf;2nY(uKditxbxhXR4Kp18EXnCR#lU`m!#rrW3XFmdSsxgk8<7xWX5B z{X%-WtUxRCY{PJ^g=fm=36bjZ3sQq}BZRo}M|iUTod#t=@h32R0>_U=Zagzlxxnl# zq3tar=&pP1+mnBPrFvmHvHWZb>}0~a5hK+z&+zbFh2E31qi$m!FX~ccRSuwIz|z|C|61 z%{btuF{rn7%z#>){=sVG?$>kHiDD^2>#BpbfY4_ogxG<@@zrO~%e)Y2i^J=}6e9Q# z@8|+Dhok83VzRJ0ny)h$@K0~km@l$Le?Zb4bb5qR*I2@fc3~PS7kAw32|KX;lp{>{ zj61l0K%ygWAt^fxsK!O|_$INvfljo`>cNeVMD5;ZFfJy*m*1?N zpHIzzDJbiF37d_TRnh@^1W_k?I`H)izW#y|4i(*j^p z?1Ny>`OH1xY`v~gV^`t2HWSsopsw>&Pw3f*0t*_kjQ+xDicTj6IV^{?a3`yEz-mpl z-jNB1xB_Lm%%|699E&#u=k)I4=GLj2)LH$$hs;M?a)L)l*KKBrL-5Z4dfo+qq8$ks zQ2}&4aGzOy))v~{1mI>!0*&iX4z<{eI;;+1`^f1BjH(?kxQ|rlyES$u4*AnJa=`Bj zV)L~NvaX)hCr^>vJSf&^5!AgYfZKLZm1(bBggfH~`#VC-E;VM2CQ*$(j$*wJO>RU| zV5k`$Iu0<@sN$TcU9&aRw^dl?Y{1oQ!DXg)8G!8!9vCUH;(B+o+Hmv_p3cNCQkept zf!0CQrYa~6B{Y-zsMU7j79E?Pgb-6GE&?sW#uX6!H@}mD<+Zr@bFT}Z;+Z|1WjGdjwDXcSo?8LGI(K)b7zs7Pu=#`ig6!^5!Xt{gPksGwwFTDp-4b8X zz24?O{TK`TwyA?D<9_=@iqw)z%T|t}M{;)Yf>P|9Hz$I|jZSkg+cY!wt9jd&IB!qj z$eqp;V-A==^LAULp`49jU%uLs(&FAd7L;Fm*psHPb(+dZ!*CYMC-B*<-MI(fDRxAg z0HV7q!nw1&EWc>=IV*EyXdnTy?7i(2`xI-@xh+IE-MBT)f7Fp+GiEee>GbwSy-(FPqmraP3Zsbi#SGtBY8Q-g96jeGr(o>+_yWcgs=SnwQ zDBl)evo+%I+Be~FUUl=`q#ZpU_Gw+@H-M7ERcyk(xriSXY$Q$PSt@?MYrZ^94d^X7j|GLMPr2;~%M?qpq+uX zS1zbNk-%4Gt0bo@mV28lldt%60$!{{vB{{?9zqaGbI~*`JT1N+>#T?%VsdR1%&dq} zKe}n}@Y&HG@)FwQwDH&zEl-#oFu0TCZ(+9Omix?78NcAXU@!Em-(_S}j@7-mUFId9 zKDAM(L)NnIz}zWKr~0cQp4D5!*?Ej>)#+2h6-KawFDA^!Cps{=Yjz|F?Yq%kaKd|E^6* zLJbgxp`NVS;GmSA&?uir%)kI0s0pPs+~0-$*%m8;<7Vsa4YmNd?!(TNzqGgD<1YZDLtgDab$~9T#x(qJ(X^rTER(gjRe~3NMizrWFm3NGVx6Kr zebA>?0VFn384x2QdEHj<Xp{;MWqL!$4Gp?<$|KJ0TYp z(BbTqg8cN%9wsZ``NQX1s!jgNG|4~v+GW?fQp`TG3J8|k7Y>@yXtV84O!Id}?w9Mj z=?!|7Yqh}ym2=|(1B>3-_>f;Z#6`m+R6I8t^3x?_8uDL{E&eK?WZUN@bjqPnu$dj~ z+m)eiVhFg6XYgRcgPy~fY53pltZ|%oq*RF-fF>iNIitG#=2GHc%c0laNHoD~*04&d z_%h9F_p-uk*Zb8YKD0N6-~jvdc&K!WXvPe2eT=ZAf)Y^1w_8p@mQ z^Vh2b$UaG3gig4I{ppmm1sA-OkwJ$8?)Sb4=$=|ZvqOwV=yH_kC$Hfr0CP#Q?jEim zA5jcX+CpgBN3u7uB?8GS$;@vVaWY*cXLao@$|T(4Z=f6Rmh8m~X%9)9gAyzZLHH9svwEN;3%qI~QK$HG+1-7z zdxwC4Ko^fo4R%mJL+6X(<5M~@d`&I}K>V9i_y;q#duLilcxSo?f`iG1&x+I$3LZ|b zT4xTF>0h?O-AgfCMj&5Qjip|1f0P=^6WUIRrol3am!|KgxR8{%V=3q7@`(4Ol@svd zGq2iawb0LquM`Um)C|u|)@Pmx7(~V3TZbo+?){4|=dj70s;y6Nq!h zqItfbzv?*x)`ydgPwD5xM=oNB^p=HQX6 zc&OK%WnuvHlcuO>D7}+kq|@zB#~hPK;fBo~T`0k+BmkRriZHvk$VLHvjVuyI7;iN> z!go^o4MnuKQGIon5i_YMjqP9f5SZGpaj6-;@g2VM--kO@f~ad-8m4pGnxsxp9XBaI z8HY)(=9Bzd2MDf8aeS)8ZwD<7q)GUTConnHGlO%%Z-G zshbPL4&{T1vN*$!Cx{YNhOsxNP}sL>@J2DWcXqyNz=X(AgPk14UHMo!$BB9XBe=Pz zE#!_3uHqVkdLyF!g4c8mUjjm>VS!H+o8Yh@COeVv9GXy0n7*R(7G&6kWwM@T#O~jW ztBH$ro*yOE3Fce?`yJl595hmCaXXX3Fg(|I^B)Z$oWnuMrwrgm7}Xw$4U4B*6MbYl1?npfDsU|>KIBWHmx5n(N&`>P z^Hv+U14t75Nt%CuMcqE79?(|G={^DPB=LKE-=S$Q9|lfhP^@Wd%D zgrI+fv28a}N{(gIN~4QDw3bCEW|Hs6#}?$BR9FjYG=EM57y)43SwnT~G*91oh>D)7 z(%}FHW({+G9$SFo>HLG%Co`HxNwYpqcTGGuX4BTbiGxKzP+YbLo30Uu$ciY+-kHDK zxxh{M$AF9L8wPNX$-fH2bP$GNTQpN)n1eF(On zWUoKn`*@}jC-D3pZ@GV z7@aPok7VOf=bQmq;r#Ko0Gq}(+b_{R!f;8Rfp_0jLp=HfbCOeBWuvbuO2T50un`#C zz{cWlgi>7GE?Gm(PDndo6)?nkEF(*3H4;DK64v*puLW- zm12)R@CgSM1=i`%xn!LAXhYTM0uC*{r9Ni#96*!P3ZgG(Qi7kdS=A+bMAu|O zII}Kgbty*}Cx=GjqcLznB&@!4d2tTSzCQb=+h*$tOZ+8XlMLWxBxe~(6%84JY?q+t z^*otB{FCS7BE=!CrzKZ}MInJ-QA-kfpoce!T#B}_V_18vpmbgRuR=k)vE_Czs-stH zN>nckL&F>aUo#>CY>#6ZYO4UijtQ+C&89u%k$}V_M)0<{dUFx``kactv+xK4E)j|S zv@uKI5xJXUHttD{Zt<5|-v(O4gEX$>}O8y0Y%UUsksI-=Yl6-ucG zYDgG{kI&2=IL%v&3@Bc;6vMj6H=t?W6YiR3ZpeGcD|}P_I0o&voq7?)a9o6<*>__j zg|G=;bkHO;19UWm*at$M7csS6L$dlm&d%#rRI0J(_(;J@@Jl)4lT`JY^J1 z%VFyFUi5H&+K1o~ZL#0+z3~#Qe-LxY7QPr=zUoK0Gbb6~hBLn@MJ2L5*(QPgsF?T) zz;4<42jT9i*FbSXtS!8w`u=;~fdpiWA4p$Og)W%&awiOrEy^KQj z%PRWg<%4tNFoX1h@W>=t&q2C(1p*%Z*eswa1GHEN7@noWLja|l4<1am`)MuvkMH2# zwI!Xfg27sGZHNcovElWBPfG>lmKznDC6-?JvCTO~b%-G~k))&8ThgI*$a2YwMSMAx zkK4^YN`xQpN!B!ze`rj~QAK}NJ>jjo8tSbmIcmL1Ei#2-vbREl(x$5BNKPmJiYwAt zfMdBfRLKerVx|VSjC(hIyuqw`zWeGMdczxfCC8zC+`I8}Zb*W~xAFj@rLbyG z&She=S=z-43%!Q~7P2w2rQWy0PpVw+N=(y;#jzc}a@IFZk8~KhpQ%AGCJZZI6R2b= z@3{e~jkCQIpSm*^?0XiVlQ~W6eOyR`4Xb(O*copPtLIs^nv|v#L+9m1KXQF&1}naC zocAoeiAjW|NdqHh0E&s-MDgM5S`HgvCz^)Uo;0b5(yX2XnAwS%-w_~Iz@E>9>GOLP zeYNObW&x9<4oxKZnc1gTo4wm8*SD8po%UMcLFwF)an&QzoDqA`pO=tYXd~}g-nJ=k za4|>&!)4h=3%BpcZKNZdWz~HO*y-F+_Mp6Nv^Pj6dxrcaNY#6CdNONqUGZdm&@Al2 zmg0qEzQ}FVfBp;4#{#Z`>1&}kP1={Q;3AdFsGn#&X3g)k%gJrSE-5=PGS4c|-XF!l6j`Q%|i+7r@0Z98hRHnWd!B(}l7p0%S=*=wcWns8CA&E!Bn0TN($wg_3TB z1p&5GgG1q@ii$zIqivBy)J5M>yM@oVB0Tzh043nUmuIpbB9Ts-o(0}x`DW~?Aty!P zmD&m$w6M!w>z2>K` z=aE2+mEiS^?VPm9wrN`4H<48RbRfEDLSsWwRN@#QDasI)h zT$!9*1*^c=X}keiRh{G;si>K?nX|o~pxS(}B#F+caOj4!2&p#nj{=4PTC!LPv zM2ARL=HwUp=$ZzwH~^bg5HmIiN_4aXQ+egWN#sA(@6|TBB#N?t{lA(w^M9znFOCn9 z3T2I^sIg5mk}Zs_tkt9$71^etY-33VQ)#S~<&h;BYm6b;hRH5v9pi&W8A2xVv4kNB zF=U&3-t~BV|A+7W@jmW7_ngQ5;he{LzRrbvpIxI5kC6qKt)XKaQhl(SJ-}V&iJ8#+ zfyU?{^&@a@bKl<4KAXW}4G;PfoSZ^e!18JPJU)bQyVN%{O7QKcg8Nxm_HTE1qtKi@f-_Q|KQFpj9mVESkJ|{mwT8M_gkxiFXigw4WZJb^onr_ zRu;U!*$OcQ)RKB|dO(-dz4Hhh=tgY&;=QhamS%rRvd)n7%8XB3^C?}+zBRihNhQrPpknSU8?-@mwy{@j3Q zcmbr8Hg53c_~Mcrs2=nQ|b}HT!~<>G=p9JALzm4fO?rRpyu` z!;WX41nVMyE{e0jNL>YSmdX`P$6TrmTyqor?8$+99|yJM22cL%S-Ob$R&h>o$C4+> zy6qe)*Wjc}>|fqrZkYn#S)ik|gr7_(k<-e) zDs=n(>zC38f@qw+QGqK<3S@WUAnw=+IbxlM9c-#W5#47KUG=%!9#dZ07~+)ESv|-( zpd6~sKt`;M>m3m)Iqhy&2CCFO0`_9_v!*dB8S&9I;0Xt8RLy>OmkB8#ThwO@u7 zOTm+0H7E+P0-{MGf)Nqoiv~@(24K#QbJxx~d>$DeCsiCWm>wOa25oS@pyp+$##hVi zi<_fYd+^Uz=dNpA3%OR$qG z(91p`N=W+7q?-rC`(AKP0^*Sj@b8_TSMwXAQYfa?d8@F%n=YH_c+V450gvJ4r~$Ie zif&f;l-Z!&By?~1XYwnHyunL^@pws?FFQQdHR+`2GF@bf4lVgd#kALHx1fDv+KD83 zntB)KdOqWMNVU{=C7jmqB?ND``hJBm%AD_5=k8Tk_dfZo%O&nlY5yp^^DtnT6qC{> z6d;OVh^!~Wuw@teEa!FkovHK_!*i=4^)w9I!ONPRaVoKZG^(y}*ok#J zHdUfWpI4!#4hi5+7L%oy_;Q@_TfT?l{9$$AVfey`$->Ull+{|;cec#-au6mgzh%N!D(R*CF!i^h<({_9 zQ#t8LEnQ_^`xRNQGEeU&7H8hSO=DY%3bV{c?yn;4hm;;{f5V1za38|KzN+9#*Xq}w zt{a^hx^Myekm;04WD9YV?poqYYrSY|e&2E@Y=8LejL2M)QVk!iR`z%_Ks+bu-(~2i ztx^V02*saG#lLp8&48l7H89^o`{a&m?P~;U2GPw)Z*`Q|{xNSlj$1!Dh?8@ql)Kd@ zIkIEL(jS|Zl=;2dTNe{F%SVhiw1j;0w)FEj(>u^5htxA3h|9Xv6PD-%4G5)(ge`dz z#>fMHwdxtEpWb>i?FjTuGq*PC-e?k_LL;g<+$BIM7}Qw%wxMTrDW*!5_9?!B<*0x1 zj1d+}rlB5y8QG<4%|j2QQ_V#+?coBSydO?9Jr;F?7v^hYG(E8|XFsU<%eIR{fY!W` zK{;lE(YBewp18fCGHLD2J(X=`$WJSLmGG0to}>^|tk55_FGXj6Bgl6lH@h0zvvKA2LjztCg}HQ#s(e(_`zRF0n%9i z!x2D#fC5O?hrTP(trmzQovpMDG&&ukpfo*+?8*fp!swF z29gWDSFh^;0_OT6*9G9QH#$;Z-UIUE@DByP$>^Of;7EOP0sEuar|8J|ZP=;R@BUP|K`|BOj5^Yg#cJtAH{CtS1 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 3c079ee63d3b6471b132bbb24ac230c54f80e20b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28465 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 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 ca648b77b3ba74261e9b0e7d4bd1ccc40365c674..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18661 zcmdqHWl)?=^gTGZgb*wcENE~EFu1#Aa0|hM4ek;g65O4^ZE$yoKyV3zJHg#u7vA50 zKWuH)R&CYpe%PmKm|^C2_kB*^+xPT&Iz&l9`Yk#UIsgE8D=QrCG@v#iVxB33lc4_t{n#AqC`H{@-oTw*xn z@gKzfL)$QNS7-mgb2+K?h)PR~^oH{6^^?z%4rO674Dx7IG9LROUN~>vo|Il5)Qt*u zTngVGw2cW3H1ETkXRgZU-!@{3_(`zHqrNkZke4?b|A>J3qZ1K+)>AY)9+!aNZGZgv z%+(%)f$u@AybsgO@fS@x20Va)eK5zbU;gkt!f??E@I_xRMGj}m3I_5Y!;yD}l>CAT zt{v-R8Si;j2kuckV{saTQ{g6oH=bX)d^Lz+UnTvmc-KDm*x+Pq!Do$#ktivBmJH@W zs6sf4p*)Hj8-1WuxOxst;l+y^8~eECS3?J4me8Ra*&g$Ku6w`1i0n9ZK z1aJ|wl~WV8BtJ?t?(LzR7JrapLR4ZO?N^qdW_+|)6{X-Nt)ejErVyq^ucBZ3EbINH zR&Hzz3@NS%G_1&cH&qfgSKk9eA*zY65J_>{>;o%eu z@Sn<1%POe-ai>Z^p{2Wy#Q=M!4QAHjYzAHLYXl3ThvBGu4B#~}$vR6LC#ro+$}5dy z8r_ucrQfH}6am^%AZlfaP~k#FSc1Q`?6>&kYoj3u^^+4ztmdc%y5wP&%KYWP4*ka} zK}kn4Pq5e#8c&($L!zdxNYGED#Y{9CgYpiGKm>0i02L3Rg<5=0WmPdR_&Fv$DiAQ0 z8ilO=?5dmZU1S%HQ>KC!K=^e&AY)R=0+rLBNXnTS)DM6~g-eZ*0~ckvb~)T4$DZO* z;#~#>2j9z~Z1x(T!p~`{NB+W8D*Qp`Kg{YOI-i}KVf=YFDkrx;j{*$Ol7}+bO@W|n zs+i}X?wm{1vG-4t_QsPqz}tzNPk~J8T@Jrzo9dA4kYn_{$D@glTAeB8l}Dk!&(^m0 zxEBQ^xBZG59~UKrqepg)#QtX?3ch`sIk|RlZg7ydEeaYJ3J_HF{Vp;)ooqcP9kkG%zs8GQXB7MkuduM>LW$+er z75-=y$r}qX8w;%}8WH>%4KW%4i97)O`OTI%T6`C})*E8OH&#JQCkQ0IKX~A2{}J%K zv$jLB5kqnMjl1KgdGfLQGZ8d|jqUp|e9fOUHrMb7B!g@%V4`onA)yu*O&8uQlNE(V zVA*djqlHR~1L=d$E;#%_b>F!wTeJwSNIZgY8yuH46J=O5wqvkLPFf+QMTnHs zSW+-%PO6){iY(0lrLK%HyZ;v&qzyF(%%=E7nIoG0e$z7?_oM>~VPzma6wfS_^_MiE z^Z@irZoJYUJwJUAUBS3dQQTRmTt1P?VbStVN3zsN{%9UczD>?iZbnwU>anT^7zkk- zN!d~i%RdD>XroypShF7T98#9WT}gp-N5n>SnZGdWf^zCb%5r2UBGF78?#TvR8=PwIAl0c)M%f_Z;_60 zYky(ZWX?!bvMks5rI9`@SynLbWc|%L@{0P<=+NOXV4k41#d(L%g-?gHeUu~}J-wT6 z#_5N1N^`E$cjq@wNqa}*f(7?7QBbo2f@0dqZ+Q*6$MMTvG+ni(4k_?kVq2J7VABF2 z^%cF$g3Jw|o%Uho=^Ln>}NQ0pEmE3pfm1k<#?FF=f&!V2-}V#!>v7{9NapbE|K-g((>y z4&Nw@6Tgr7V-1EDiH4A+U`fi72#w^58PVoQ2<%P|3nHhGo5T;w8~O z&HhK?H>p)zHC7f@-VON+)z*$yGjkbLUe;!|Nfy^-x@}8T9#kF~UR7QZkIX2bAd#RV zOm)m8(xOPKK7l?^q_sk0T!Ct&>aPhTv&FfguLrFIOVe`=T1Ye3;$dkHa(Ja$UYKU+Rbj`o!tQX>sY>W4r z4qC%K;F#GC9{Z-xs^4@Bx6<*b^KkZXbt6dhU04ce+LwI)r19kWZ2d$ESLz$?TLwq! zm+1G`+Mj+TZ)Vmp>?_y%TCrP;7)wkkg`aZ|d=AMLl!w(7cj-4@;6 zqferGM=!v4>1O=(PA;{g<06?qR=0Pb1cB zltq*!$5X-d6POA!=`1PB?A_qrSi*N<-JuiRw~(wRbjI9b77L z(tKah-0|aJubH!yGv89LJiYZwr%C!Y(K*~X)R}ZYcZS=la<0;-J1ByexIzt4^PmJ+ zrlWHEBhGH(&xmNMWka$x{lb||iQE3A^}mI^;)CMB2Gs@vYoAIglfIPWxfRW0;M~{x z^L3Vi^2jB$mei8Al9KD>qpx}aGjtZsR|>NWSK|He-qx|yEnE>EF)qBje}7N*oP4@I zg`kWA!K{8a{bYQvx=FE>4dW}dk zMYxxzen)HNbZxzjHjlPh(KNGl1=zH^Rb*el!rjN+kP*q}b(K`9uaN#Pjn{kn`5?xz zeH-(6@Tu;pb>_Aie=JeF!~MynaH^#4$p89RAXjF6?-ko&9}BXcfIIyLj5WzUX-q$) z3FggtyLV}cTkfnwpy%U6_1s&t66WpWe#vv<{ge%}yuxpA4l0$s1oNB6GxX5^^hpuuc8zun`;dmd#z z=#q?7n9Do#&Z(p#t3q)w=`?!<6?jt0OQhz78S0Az)Hqdp1()ux|yi>Qk+J2jU3hW)?X5Qsa=c9h4W`c`Z|zc3n4%k6_3(U+|Qnw`v7M*sl-)9VXPR)zWm0Dy~C`l2TJ{QP`zaj~(z z1Dl-g9T@KF>1}K8Y;0}c-9MO^nVp_nxVpZ+zPXuSTsk~H`Q0~I+tiwzk?rpL%kx)g zb$!#;&Tf8jS$J%so6k?bpm0?kqqjtq#?}tvAT@clZ-k$i141I%1ts;(t&dMmD498> zlr-#IJ!6tmX*u|^p+!rpYnle8X*v0e%d32n@@-w+U^|zQzZ0d^b-___R!;7Pr4BKmYF@j!q@t?uB5Djywd9Oy5_#&zibjpa^FlM zlQT6;?V=#rAU&{yPq47Ej)AS))j?gz$kCqRe& z=CKa;^sNs*Y2J{hcme{{=FBANK`{EwIOaA7qp`JkIncgAze3{n% zKi8A(bp!8@uy4B@HF_qdZAmG&=MP*@7dra?b3Iqw)$}nRa5(NW0{}-#``@+}*Dcw~aqXK+exE-FN&P|070iEz49ecq^7a3>(t)71Q zv|2M{Kqn>pHILb}DgeM_RI$yIe~(52&>ATGXg2I1j0>oY*5FVuZ$bieiq%`#>x_K_ z0N(6QtvANBkHP`u!JKQ2yX|lQ12*3E#t|4IfQhDor!p(%Gyr+XOW&9hxBwB9m;bU5UhMvM`Q{G%O9XVb+f(uY zd|!HfwT%fR1})K!;17-ICkAC2CG9l}g>FlMJRY2z3XLplZarUMQ2gT3ZH zfN>q9t+Dp5aNCA|)Q{Sr$wtRopflWo_h@a-^dVlc9lHY$ zG1{L%Hq%HT!i zDABK(f;CWG#>YFh*#X>nM>hKzE+w4)vfE_&VAk1wR)iDux8m}MDWu27;cUHW6{_i| z-tV%qRu=JcK6r_JNq50zlN}_KD0>$sdwYU$nx8-L?JpMARH1)=R3a2FhvaX@M_=2k zqjGv{8jSUubOJW@Tv56cJ413Vb#rVy66~<6d!G_oV{Uo>zj9^{I29`~;$pMi&sHv) zJ#A8&1+xvGd$d0UqJDqW+)3$6@e{-Zts==_9NTKh@cuw&KC1Qb0(iA&Q&CbDmsaQO zB6k{$ZI6cp&uacK0!M>3(m;UWnItF1-4Ig#Fz8iSz9Qnz*ZpiN!^2Q0phz~?Gz8n^ zcvFW1`|`@0qS1Y^+|Rw=o4-E?j81+g(W4KSjE0Skt*-WU-07`BlUdOO!32GkO%`wQwzRD;r7Fq0)K;7;G945gFJ5^^Thzo@@K1EHK!k_S|f1w+?5F9G= zQByzV2?^D%B@+y0$e=dW2n!P0e#JP@hr9B=%uFDd#2Qm08A&=43maQmGNH<&oM!@$ zoCCiIp|O}z6JW{!ftP*j*RI#6t2qzQDAuNl-5x_;x)8zzeNzbNqljOy65)3KglynL z2MI-ZqfVF7^3iGZt*vgkDdh{Ijnz2=rC^u#AePL8{Y}JCIl8bcQ zzZqJs)Z%`6w_6$DdlVXFqHlw3-rTc(XZvSsYQe$5h1G+h(55*-Gfv#Dx=<))=oWv@ zKsSB~7D$7*ciEgB;^n2FirD>A?LOKZrl}y&G(AooCRD4g`r5YmrS1GQFGvvZJ%Rq8 zQTGxy$iIhD8hw1STYK``mv4L!r_B$C$8m;^_nn1UB4$;m>wnE**?1cYM6OQnm!*}o zKrcWisPBcW_8IjsK%@Xfu??i4yJg#Ie#2L zz(|^qVWB5NoU4|Xn-5H+E=BWIpn&k1{&L6tW6m(@AbCYoy;chTI82pupuK=Mw!u1{ z=ZMM8=}IClTn@L|k~f(l@H$J-^>y}kW3i&=tF^fa&17>6it#2~vuq9XV+-7U!p>q- zuQ%S5r|U~!RIS3&qK2QBz2KFu1=*IPg9)Su6tAO`Q|px0E6k2Q;gm78Xq4fu;LF;2 zoIchFOHIrOVY~;ulK~3Eu)YO&QBYFmgfje-up8N8^_{w5Ttvk%`<}f^ zIP50Wdp=0GDe5OZncmbsEe}08Q~X{ANRK<|p7{^>=(Y_9$XGbH? zUy~bJ|3$Jzol1wXe(l~+90&bbl&R`UtZ;SO*6^i^{#k+iwT{Yi(}5vb6#nIA*v40V zi<&pzo)W@-+CCk~_rCMT9c6!AMzjyfT*tf=bOFi+9tth*R#jd)-kIPr1(J4(j{e+! z^OD0}l;O|-0g3+BGcOWs>~XW-=6vB(N4)@=DCSr6$9|4G@r((-f0_2X%r<@vL##k} zItIc};nnA73uo6xywI++nmR;m_ij=g-SGcawQGDlFafKQLS!!m^pz>R6xz=E5n>S6 z3oR(I|A7hk-|59f&$uzw3pXGt*#6Jzwd^+z|9@f__c9dfD+76T5dM{@d?5kp*`NVR zxB9sKj|6zl|-*&dcJ(} z75pDkWU%mmaOahNz2b!U%9mcbkl+8wB`d6XgD*NNf?DWr&o+*Y$=hTZCj#D-nV%G^h;uiNABL&rqW0NRh zP?R0n9L|7W51L1CV$!*?MQ?MeOz%qc2E1S8<>|~SCiJGm)Jn>Jmk*9Dt^b7;tBTPH^b7Jfb z`Vk&^MzAnS@ z_J64{CyLqo^&!d>m@dukN0&dUF9b=$+5o*BT8V;EPV(kuFZlBT2NvrG-- z6roKD4$#AMRw$*5$K&Hjbj{B_QWqna03k4x($;12z@&?McD?%*+9e#f=0SaxLI>{snyU6-z3RwZvU8I9bGt0 zO-&?Rb;XjznO`pr(V7#cby0;SB1ip>oDI(aj{nP<0YbRpy%zaje>rH`+`vF)YBt|u zYQ3(y@eR@0Snf}q*zb%qmz~H3!l9S~2l!Jcp6(NYKkz~2!HvfHTlrI0gi^7n2265A zH4OwH@ftjkTTBlJ@a!4;0aNcB0e6m!UKinL+#Thpp~7(7U1?7&og7l?Ekj9CORfB~ zd6w#Z{(ZB`-9>BpYSLi!@vcGYt$(*UL+3%9uG-MIzMkDn z*m7}z*}kmA>Lu4Du3Sz$pR0%B=_j>64vfx?HRJK?PVnaQ-x#|C=EvO$wPfX9Vn_ZZ zcB=Uvu|5R%N2i%#`*7=sHoLGHx)Xyc$ayO^Ffemv?<$9xE!J&*C{otW$YXRawO!4A zvZa(Oa(sc$`F^SeRXoJ$xYBLT5v4n!C~btf=TOXZ<_&4%I$$+*pMxV|sb zqgJdCq7!PEU$YezElpxta@w6Tke4Fcl3*(0vo{$?$o;O`D1UTC4=9+gxN}9aP6uhl zCL{(m#QJZqJKlb=*xM1Hb1qVN57L(&!yS0|8Jg0PW#lEF3qCgaEWUG?vx{v!B#@@Y zbW8^^M(Vaw7H)%2J!)3-Ub_|s|0uU=dPU^c+<^iwh7(I_NH*6M3nbLJbN@RD7)nVu zcbw<$mO;lFcnxrTO{+IA(A;6f7;Df(B~~VuJ(_EGo1vu)ut20%!<6?>^v){DQLKP- z#TNNtKTuKwsc&?FXu}fpmwp?$V2I5Z4A)px%$LNutp18c407?~!y?J#-x^f7$G&?- zrSN5qK(qTa6_h|&9P=U0ym2;)28B!VCL;_A2sE0^riEkrqa~$#OfatIm${pRN%45? z`T`Nvy?aVK#>FO^TzZENP#sRc=a)2_6w3Gox{Zb^7bK%6ILpmR=qGDzqaVs^x=hlq zRJtC?{|=kDO)*QIM$Jx_jGOw2a^g6y24MJlH#`xPLC?~;6a}3`H8oYVt9AdJ=H3M`;x%4fpmIw{f+miRAE6l-8ALE;q zXv3iUAAau^JIo+Gv1OuBXtVCI2@Ht>)d5_wl`*PFfm2riEoex$fjt2n!mT<`7r|6n z6RV=tc8E}9j=G z){y_SjG^h=k*|AGDj7NYJ-LEm$_7LIzuO(iktK@K`Yw$l$zE|}2$aPrJsZCezB($% zk01wh-|#O8mWKRHgsru4Q}ic)!_1CtuzLEdB|9lLgLB5dBKL0R69A z?ElKV)7E9byZ}rG=scPGY`Q}vWv~eBNlyNNhW%;vC-JkKy(C}5lwYRsN+P7Wkie`* zf^y7p>U=6=xeXxkIz09(`$K#sg`zJb{XhK`H*Bn$sdSBLXc_rMm0M(67Z@AsMql2% zl?2=f=Yrjw@)muka*7%olY?ni%OxiQfL=rZjS%RyyIwHO%dIa0A?Ppdj?A_BNz&6? z<_&EVEgQ zTVOPek-9lxQq}+ac+i35x0~`8vU*j`spSDT_qNuDhkWmu+g2@|UsuHEd-eJVcJhxc z=FJVM(-|0I-x^!V`m@mc)y+D#?MBeHuNsZQByPI=yV=gW$nLZPmiaRYvHLwI9rcpXn|Am&Z{37&%Eq+|f1`s%ORgG5; zXy~*~ET{UWSA$eajLDDFvv?@FqqH7@ijvFsGJJT^5wnfpNt(iC$>GkQh8MnWaJ;(DtJKOU$L4l;Y?Ry5r zX$T%RteMT4B-q4^+bBq)c9z$TKs2;kA@v+&a>+zZxKgR(8E$|s1YOslM9b|jJlBoR z3*n%jAOA(8fV&EUKv@TB#8d5W5!lbFu$%$$yKsfl6%9cmeeo3i?w*mZ%enY-aJ*gmJfkR5Yb&JihN`_}Fsy4=)xXgU9Q@Iq0n z$*p!nxlp1Yueex>!ZlRqFlM~)pVVb5Yi?RJ5Uo|dqGSZ*&0&#f+oSj={GD);Jf0@F zVe`l$%Z1+x7Hjk7LtsjbWFqu^Pi-#a7hYeG>VYgYKFb&@lNjWlvuI3)c#4 zd-9%07BQDf-Wc7(ewOrNk;++=BC`9^VmCt(V8jN=bVmSs6T5yIyhvM#h2omoPQRJD zMf3D&$j7($TL*`+%RzY|8q8rUipBJgqj)7}z;ZbSDqW*yJFsS?6Qi^y^se*sa4AzI zaI>DBEt*=E4->oL0B)9Gk5mrfG&ME?&j_&=MG`85i}VMp#^ODDk|6&rIEjn> zSN3HLaJ5NiAAS?R#^vjlE3FZ~rzJ*AJQUXcFxNkhE(1%(-0b^2OroSgxl0cwT1{&(PK<=9tNCx5M<7jaBp@TzjdIZUrW5;{28rIMysJUeq zyidsxU>8HhrkVZ-i`=-0L#gRTJ$!w`)BX$?`iz5mAy3uMHOozu&MgdP2j%- zOv0~3sBk?;h4L9~=W(#CQgp?}XBmm+ff#0Zq~t@8anCby*SzP`FwSdL3!>bSd}$fQ#34(R(^sH*-h{(q&gXC1T80o z>Z&Ikubu-8nol0FYzF>1|Ndd?UKzC1MXB(00i*@lqn6Ns2*oxaVos5a)j5e6WR}#b zL_auz2Z>41FKi`|mS{;7fY!usm-0k5&O zCO5&ime@?4x?wa{FJ1x3fFhut=)!6v+)xt-V6~=WsJX$!T#;^mH^JKZP&w7l6-6+K zTQ&?1X&HVZ5sY}?oK#*{GB5@=ffP_Ux6aG`ZtHKUh{_Z=CWIc$uyyWa%$=7aeYT0% zn-?-X!Z=6|)r1JxJeww?jIDeEf!DDX8QSBaBPu@%537p*)l#-FWGk+})f*VK855R5gcqrOaUDN&1G zOyX7E{=@*RImyMP+kYn77}DZ4lp;N43EdlQdAs)LY>qdEjEq}92VjW2cw}1+iZRqf zy}MXla9@(3N_x2Y^vPt`ejLM|9~%ATx<5^xrg_YeT)Ipd^ zad8-jTM0hSC?no835)(z&mZ0*Q)!|pq~!4H-l{%ao$8EPE*HOVeaR07vyzJn9k}O$ zHVh8_H%uV;!ms!5)#1!;QL!gjMP+dXhH_}|U2tQu21eWR(4KxloID}GE-s6!t{%cQ zI<2Qb;IA_XIq3UqERhkF8yOIFac+Qw(idbQ)RGd%ffkY(c7@p`C!h&jWp(vp4x&#i zaPX?GiiXX=_dzr&-V@18pj!Gryq{l&4`T#j-TV7bVhSuoJDj@Eqs44+Fi?~QP^X9v zWXeXj_SX5P%48fYTQNt5StEdDRFSW%dm7!9ZdWCm93*T0)3>Id8j1r-B^=aX_>OHk0Xv&Ip!;no z3%@K58Q9Yao%8fp+MU9HVi7>%KJ;V9mLW!;&PPmFYLL>7(uOW}Yxx3ze;Hk70+rfZ zoLLzq(C`WV1wX*}tOH&!s>C7vl+Ry?(u1xQJ$#RVM%brgj<4+X56_%iq-$X*=Md!0 zzJ|A-hjr+uAK#$2Lp!N zW}jZcRg80kTaP^YVTQFMJ%RR%3&Z8ho2%1Y-JZVA&lugGhlLY@C_$${BA3;Fr|3u} zFEz9Kk1k#D%e&P>Kpq-piHz~{Pk+V{ykTT6VII`LTCFU@yq6;h4O!7`d0xynecTJ z^8Y(+`NU+#TW>zFn04I(-blC1QUP?R@{fup?cVdVS$J}?Gov|q zKzZ-ED!;6ZTmEgae*uFfmk5p_> zv49N#l7aNoQ;~{yd&4|8xN2Uuk7XQ}iGpq4t)kTZ9;pH5d=URhTN^Qx-wO-Jb-6{+ zi*H00bTlHNW6m$TH4T7vL6tet{Kv@OB|KFGUb1|Z>yYvI9(w^#@9IM}fc6&b38w?? zSrRy6+YXktF9Xynd>;okRKyc9AE+OiGe~be3}1-=<~LzSg=*XobO~HvXfA!__F%-J z8hTE`BZ;JP)|cAQ8ELOJ^chy zI{3c~Ajvqcs~88`e@~fabZ&IQq2>_&C@2R3>|GA{cL`0FvrFzkkz=Y-Y)(&;Bq6Ae z%Yy`U}(oR7D&W{6CY$&ALYT2?#g;lyKsmMJ0S3Ioyg((@XPQ<7VXa->fqnC z_Lfd8e-F0d^pMc0J)TfDZfI#X(s5bQY`u(2=J5CkZ#j}>(d+Gaq)w4^fTCA8zkCb{WYGP9A#1c+oa2+} z>-7nO863SFZIY_da0f@iuKHyU$hLmee>w{zp)#?7$4Oym8_yw7c;oQXK@wqn`SYUm*+}sJ7A*$OrQ6y*DNbmNPx0OZQ@^d7M8PB3!J2Ug}`LH~OCm4En1@ zkOhVzSw$IK{dItPE1Ks)htpnj%|659+GApgHTjH{TIMK6=)Z86*c^(^KC64;d;$-&Hx&hXX`)Gt}k_P z&$BH7%e65t%!%yaql#?{a(3yDvA0FVzQjRv%a1q~ai1vA_6v7opPyM7IC>k={R+z@ z7&^v&A=F3Z&a97z*JuMb%XbgIp?cE;BF>yB+yq_rz7JJ~LM6J&1gAV&DzeO^Us6I7 z8>G2?t(x%hu#pSn5v3Sdnj^PCuxd79U_)3J`IhUA1!S5sT_fn3+3 zw>%Ke?fv*g@74HL`f+(X*28%F_#nZ3hc+<1tm3aV-#qU`d?g6?ufToIu6|4I@A14) znhw=}0gsY*Wq0Ld3z>C{5F4Z{drWtOtOj+{#PE~2)!fyH1~L3xqMN* zq^b!omM@gBY0F0bAZ?hGS{=BFNn`!Kmqpi76Zk1j5Cu5?FGsfQxsAO=y~xARgRUsy zi`D(p`Va5j2syJR>ut^AmXlU|Pz}@9*7v@>FCEFjhUXfpCVXlS!xR=G#evQR91BlC zrIUMFf+w)-6hekT0Z|zMI0%<3YZ1X8b{bNDOGOmEFb@^}P&38td+Y@K(17>TJa+zc zRg1VUz`jSh72s_IgzIFreK{BRDh-Y!zSK@%vT3u9Pp{9rTSf5FQU5yw_n+dJ^`F?- z`g$M^a036TFzV0M1fn#+P$A%vl^piR?Wo?agjf? z<^V0!+!nMkuv{WHct$a{xrPlSU3Zjd5dj0o?*tmN30&WzJZ{;W+%O~x#m`4wnl&A> zWKZZ}Dy&gN$Pr4HF__>eN*r78@b5bmQ{^-_2781bw^xrETYCb%!h-i2fl}C2sy4il z!OP~_L{qtRJx$UF=6B3Pdk5UV-Ze5n?ojeMm$ao+E$^CdTRF$o64-4&mIb&V zHaLuLyg2w21wHj#4xcg-3Tq|qKB;@jLb_(~E$KIprKcK;>Tu|xmdPgL{+D@?Z(_V<^bjlhti5%udgLjl1;s!}o^K zd$FvFG^xr{n@u+NFBBEFhD|1DA$4XTm=ER_|3%aSA9xG*kv}#R)8p z%Yh>?(a`)6`LO)I2l5l2PT~6z?Hod-;zHzucxH`DYBse- zMIaykuFK+el91c^rUL)W%U@a(nA3wpr(Aq}+XMCu4sJC+@u8+hZUl)3s!*>a4c9hTF`XYZ{!Wa}TVNNe8eGfrthb0w`aV3C`e022_L8oS>Mz&Ly&EQtN)R{|EGlje5> zTub%M-j!K1dCCKJLP7vKx>sX6D&zYK^PQB)ZNdl&4rm*i#MpBu7Bz_oc43qd9Ms2x ziVNl#4u{n5MNr4h&-#=QrZ1){jW)q#AOv%{U80kmqIX?=IkGA;?;@ZomsO=|LX3Ss z#TIYPfV$c2?ha9q?FlnXdF99$JZ&s67$?wyn>s+l@ao#FW{N-Z%g zB#RZ+kJC6%eL#(np@)F|rn0Rr43$QT8u6p)6-yu^D`c-S_BWMy1g$wzM=vg24!!@s zL9Qf`8U2SxbE59@uWx#HSUm7WSR3^Y`%6Z6czi0m2zjU|J9m}KgnXBl30Wm=JD9zJ za1*_!%)XXH69~(*z3}BW!}Og3@x7=yNgRQeSw%B!axJ~Tb2lha^&Q5np^Pz{Jq=fM zQ`2{t5^oj+gV-Uh1;>&TM9Ii2xG0Afe43bNk~sqkfGvXT2g75lRG4Wqz*CG4xqwiK zk&+-9NBJ-1B)M36ll4o)J?~m6oLBqi3r(cl2e!3;;^j?UdKWY_VzWpNB7>v<8xWKO zROkCU?Rg#oTU3U?yE(u%><->y4}ZE0pW6DhO7U0KHJjN1u3+mu-s&bS4~{{|6>^1s z0!pNNABfia!$S2%eqDfFt0|81a}5^c=}mm>v4@r@)TTX0Sp$#iR@E^{3&ytFLX z(OCcR`_feG!VO&wCK~=_rZ!62H>vm29pI<7jAqKo4lmi#>UsD8Oqux%xe53+S3i-4 zj52PQ#lN^@G*Xub3mi+{Td9p~2~+dSs5{Rw&D*`q%Y<-ItT#Ortr6JasH{!sjP;8S@skZ2n&E+UhpP(mrr84L?5?Ib93WilyC z!Lm_9x6`mTF-?g+-c@xOgor$8y~;I)y2BFGpLq z=3tWnV@C3-%O~%()%Ppo>rBO*+ILXjXQBz<-D?F^5GB1GuOa-kJU`k1hcs%OD42KQ z2(Fgui2n|7M+q$F<9GR&mA6a#51_}*gebh+jiy z5tDPfU4!!8(HtUs%8Jf>c9xure_&HVP8H()+x^)*REF_RQnFcVV(SSPIe~_kVzWdu z7Rs?RGzv53tN}qny##_9sX-j(sg(l|;9L3=I%abdXo74U=UqNY_hP)pYH`hX0!(qp z{G(M(5rLnXtSU;ZigM^+CdtXly`?ZYtz{kUR{xkpp`A z_KY`!E=IH~XI8p@Pm&Z6KPTZ>YmIu3fBu?%&Wk2o3=Fw05=7EkBDmX8rtwsT9GKS2 zs#Zk_30R~VU9sqkSAwBMi6#~DoE=3;@-I#;m_iH={+CNe$-y|{Q?bx*J2Jf_^CsZf zkFBbZBe)gWxb7^4_iaDyWckiGN-8a_V>H_@J>m=?&G)$?BXFMH;*gA$c$$_JYna*|)i9?*(@zLX zLUmq|DoelS*7#dvm~n(RuQcsMJNkvrOL+Y@l$pT!k<%)+6bl8&NE9JNTtoRQb1CbwKQP_%Q{&tpvJMB?2^q zog$yFQ?&X|x?u||BUH#1st@1S6leM+FkUN=vcDDT>o0H<| zeKRm(RT6`Bsh*Wx3Z*LX6}L?id2=&UF4w8Ksy9ItAkEw11J~e#8OJmD+S+6Ztgug@ z0=oxH@L9Vg7E+5$+?vqjvE9Q^Ren*>_KPCYJ*t~=h5B|Uy2Ll)504odDgU5gr= zsdhTrf5|H<6Gz=yyi^P_GGM6(%Dzj^AR%26g6r-~gkpQjoI5vnB)5G6t!KievjH+U zu3^AFBNoh{b^Q=#5d2~-es-FuZBuf-UiTh5@3=K>pNJ1zssQ}AGW3pDRYKp zcFT8mVJGIxUyQOWXdBGMY8ySw5%M6N>(_JD2nh75QRI4_9fZGu@7whp76lN3wJF85 zK&C4SLD6`3FDrsDz%~pxH)54QbNC$=3fJ+WfZ`+>Q!t4^AP~v!YGBcshH_i{15?}t zTN7|Dmkhp!NgBR3ZUe8;`DJE^UuFgtEYcM13_derhrWM-A1P!&)8H%+xaq`j_6_V1 z*MZsR6T}JToAAfNf4W|bj^9yuHdmdGl~)BEwyGh;j=RAlXG-SF^3i4XDA-KUZlYa` z$4f8?WnsW$pDOd|0~GhZ$7g8ntdq&bEe*SXV_E4qs`BXp=B2W#vgSt2)%4>a8qoC4 zHyCy9;?LKJ?#Y&ko6P)-QQf+2M?<*s4Puo-h zcQo^IHvg6YUrHQ5_l3<|Oe;+n<|naK!0wDAb3)Rt!;z4dC_3$^Rd&|#!GkD&#Pk2R zX|_DAG8X;vhG*)s=&5S&b(m(zc`EwNJRDGz8FippJ5>=q7MqIjFL=6=3qW|0M7Q^~v~ zMytbAp09gV9keLE#`?O@Ql`MF`~82`gs=YyEX`5YxnFv};-7}tw->iLr51KfRy+Rg%~lh}IVbKXmS?_V zumD-b^w=~%(Z6*2LoXHk8Rwb~*t2RyPm&iX|9VU0)u-^nOHY0p3?g% zYTL~ZKfIw|_IZ~418=V*;wL%S7Wf?TylmX0tGv*9O&F&h-{rBZsZoRtv(@J=Ez6oQ^Uc-5%M^FFx{Q3R*|1tX})Y@=eLmE6^ zp#>T|2X)FBM;U|z;m5IyCBQL@1jE`Zzt7&|Vn|SoK3}!}Vl^X!PRjejPa?qGj_1zy zY_kK&xaXH1+A^P+A#Brkn_51G1j)_cwH5=%JN%_2_Wt?sih*H6*V^Ba>b5#B7#c#) z)LqGRHf3bUo?-i{>H0jg5{3hBb2rDoo^bP0l+XkK#rhjL diff --git a/static/images/rc/iris-overview.png b/static/images/rc/iris-overview.png deleted file mode 100644 index 5e51410776e5116fa9fda69def640bb45297143c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 132952 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ⅈ3EXx@^NGKCXi%U`;*nPPaDe)2<6;iW83Y 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 ySfb_+6SG-$E&F@^+ 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 bP(-F`n_X_}hOAk-1pHZB95&B0I~nsY Date: Fri, 30 Oct 2026 12:43:13 -0700 Subject: [PATCH 2/2] Align the Iris Redis Cloud setup docs with the current console The cloud-ui console changed after the setup docs were drafted on 2026-10-27. Update the Agent Memory, Agent Playbooks, Context Gateway, and Lens pages to match it: - Agent Memory: the creation dialog, the Connect step and banner, all five service tabs, and the 128-character name limit. Remove the service-terms step and the screenshots of the old create flow. - Agent Playbooks: the Configuration tab, the Connect step and button in place of Manage API keys, the FAQ and Skill dialogs, the preview token budget switch, and Remove extraction job in the Danger zone. - Context Gateway: the Configuration and Upstreams tabs, a single Connect dialog, the 128- and 32-character limits, the bearer token and header buttons, the Surface database list, and Danger zone deletion with a confirmation checkbox. - Lens: label it Beta to match the console, write out the API key steps, add Delete Lens, and limit the credential prompt to self-managed Lens. Update the Lens AGENTS.md term rule to match. - Remove the public preview banner from the Redis Cloud Agent Memory page that the console links to. Open questions for the product team are marked with TODO comments where they apply. Co-Authored-By: Claude Opus 5.5 (1M context) --- .../develop/ai/context-engine/lens/AGENTS.md | 4 +- .../develop/ai/context-engine/lens/_index.md | 2 +- .../context-engine/lens/inspect-sessions.md | 2 +- .../ai/context-engine/lens/quickstart.md | 3 +- ...-agent-memory-quickstart-create-service.md | 5 +- .../iris/agent-memory/create-service.md | 61 +++++++++++----- .../iris/agent-memory/model-configuration.md | 2 +- .../operate/iris/agent-memory/view-service.md | 40 +++++++--- .../iris/agent-playbook/create-playbook.md | 42 ++++++++--- .../iris/agent-playbook/manage-playbook.md | 43 ++++++----- .../iris/context-gateway/create-gateway.md | 52 +++++++------ .../iris/context-gateway/manage-gateway.md | 73 +++++++++---------- content/operate/iris/lens/_index.md | 2 +- content/operate/iris/lens/create-lens.md | 41 +++++++++-- .../rc/context-engine/agent-memory/_index.md | 1 - 15 files changed, 228 insertions(+), 145 deletions(-) diff --git a/content/develop/ai/context-engine/lens/AGENTS.md b/content/develop/ai/context-engine/lens/AGENTS.md index 3ad21785d6..50e8a25367 100644 --- a/content/develop/ai/context-engine/lens/AGENTS.md +++ b/content/develop/ai/context-engine/lens/AGENTS.md @@ -12,7 +12,7 @@ disclosure, and framing rules for this directory, and wins where the two conflic | Context Gateway | Context Retriever | In prose. API literals such as `GetContextRetrieverResult` stay as they are. | | Agent Memory, Agent Playbooks | RAM, Playbook service | The Iris services Lens traces. | | Iris services | Iris products | Agent Memory, Agent Playbooks, and Context Gateway as a group, matching the other Iris pages. | -| preview | Beta | Lens availability. | +| Beta | preview | Lens availability, matching the console's **Beta** badge. | `redis-iris` (`redis_iris.lens`) is the instrumentation package. `redis-agent-lens` (`redis_agent_lens`) is the read client. They read different key variables: @@ -34,7 +34,7 @@ results include their similarity score", not "Agent Memory recalls have no score the cases that have a capability, so readers don't assume it applies everywhere. Leave unshipped and deferred features out entirely. The availability banner is the only -preview notice; don't add lists of gaps or "coming soon" notes. +Beta notice; don't add lists of gaps or "coming soon" notes. ## Deployments diff --git a/content/develop/ai/context-engine/lens/_index.md b/content/develop/ai/context-engine/lens/_index.md index 6814a380dc..99236c30f3 100644 --- a/content/develop/ai/context-engine/lens/_index.md +++ b/content/develop/ai/context-engine/lens/_index.md @@ -9,7 +9,7 @@ description: Debug AI agent answers by tracing the context behind each turn, fro linkTitle: Lens hideListLinks: true weight: 27 -bannerText: Lens is currently available in preview. Features and behavior are subject to change. +bannerText: Lens is currently available in Beta. Features and behavior are subject to change. bannerChildren: true --- diff --git a/content/develop/ai/context-engine/lens/inspect-sessions.md b/content/develop/ai/context-engine/lens/inspect-sessions.md index f2df40965e..0cb15b0a34 100644 --- a/content/develop/ai/context-engine/lens/inspect-sessions.md +++ b/content/develop/ai/context-engine/lens/inspect-sessions.md @@ -15,7 +15,7 @@ Use the Lens user interface (UI) to find a session, open a turn, and see what ha ## Connect to Lens -Open Lens. On Redis Cloud, select **Lens** under **Iris** in the console menu. 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 9b91be38c1..03fbdad8b4 100644 --- a/content/develop/ai/context-engine/lens/quickstart.md +++ b/content/develop/ai/context-engine/lens/quickstart.md @@ -33,6 +33,7 @@ python -m venv .venv source .venv/bin/activate python -m pip install redis-iris redis-agent-lens ``` + ## Configure the SDK @@ -74,7 +75,7 @@ A turn is readable a few seconds after its export. To view it in Lens: -1. Open Lens. On Redis Cloud, select **Lens** under **Iris** in the console menu. 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. diff --git a/content/embeds/rc-agent-memory-quickstart-create-service.md b/content/embeds/rc-agent-memory-quickstart-create-service.md index 597783254f..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** under **Iris** in the navigation menu. -1. If Redis Cloud displays service terms, review and accept them. -1. Select **Create Agent Memory service**, or **New Service** if you already have a service. Then select **Create custom service**. +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,7 +11,7 @@ | **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. [Create an API key]({{< relref "/operate/iris/agent-memory/view-service#create-an-api-key" >}}) in **Access & Identity** with access to the service's memory store. Copy the key's token 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 API key's token only once. If you lose it, create a new key. diff --git a/content/operate/iris/agent-memory/create-service.md b/content/operate/iris/agent-memory/create-service.md index 75dbdea826..e5836a99b2 100644 --- a/content/operate/iris/agent-memory/create-service.md +++ b/content/operate/iris/agent-memory/create-service.md @@ -28,34 +28,32 @@ If the database you select has a Classless Inter-Domain Routing (CIDR) allow lis ## Create an Agent Memory service -From the [Redis Cloud console](https://cloud.redis.io/), select **Agent Memory** under **Iris** in the menu. If Redis Cloud displays service terms, review and accept them. +To create a service: -If you haven't created an Agent Memory service yet, you see an introduction to Agent Memory. Select **Create Agent Memory service**. Otherwise, select **New Service** from your list of services. +1. From the [Redis Cloud console](https://cloud.redis.io/), select **Agent Memory** under **Iris** in the menu. -![The New service button.](/images/rc/langcache-new-service.png) -{width="150px"} +1. Select **Create Agent Memory service** on the Agent Memory introduction page, or **New service** in your list of services. -From here: + -- 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. In the **Create Agent Memory service** dialog, enter a **Service name**, up to 128 characters. - ![The Quick create button.](/images/rc/langcache-quick-create.png) - {width="150px"} +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 Agent Memory service, it opens the service's page. [Create an API key]({{< relref "/operate/iris/agent-memory/view-service#create-an-api-key" >}}) for your agent, then [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 service**. +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). - ![The Create custom service button to create an Agent Memory service.](/images/rc/agent-memory-custom-service.png) - {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 @@ -65,7 +63,7 @@ The **General settings** section defines basic properties of your service. | Setting name |Description| |:----------------------|:----------| -| **Service Name** | Enter a name for your Agent Memory service, up to 64 characters. We recommend you use a name that describes your service's purpose. | +| **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" >}}). | @@ -219,10 +217,33 @@ When you are done setting the details of your Agent Memory service, select **Cre ![Use the Create button to create an Agent Memory service.](/images/rc/button-access-management-user-key-create.png) -Redis Cloud creates the service and opens its page. To connect an agent, [create an API key]({{< relref "/operate/iris/agent-memory/view-service#create-an-api-key" >}}) with access to the service. +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. If an error occurs, verify that your database is active. For help, [contact support](https://redis.io/support/). +## Connect and create an API key {#connect-and-create-an-api-key} + +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 After Redis Cloud creates your service, [continue with the quickstart]({{< relref "/develop/ai/context-engine/agent-memory/quickstart" >}}). 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 d3d63f1e61..4a10f0cda2 100644 --- a/content/operate/iris/agent-memory/view-service.md +++ b/content/operate/iris/agent-memory/view-service.md @@ -18,11 +18,30 @@ After you have [created your first Agent Memory service]({{< relref "/operate/ir 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 the [Configuration](#configuration-tab), [API explorer](#api-explorer-tab), and [Metrics](#metrics-tab) tabs. +Select your Agent Memory service from the list to view the service's details. The service's page has these tabs: + +- [**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 starts with shortcuts to explore the API, connect, and open the API docs, followed by these 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. @@ -31,7 +50,7 @@ The **Configuration** tab lets you view the details of your Agent Memory service - The **Sensitive-data exclusions** section shows the sensitive-data exclusions configured for your 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 **Edit** at the top of the page, make your changes, and select **Save**. +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 @@ -39,7 +58,7 @@ The **General settings** section provides the connection details and general set | 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. | | **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. | @@ -137,9 +156,9 @@ Deleting your Agent Memory service permanently deletes the service configuration To delete your Agent Memory service: -1. Select **Delete**. +1. Select **Delete**. You can't delete the service while you're editing it. -1. In the confirmation dialog, select **Yes, I want to delete this resource**. +1. In the **Delete service** dialog, select **Yes, I want to delete this resource**. 1. Select **Delete** again to confirm. @@ -160,15 +179,18 @@ The **API & reliability** view shows the following: | 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. | +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 **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} -Agents call the Agent Memory API with an API key that has access to the service. You create and manage these keys in **Access & Identity**, not on the service's page. +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 **Create API key**. -1. Give the key access to your service's memory store under **Agent Memory**, then create it. +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. > [!WARNING] diff --git a/content/operate/iris/agent-playbook/create-playbook.md b/content/operate/iris/agent-playbook/create-playbook.md index fe2f80348e..2a6b75a50c 100644 --- a/content/operate/iris/agent-playbook/create-playbook.md +++ b/content/operate/iris/agent-playbook/create-playbook.md @@ -15,9 +15,9 @@ A playbook is a registry of the frequently asked questions (FAQs) and skills you ## Before you begin -You need a Redis Cloud database for the playbook's data. If you don't have one, see [Create a database](/content/operate/rc/databases/create-database/_index.md). +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, the console lists the Internet Protocol (IP) addresses to add to it so Agent Playbooks can reach the database. Add them under **Security** in the database's settings. +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 @@ -34,22 +34,24 @@ If the database has a Classless Inter-Domain Routing (CIDR) allow list, the cons | 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. | + | **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**. +1. Select **Create playbook**. Creation can take up to two minutes. -The console creates the playbook and opens its **Registry** tab. The playbook's status shows **Provisioning** until it's **Ready**. +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 **Settings**. +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 **Settings** tab, find the **Embedding provider credential** section. +1. On the playbook's **Configuration** tab, find the **Embedding provider credential** section. 1. Enter your **Provider API key**. 1. Select **Save provider credential**. @@ -57,16 +59,32 @@ This key is separate from the API key your agents use to read the playbook. You ## Give an agent access -Agents read a playbook with an API key that has access to it, at the playbook's agent endpoint. +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. On the playbook's **Settings** tab, find the **Agent endpoint** in the **General settings** section. Copy the URL for your region. +1. Enter a **Key name**, or keep the default. -1. In the **Manage API keys** section, select **Manage API keys**. The console opens **Access & Identity**. +1. Under **What can this key do?**, select `read` to retrieve published content. Also select `propose` if your agent submits proposals. -1. Create an API key with access to this playbook. Grant `read` to retrieve published content. Also grant `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's token only once, when you create it. Save it to a secure location before you close the page. + > 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-playbook/concepts.md#playbooks). diff --git a/content/operate/iris/agent-playbook/manage-playbook.md b/content/operate/iris/agent-playbook/manage-playbook.md index 95bf7e2b2b..d0a0460885 100644 --- a/content/operate/iris/agent-playbook/manage-playbook.md +++ b/content/operate/iris/agent-playbook/manage-playbook.md @@ -13,18 +13,22 @@ 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 it. +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. -- [**Settings**](#settings-tab): the playbook's settings, credentials, extraction, and retrieval policy. -If your role can't read the playbook's content, you see only the **Settings** tab. +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 @@ -33,17 +37,17 @@ The **Registry** tab lists the playbook's entries, with **FAQs** and **Skills** ### Add a FAQ 1. On the **FAQs** tab, select **New FAQ**. -1. Enter the **Question** and the **Answer** your agents should give. +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** | A stable, human-readable identifier for the entry, using lowercase letters, numbers, and single hyphens. You can't change it after you create the entry. | + | **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 **Save as draft**. +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). @@ -52,9 +56,9 @@ The console saves the FAQ as an unpublished version 1. Agents don't receive it u 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. 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. +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 **Save as draft**. +1. Select **Upload Skill**. See [Manage skills](/content/develop/ai/context-engine/agent-playbook/manage-skills.md) for how to package a skill. @@ -64,20 +68,22 @@ Every change to an entry creates a new version. Agents receive only the version 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. +- 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. +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. Confirm the deletion. +1. Select the confirmation checkbox, and then select **Delete**. + +You can also delete an entry from its page, in the **Danger zone**. ## Proposals tab @@ -103,18 +109,14 @@ The **Playground** tab shows what an agent would retrieve for a query, using onl **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). -## Settings tab +## Configuration tab -The **Settings** tab has the following sections. To change a section, select its **Edit** button, make your changes, and select **Save changes**. +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. -### Manage API keys - -Select **Manage API keys** to create or change API keys in **Access & Identity**. An agent needs `read` access to retrieve published content, and `propose` access to submit proposals. - ### 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. @@ -129,7 +131,7 @@ Extraction turns your agents' conversations in Agent Memory into FAQ proposals f 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, select **Remove extraction job**. Your Agent Memory service, FAQs, and proposals stay. +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 @@ -140,7 +142,7 @@ Controls how discovery selects entries for every request. | **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. Leave it empty to disable it. | +| **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-playbook/retrieval.md#configure-discovery) for how these settings work together. @@ -154,6 +156,7 @@ Set the **Review window**, how long proposals stay available for review, from 1 |:-------|:-------------| | **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**. Each action asks you to confirm, and none can be undone. If a clear fails partway, check the playbook's current state before you retry. +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/create-gateway.md b/content/operate/iris/context-gateway/create-gateway.md index fc63e2d8c2..ff0280e580 100644 --- a/content/operate/iris/context-gateway/create-gateway.md +++ b/content/operate/iris/context-gateway/create-gateway.md @@ -17,12 +17,9 @@ A Context Gateway gives your agents one Model Context Protocol (MCP) endpoint fo ## 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. -- To create a Context Surface, you need the ID of the Redis database that holds your records. - +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 your role doesn't allow a change, the console says so and names the role it needs. - +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 @@ -34,7 +31,7 @@ If your role doesn't allow a change, the console says so and names the role it n 1. Select **New gateway**. -1. In the **Create gateway** dialog, enter a **Name** for the Gateway, up to 200 characters. Add a **Description** if you want one. +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: @@ -43,13 +40,13 @@ If your role doesn't allow a change, the console says so and names the role it n | **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 in the Gateway's [settings](/content/operate/iris/context-gateway/manage-gateway.md#settings-tab). + 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 **Overview** tab. +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 @@ -61,21 +58,18 @@ Add an MCP server to serve its tools through the Gateway. The Gateway connects t | Setting | Description | |:--------|:------------| - | **Display name** | A name for the Upstream, up to 200 characters. Required. | - | **Namespace** | The prefix for this Upstream's tool names. Agents see its tools as `namespace.tool_name`. Use up to 63 lowercase letters and digits, joined by single hyphens. Leave it empty to make one from the display name. You can't change it after you add the Upstream. | + | **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, choose how the Gateway authenticates to the server: +1. In the **Authentication** section, add the credentials the server needs. If you add none, the Gateway sends no credentials. - | Method | What the Gateway sends | - |:-------|:-----------------------| - | **None** | No credentials. This is the default. | - | **Bearer token** | The **Token** you enter, in the `Authorization` header. You can also add headers, such as a tenant ID. | - | **Headers** | One or more headers you name, such as `X-Api-Key`, with their values. | + - 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. - 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. + 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. @@ -105,9 +99,9 @@ A Context Surface generates search tools from a data model over the records in a | Setting | Description | |:--------|:------------| - | **Display name** | A name for the Upstream, up to 200 characters. Required. | + | **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. | - | **Surface database ID** | The ID of the database that holds your records, using 1 to 32 letters, digits, or hyphens. You can't change it after you create the Surface. Required. | + | **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: @@ -131,7 +125,7 @@ A Context Surface generates search tools from a data model over the records in a | **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 indexes that let agents search or filter on the field. The choices depend on the type, and `geo` and `timestamp` fields always have one. | + | **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**: @@ -156,20 +150,24 @@ To create the Surface first and add its data model later, select **Create withou 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 page, select **Create agent key**. +1. On the Gateway's **Configuration** tab, find the **Connect an agent to start using these tools** banner and select **Create API key**. - The console opens **Access & Identity** with a `use` grant on this Gateway already selected. Create the 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's token only once, when you create it. Save it to a secure location before you close the page. + > 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. Back on the Gateway's page, select **Connect**. +1. Select **Done**, then select **Connect** in the banner. -1. In the **Connect an agent** dialog, copy the **MCP endpoint**. Under **Client setup**, select your client, **Claude Code**, **Cursor**, or **ADK**, and copy its setup. Replace `` with your agent key's token. +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. -The dialog's **What the agent sees** section describes the tools agents get in the Gateway's tool exposure mode. + - + ## Next steps diff --git a/content/operate/iris/context-gateway/manage-gateway.md b/content/operate/iris/context-gateway/manage-gateway.md index 6db7a71458..684117834f 100644 --- a/content/operate/iris/context-gateway/manage-gateway.md +++ b/content/operate/iris/context-gateway/manage-gateway.md @@ -16,25 +16,40 @@ aliases: 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. To go straight to a Gateway's settings or delete it, use the row's actions menu. +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 **Overview**, **Upstreams**, and **Settings** tabs. From any tab, select **Create agent key** or **Connect** to [connect an agent](/content/operate/iris/context-gateway/create-gateway.md#connect-an-agent). The **Set up this Gateway** checklist tracks the steps to add an Upstream, create an agent key, and connect an agent. +The Gateway's page has the **Configuration** and **Upstreams** tabs, and opens on the **Configuration** tab. + -## Overview tab +## Configuration tab -The **Overview** tab shows the following: +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). -- **Endpoint**: the Model Context Protocol (MCP) endpoint agents connect to with an agent key. Select the copy button to copy it. -- **Details**: the Gateway's tool exposure mode, its created date, and when its configuration was last updated. -- **Upstreams**: how many Upstreams the Gateway has, how many are enabled, and how many tools they serve, with the newest ones listed. Select **View all** to open the **Upstreams** tab. +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**. -If the Gateway is in search mode and serves only a few tools, the tab suggests full mode, so agents can see every tool directly. +| 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**, **Kind** (**MCP server** or **Context Surface**), number of **Tools**, whether it's **Enabled**, and its **Created date**. +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: @@ -42,7 +57,7 @@ From this tab, you can: - 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 **Tools** and **Configuration** tabs. +Select an Upstream to open its page, which has the **Configuration** and **Tools** tabs and opens on the **Configuration** tab. ### Refresh an Upstream @@ -50,19 +65,19 @@ Select **Refresh** on an Upstream to discover an MCP server's tools again, or to ### 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**. Use **Filter by name** to find a tool. +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 **Result cache** and **Result handle** policy. You can't change these policies in the console. - +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**. +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, you can change the **Display name**, 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 change the **Display name**, and replace the data model from a JavaScript Object Notation (JSON) file with **Replace from JSON**. Replacing the data model regenerates the Surface's tools. +- 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. @@ -70,30 +85,8 @@ You can't change an Upstream's namespace, or a Context Surface's **Surface datab Deleting an Upstream removes its tools from the Gateway right away, along with their tool policies. -1. On the Upstream's page, select **Delete**. -1. Type the Upstream's name to confirm. +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. - -## Settings tab - -The **Settings** tab shows the Gateway's settings, with its **Gateway ID**, **MCP endpoint**, created date, and when its configuration was last updated. To change a setting, select **Edit**, make your changes, and select **Save changes**. - -| Setting | Description | -|:--------|:------------| -| **Name** | The Gateway's name, up to 200 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. - -### 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. - -1. On the **Settings** tab, select **Delete gateway** in the **Danger zone** section. -1. Type the Gateway's name to confirm. -1. Select **Delete gateway**. - -This action can't be undone. diff --git a/content/operate/iris/lens/_index.md b/content/operate/iris/lens/_index.md index abb4687b30..35efbea70f 100644 --- a/content/operate/iris/lens/_index.md +++ b/content/operate/iris/lens/_index.md @@ -9,7 +9,7 @@ categories: - iris weight: 27 hideListLinks: true -bannerText: Lens is currently available in preview. Features and behavior are subject to change. +bannerText: Lens is currently available in Beta. Features and behavior are subject to change. bannerChildren: true --- diff --git a/content/operate/iris/lens/create-lens.md b/content/operate/iris/lens/create-lens.md index df5624576b..eb624faf39 100644 --- a/content/operate/iris/lens/create-lens.md +++ b/content/operate/iris/lens/create-lens.md @@ -4,7 +4,7 @@ categories: - docs - operate - iris -description: Create Lens in Redis Cloud, create the keys your agents and readers use, and open Lens in the console. +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 @@ -24,7 +24,7 @@ Each Redis Cloud account has one Lens instance, which stores its data in two dat If you don't have a database, see [Create a database](/content/operate/rc/databases/create-database/_index.md). -If a database has a Classless Inter-Domain Routing (CIDR) allow list, the console lists the Internet Protocol (IP) addresses to add to it so Lens can reach the database. Add them under **Security** in the database's settings. +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 @@ -36,11 +36,13 @@ If a database has a Classless Inter-Domain Routing (CIDR) allow list, the consol 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 dialog shows the **Instance ID** and the **Endpoint**, with the steps to connect your agent: +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. @@ -48,18 +50,35 @@ When Lens is ready, the dialog shows the **Instance ID** and the **Endpoint**, w 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, select **Create API key** in the **Lens is ready** dialog. The console opens **Access & Identity** with the `ingest` scope on your Lens instance already selected. Create the key. +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: -To create a read key, create an API key in **Access & Identity** with the `read` scope on your Lens instance. +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's token only once, when you create it. Save it to a secure location before you close the page. +> 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. @@ -69,6 +88,16 @@ Select **Lens** under **Iris** in the Redis Cloud console menu. Then select an a 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 ![Lens actions](/images/rc/tags-icon-more-actions.png#no-click), 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). diff --git a/content/operate/rc/context-engine/agent-memory/_index.md b/content/operate/rc/context-engine/agent-memory/_index.md index f15dea9719..9767bce0ce 100644 --- a/content/operate/rc/context-engine/agent-memory/_index.md +++ b/content/operate/rc/context-engine/agent-memory/_index.md @@ -9,7 +9,6 @@ hideListLinks: true linktitle: Redis Agent Memory title: Redis Agent Memory on Redis Cloud weight: 10 -bannerText: Redis Agent Memory on Redis Cloud is currently available as a public preview. Features and behavior are subject to change. aliases: - /operate/rc/agent-memory/ ---