Skip to content

Consolidate Agent Memory documentation for GA - #4001

Merged
rbs333 merged 40 commits into
iris-ga-docsfrom
docs/agent-memory-namespaces-custom-types
Oct 26, 2026
Merged

rbs333 merged 40 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/build configuration only; no runtime product code. Redirect aliases and footer-default behavior are the main reviewer-facing behavior changes.

Overview
Consolidates Redis Agent Memory developer docs for GA by replacing separate Python, TypeScript, and REST quickstarts with one quickstart (aliases preserve old URLs), restructuring the section hub, and expanding the developer guide around real application flows—identifiers, backend authorization, per-turn context assembly, and error handling.

Adds dedicated feature guides for sessions (including list/sort), long-term memory (search, custom types, exclusions), namespaces and routing, MemoryETL, ingestion webhooks, and related topics; removes preview banners and trims the Cloud “create service” embed so the first-run path is shorter (advanced config moves to those guides).

Wires docs tooling to Agent Memory (Python) and Agent Memory (TypeScript) client tabs via config.toml and build/local_examples.py, and uses shared clients-example / agent_memory_sdk snippets on the unified quickstart. Operate pages drop general preview copy, bump self-managed chart references to 0.10.2, and narrow documented built-in memory types. Tabbed client examples no longer default show_footer to true when omitted.

Reviewed by Cursor Bugbot for commit ecb3956. 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/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/namespaces/
https://redis.io/docs/staging/docs/agent-memory-namespaces-custom-types/develop/ai/context-engine/agent-memory/namespaces/namespace-routing/
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/list-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 21 related items from repository history (2 new this commit):

Memory updated at ecb3956

@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
@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

…s on Agent Memory index

Addresses Michelle's structural review comments on #4001.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@CLAassistant

CLAassistant commented Oct 26, 2026 •

Copy link
Copy Markdown

CLA assistant check
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.
2 out of 3 committers have signed the CLA.

✅ rbs333
✅ andy-stark-redis
❌ abrookins
You have signed the CLA already but the status is still pending? Let us recheck it.

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Cursor Bugbot has reviewed your changes using high effort and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, have a team admin enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit ecb3956. Configure here.

cursor = page.next_cursor
if not cursor:
break

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Hook status example always lists events

Low Severity

The page says to set HOOK_EVENT_ID to inspect one event or omit it to list events, but the Python, TypeScript, and curl samples never stop after the single-event fetch. Setting the variable still paginates every hook status in the store.

Additional Locations (2)
Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit ecb3956. Configure here.

@mich-elle-luna

Copy link
Copy Markdown
Collaborator

this looks great now, thank you!

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.

5 participants