Skip to content

Consolidate Agent Memory documentation for GA - #4001

Open
abrookins wants to merge 39 commits into
iris-ga-docsfrom
docs/agent-memory-namespaces-custom-types
Open

abrookins wants to merge 39 commits into
iris-ga-docsfrom
docs/agent-memory-namespaces-custom-types

Conversation

@abrookins

@abrookins abrookins commented Sep 14, 2026 •

Copy link
Copy Markdown

Combine the Agent Memory documentation in one PR against iris-ga-docs, including #4025, #4145, and the SDK example support from #4149. Readers get one Python, TypeScript, and curl quickstart, feature guides, and self-managed setup that matches the current public API and SDKs.

  • Cover sessions and sortable listing, namespaces and shared access, custom memories, routing and moves, and application context assembly.
  • Add MemoryETL extraction and recovery, provenance and evidence, Summary Views, and ingestion webhooks with a signed receiver and status/recovery examples.
  • Keep service SDK, extractor, and webhook administration in the self-managed guides. Document agent-key delegation and server-side ownership validation only for on-prem deployments; explain application authorization for all deployments.
  • Align deployment, rotation, and reference examples with the published Memory and Identity Service charts and images at 0.10.2. Include delegated user headers in personal-data examples and use store health for the initial agent-key check.
  • Remove duplicate instructions, fix malformed prose, and remove general preview availability copy for publication. Preserve functional limitations, the overview cards, old quickstart redirects, and Playbooks support in shared example rendering.

Validation includes 135 new-feature and 90 existing-example schema-checked requests against the published Python 0.5.0b2 and TypeScript 0.4.0-beta.2 SDKs, strict TypeScript and shell checks, and 17 operator requests with and without delegated user headers. Both OpenAPI documents validate. All 29 YAML examples parse, and the deployment values render with the published charts. The focused Hugo build has no warnings; 19 build tests pass. Browser checks cover 25 pages at desktop/mobile widths, tab switching, four old quickstart redirects, 100 local heading links, and preserved command-example footers. Earlier feature validation also covered signed-receiver tests, isolated Redis 8 ownership/delegation and document-worker integrations, and signed HTTPS webhooks. Playbooks fixture/source/generated-example checks passed at consolidation; its content and shared build logic are unchanged since then.

This remains a draft for publication review. Features are documented as available in Cloud and enabled on-prem except stated exceptions such as webhooks; Cloud ownership behavior remains undecided. Install commands use the stable channel, so confirm stable package promotion before publication. No programmatic Cloud Control Plane credentials or customer IdP setup are claimed. Full hosted Summary View generation and production extraction quality were not verified; example fixtures check request contracts, and chart rendering does not constitute a deployed cluster test.

The 16 historical inline threads have matching content corrections but remain open for reviewer acceptance. #4025 and #4145 are closed as superseded. Andy's #4149 remains open with its changes included here.


Note

Low Risk
Documentation and Hugo template default changes only; no runtime product code. Link/redirect and example-tab rendering behavior should be spot-checked before publish.

Overview
Consolidates Redis Agent Memory docs for GA by replacing separate Python, TypeScript, and REST quickstarts with a single multitab quickstart (aliases preserve old URLs), restructuring the landing page navigation, and expanding the developer guide into an end-to-end integration walkthrough (IDs, backend authorization, per-turn context, errors, namespaces, and sensitive-data exclusions).

Adds dedicated feature guides for sessions (including sortable listing), long-term memory (search, custom types, direct create, semantic exclusions), namespaces, namespace routing, MemoryETL, ingestion webhooks (signed receiver + status/recovery), and related cross-links; overview and operate pages drop general preview banners and refresh self-managed chart references to 0.10.2.

Site/build support: registers Agent Memory (Python) and Agent Memory (TypeScript) in config.toml and local_examples.py, wires the unified quickstart to shared agent_memory_sdk client examples, simplifies the default Cloud quickstart service setup embed, and makes command-example footers opt-in in tabbed-clients-example.html (so footer="hide" is honored).

Reviewed by Cursor Bugbot for commit 0185cb1. Bugbot is set up for automated code reviews on this repo. Configure here.

@github-actions

github-actions Bot commented Sep 14, 2026 •

Copy link
Copy Markdown
Contributor

Staging links:
https://redis.io/docs/staging/docs/agent-memory-namespaces-custom-types/develop/ai/context-engine/agent-memory/
https://redis.io/docs/staging/docs/agent-memory-namespaces-custom-types/develop/ai/context-engine/agent-memory/developer-guide/
https://redis.io/docs/staging/docs/agent-memory-namespaces-custom-types/develop/ai/context-engine/agent-memory/ingestion-webhooks/
https://redis.io/docs/staging/docs/agent-memory-namespaces-custom-types/develop/ai/context-engine/agent-memory/interactive-demo/
https://redis.io/docs/staging/docs/agent-memory-namespaces-custom-types/develop/ai/context-engine/agent-memory/list-sessions/
https://redis.io/docs/staging/docs/agent-memory-namespaces-custom-types/develop/ai/context-engine/agent-memory/long-term-memory
https://redis.io/docs/staging/docs/agent-memory-namespaces-custom-types/develop/ai/context-engine/agent-memory/long-term-memory/
https://redis.io/docs/staging/docs/agent-memory-namespaces-custom-types/develop/ai/context-engine/agent-memory/memory-etl/
https://redis.io/docs/staging/docs/agent-memory-namespaces-custom-types/develop/ai/context-engine/agent-memory/namespace-routing/
https://redis.io/docs/staging/docs/agent-memory-namespaces-custom-types/develop/ai/context-engine/agent-memory/namespaces
https://redis.io/docs/staging/docs/agent-memory-namespaces-custom-types/develop/ai/context-engine/agent-memory/namespaces/
https://redis.io/docs/staging/docs/agent-memory-namespaces-custom-types/develop/ai/context-engine/agent-memory/overview/
https://redis.io/docs/staging/docs/agent-memory-namespaces-custom-types/develop/ai/context-engine/agent-memory/quickstart
https://redis.io/docs/staging/docs/agent-memory-namespaces-custom-types/develop/ai/context-engine/agent-memory/quickstart/
https://redis.io/docs/staging/docs/agent-memory-namespaces-custom-types/develop/ai/context-engine/agent-memory/sessions
https://redis.io/docs/staging/docs/agent-memory-namespaces-custom-types/develop/ai/context-engine/agent-memory/sessions/
https://redis.io/docs/staging/docs/agent-memory-namespaces-custom-types/develop/ai/context-engine/agent-memory/summary-views/
https://redis.io/docs/staging/docs/agent-memory-namespaces-custom-types/operate/iris/agent-memory/
https://redis.io/docs/staging/docs/agent-memory-namespaces-custom-types/operate/iris/agent-memory/create-service/
https://redis.io/docs/staging/docs/agent-memory-namespaces-custom-types/operate/iris/agent-memory/model-configuration/
https://redis.io/docs/staging/docs/agent-memory-namespaces-custom-types/operate/iris/agent-memory/self-managed/
https://redis.io/docs/staging/docs/agent-memory-namespaces-custom-types/operate/iris/agent-memory/self-managed/api-examples/
https://redis.io/docs/staging/docs/agent-memory-namespaces-custom-types/operate/iris/agent-memory/self-managed/authentication/
https://redis.io/docs/staging/docs/agent-memory-namespaces-custom-types/operate/iris/agent-memory/self-managed/configuration/

@github-actions

github-actions Bot commented Sep 14, 2026 •

Copy link
Copy Markdown
Contributor

🧠 Redis Memory

Found 19 related items from repository history:

Memory updated at 0185cb1

@abrookins abrookins changed the title Document Agent Memory namespaces and custom memory usage MOD-18613: Document Agent Memory namespaces and custom memory usage Sep 14, 2026
@abrookins
abrookins marked this pull request as draft September 14, 2026 16:34
@mich-elle-luna mich-elle-luna self-assigned this Sep 14, 2026

@mich-elle-luna mich-elle-luna left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

thank you! I feel like these new pages are more confusing to follow with the instructions in a heading and then more steps in a long sentence with no examples in some cases, so I've flagged those.

weight: 4
---

Redis Agent Memory keeps conversation context in session memory and information for future conversations in long-term memory. Optional namespaces organize both.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

I have a draft of this concepts.md page in my PR #4003 that you can feel free to take whatever you like from it, it puts this in context of what you already know about Redis session memory and how this concept is different.

Use session memory and long-term memory in your agent's request cycle. Complete the [quickstart]({{< relref "/develop/ai/context-engine/agent-memory/quickstart" >}}) first to verify the connection and make your first requests. For the memory model, see [Concepts]({{< relref "/develop/ai/context-engine/agent-memory/concepts" >}}).

## Integration workflow
## Configure the application

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

This is very terse, three steps with no details about how to do it, where you are in the process.


## Choose a client
| Identifier | Application choice |
|:-----------|:-------------------|

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

how do I choose these?

| Python SDK | Your application or agent uses Python. | Install [`redis-agent-memory`](https://pypi.org/project/redis-agent-memory/) and follow the [Python SDK quickstart](/content/develop/ai/context-engine/agent-memory/python-sdk-quickstart.md). |
| TypeScript SDK | Your application or agent uses JavaScript or TypeScript. | Install [`@redis-iris/agent-memory`](https://www.npmjs.com/package/@redis-iris/agent-memory) and follow the [TypeScript SDK quickstart](/content/develop/ai/context-engine/agent-memory/typescript-sdk-quickstart.md). |
| REST API | You need language-independent HTTP access or don't want an SDK dependency. | No package required. Follow the [REST API quickstart](/content/develop/ai/context-engine/agent-memory/rest-api-quickstart.md). |
Resolve the user and their allowed sessions in your application before making memory requests. Build recall filters from that identity. Search filters do not replace application access checks.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

This seems very terse, you say to do a thing, but don't explain first the reason or second how to do it.

1. Store the new user and assistant messages as session events, with their roles and actor IDs.

The Python and TypeScript SDKs accept the endpoint, Store ID, and API key when you create the client. When you use the REST API, send the API key as a bearer token and include the Store ID in request paths.
Include the current user message once. If your application stores it before retrieval, avoid adding a second copy to the model context. Store the assistant message after it has been generated.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

can we give an example of this?

Comment on lines +208 to +209

For Python, add subsequent snippets inside the `with` block in `main`. For TypeScript, add them inside `run`. After each step, run `python quickstart.py` or `npx tsx quickstart.ts`. With curl, run each command in the same shell. Run writes once; comment out completed writes and their output statements before rerunning an SDK file.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

seems too terse, no real steps about how to do this


{{< /multitabs >}}

Run the example. The session response contains the stored message, its role, actor, and timestamps. An application can retrieve this session before the next agent turn and add the events to the model's context.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

too terse, doesn't say how

> [!NOTE]
> **What to expect:** The `events` array contains the travel message. Redis Agent Memory adds an `eventId` and `systemTimestamp`, showing that the application can recover the complete event later using only the session ID.

Run the event write once. In the SDK files, comment out event creation and its output statements before subsequent runs. Keep the session retrieval.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

doesn't say how or why you would do this

weight: 10
---

Use a stable `sessionId` to store a conversation as an ordered sequence of events. Add an event for each user, assistant, or system message that your application needs to retain.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

starting a doc with this type of terse instruction is unusual. you are referring to a field that hasn't even been defined yet. It should start with what this document describes and the reason you would do any of this. How would you even add an event? This is saying to use a field then add events with no context.


## Retrieve conversation context

Before an agent turn, retrieve the session by `sessionId` and provide the relevant events to the agent. Use these events as conversation context for the model.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Maybe tell CLaude that we need to put all of the ## headings in the page into context at the beginning of the page so folks understand what this is about

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

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

😂

…nto one TCE page

The Python and TypeScript agent-memory quickstarts were near-duplicate prose
with only the code fences differing. Merged them into one page
(sdk-quickstart.md) using the clients-example tabbed system, with two new
pseudo-client keys ("Agent Memory (Python)"/"Agent Memory (TypeScript)")
instead of reusing the real Python/Node.js client keys, so the tabs don't
misattribute to redis-py/node-redis.

Two build-script gaps surfaced adding the TypeScript source file:
build/local_examples.py's EXTENSION_TO_LANGUAGE had no .ts entry at all, and
build/components/example.py's PREFIXES dict had no 'typescript' comment style
either — no .ts file has ever existed under local_examples/ before this.
Both needed fixing together or the .ts source silently fails (first as an
"unknown extension" skip, then as a None-content crash further down the
pipeline once the language is recognized but has no comment prefix).

Modeled the footer-hiding on langcache_sdk's page, but its show_footer="false"
parameter turned out to be dead code — clients-example.html only ever checks
footer="hide" (confirmed back to the commit that introduced it). langcache's
live page is therefore not hiding what it thinks it's hiding. Used the
parameter that actually works here; did not fix langcache's page (out of
scope for this ticket).

The tab's visible title is literally the config.toml client key string (only
"Node.js"/"ioredis" get a hardcoded display-name override), so the new keys
had to be chosen to read well as tab labels directly, not as short internal
IDs.

Each clients-example step had to become a fully self-contained snippet
(imports + client construction repeated per step) rather than the "keep
editing one growing file" narrative the original two pages used, because the
shortcode slices only the exact STEP_START/STEP_END range with nothing
prepended.

Learned: .ts support needs EXTENSION_TO_LANGUAGE and PREFIXES kept in sync; langcache_sdk's show_footer param is dead code
Constraint: a clients-example tab's display name is its config.toml key verbatim (no Node.js/ioredis-style override exists for new keys)
Rejected: show_footer="false" | dead parameter in clients-example.html, only footer="hide" is read
Directive: don't add another .ts-based local example without confirming EXTENSION_TO_LANGUAGE (build/local_examples.py) and PREFIXES (build/components/example.py) both still list it
Gaps: agent_memory_sdk.py/.ts are hand-written, not harness-verified — no confirmed access to a running Agent Memory backend
Ticket: DOC-7121
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@mich-elle-luna mich-elle-luna added the iris Iris context engine docs label Oct 19, 2026
…ces-custom-types

# Conflicts:
#	content/develop/ai/context-engine/agent-memory/_index.md
#	content/develop/ai/context-engine/agent-memory/developer-guide.md
#	content/develop/ai/context-engine/agent-memory/rest-api-quickstart.md
#	content/develop/ai/context-engine/agent-memory/sdk-quickstart.md
…ces-custom-types

# Conflicts:
#	content/develop/ai/context-engine/agent-memory/_index.md
#	content/develop/ai/context-engine/agent-memory/interactive-demo.md
#	content/develop/ai/context-engine/agent-memory/overview.md
@abrookins
abrookins changed the base branch from main to DOC-7121-agent-memory-sdk-tce October 21, 2026 19:23
@abrookins abrookins changed the title MOD-18613: Document Agent Memory namespaces and custom memory usage Consolidate Agent Memory documentation for GA Oct 22, 2026
@abrookins
abrookins changed the base branch from DOC-7121-agent-memory-sdk-tce to iris-ga-docs October 22, 2026 23:28

@mich-elle-luna mich-elle-luna left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

thank you!

@abrookins

Copy link
Copy Markdown
Author

Doing another round of multi-agent review on this tonight.

@abrookins
abrookins marked this pull request as ready for review October 23, 2026 21:38

@mich-elle-luna mich-elle-luna left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

a few suggestions for the structure and format to start, approving so you aren't blocked if you want to merge into the feature branch, thank you!

{{< tile-card icon="images/dev/icons/icon-redis-code-64-duotone.png" title="Python quickstart" description="Get started with Redis Agent Memory in Python" url="/develop/ai/context-engine/agent-memory/python-sdk-quickstart" >}}
{{< tile-card icon="images/dev/icons/icon-redis-code-64-duotone.png" title="TypeScript quickstart" description="Get started with Redis Agent Memory in TypeScript" url="/develop/ai/context-engine/agent-memory/typescript-sdk-quickstart" >}}
{{< tile-card icon="images/dev/icons/icon-redis-code-64-duotone.png" title="REST quickstart" description="Get started with Redis Agent Memory using curl" url="/develop/ai/context-engine/agent-memory/rest-api-quickstart" >}}
<div class="grid grid-cols-1 md:grid-cols-3 gap-6 my-8">

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

This should use the tile-card style above instead of image cards

title: List and sort sessions
weight: 10
---

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

This file should become a child of sessions.md to reduce the left-side nav menu items and improve structure

title: Namespace routing
weight: 14
---

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

This should be a child page under namespaces.md for structure and to simplify the menu

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

iris Iris context engine docs

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants