Skip to content

feat: agent memory docs#30118

Closed
pmesgari wants to merge 2 commits into
cloudflare:productionfrom
pmesgari:payam/agent-memory-docs
Closed

feat: agent memory docs#30118
pmesgari wants to merge 2 commits into
cloudflare:productionfrom
pmesgari:payam/agent-memory-docs

Conversation

@pmesgari
Copy link
Copy Markdown

@pmesgari pmesgari commented Apr 21, 2026

  • Add product directory entry (agent-memory.yaml) and SVG icon
  • Add product overview page with features, related products, and resource links
  • Add get-started guide: create namespace, configure binding, ingest/recall/summary
  • Add concepts: how Agent Memory works (extraction, classification, dedup, storage, recall pipeline, memory types, idempotency) and profiles/namespaces isolation model
  • Add configuration page for memory_namespaces Worker binding (single and multiple bindings, TypeScript types)
  • Add API reference: ingest() with Message type, timestamps, and idempotency; recall() with thinking levels, response length, and reference date; getSummary() with session scoping and summary structure
  • Add namespace management REST API reference (create, list, get, delete)
  • Add platform pages: validation limits and naming constraints, beta pricing placeholder
  • Add example: chat agent with memory using Workers AI (ingest, recall, getSummary in a conversation loop)

Summary

Adding docs for Agent Memory (Beta) product.

Screenshots (optional)

Documentation checklist

  • Is there a changelog entry (guidelines)? If you don't add one for something awesome and new (however small) — how will our customers find out? Changelogs are automatically posted to RSS feeds, the Discord, and X.
  • The change adheres to the documentation style guide.
  • If a larger change - such as adding a new page- an issue has been opened in relation to any incorrect or out of date information that this PR fixes.
  • Files which have changed name or location have been allocated redirects.

Open in Devin Review

- Add product directory entry (agent-memory.yaml) and SVG icon
- Add product overview page with features, related products, and resource links
- Add get-started guide: create namespace, configure binding, ingest/recall/summary
- Add concepts: how Agent Memory works (extraction, classification, dedup, storage, recall pipeline, memory types, idempotency) and profiles/namespaces isolation model
- Add configuration page for memory_namespaces Worker binding (single and multiple bindings, TypeScript types)
- Add API reference: ingest() with Message type, timestamps, and idempotency; recall() with thinking levels, response length, and reference date; getSummary() with session scoping and summary structure
- Add namespace management REST API reference (create, list, get, delete)
- Add platform pages: validation limits and naming constraints, beta pricing placeholder
- Add example: chat agent with memory using Workers AI (ingest, recall, getSummary in a conversation loop)
@petebacondarwin
Copy link
Copy Markdown
Contributor

Hi @pmesgari — because this PR is from a fork, preview deploys don't run on this repo's CI. I've pushed the same commit to a branch on cloudflare/cloudflare-docs and opened #30121 as a draft mirror so the previews generate. Feel free to close this PR in favour of that one when you're ready, or keep both open while you iterate.

@petebacondarwin
Copy link
Copy Markdown
Contributor

Moved to #30121

Copy link
Copy Markdown
Contributor

@devin-ai-integration devin-ai-integration Bot left a comment

Choose a reason for hiding this comment

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

Devin Review found 4 potential issues.

View 4 additional findings in Devin Review.

Open in Devin Review

-d '{"name": "my-app"}'
```

The response includes a `namespace_id` that you will use to configure your Worker binding.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🔴 Guide incorrectly tells users to use namespace_id instead of namespace name for binding configuration

The get-started guide tells users "The response includes a namespace_id that you will use to configure your Worker binding" (line 35) and "Replace the namespace value with the namespace_id from step 1" (line 62). However, the binding configuration placeholder is <NAMESPACE_NAME> (line 74), and src/content/docs/agent-memory/configuration/bindings.mdx:17 explicitly states "the namespace field is the namespace name from the Namespace Management API." This mismatch will cause users to put a ULID-style ID (like 01JSGC...) into the namespace field instead of the human-readable name (like my-app), resulting in a misconfigured binding.

Suggested change
The response includes a `namespace_id` that you will use to configure your Worker binding.
The response includes the namespace details. You will use the namespace `name` to configure your Worker binding.
Open in Devin Review

Was this helpful? React with 👍 or 👎 to provide feedback.


## 3. Add the memory binding

Add the `agent_memory` binding to your Wrangler configuration. Replace the `namespace` value with the `namespace_id` from step 1.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🔴 Step 3 instruction incorrectly says to use namespace_id but placeholder and binding docs expect namespace name

Line 62 instructs users to "Replace the namespace value with the namespace_id from step 1." This contradicts the <NAMESPACE_NAME> placeholder on line 74 and the authoritative binding documentation at src/content/docs/agent-memory/configuration/bindings.mdx:17 which says the field takes the namespace name. Users following this instruction would use the wrong value.

Suggested change
Add the `agent_memory` binding to your Wrangler configuration. Replace the `namespace` value with the `namespace_id` from step 1.
Add the `agent_memory` binding to your Wrangler configuration. Replace the `namespace` value with the namespace name (`my-app`) from step 1.
Open in Devin Review

Was this helpful? React with 👍 or 👎 to provide feedback.


A namespace is a top-level container that scopes a set of memory profiles. You typically create one namespace per application, or one per environment (development, staging, production) within an application.

Namespaces are created through the [Namespace Management API](/agent-memory/api/namespaces/) and referenced by ID in your [Wrangler binding configuration](/agent-memory/configuration/bindings/).
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🔴 Profiles-and-namespaces page says namespaces are "referenced by ID" but bindings use the name

Line 17 states namespaces are "referenced by ID in your Wrangler binding configuration," but the Wrangler binding namespace field takes the namespace name (e.g., my-app), not the ID (e.g., 01JSGCEXAMPLE000000000000). This contradicts src/content/docs/agent-memory/configuration/bindings.mdx:17 which says "the namespace field is the namespace name." All config examples across the docs consistently use <NAMESPACE_NAME> as the placeholder.

Suggested change
Namespaces are created through the [Namespace Management API](/agent-memory/api/namespaces/) and referenced by ID in your [Wrangler binding configuration](/agent-memory/configuration/bindings/).
Namespaces are created through the [Namespace Management API](/agent-memory/api/namespaces/) and referenced by name in your [Wrangler binding configuration](/agent-memory/configuration/bindings/).
Open in Devin Review

Was this helpful? React with 👍 or 👎 to provide feedback.

label: Guide
---

import { TypeScriptExample, WranglerConfig, Steps } from "~/components";
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🟡 Unused Steps component imported in get-started guide

Line 12 imports Steps from ~/components, but the component is never used anywhere in the file. The guide uses manual ## 1. / ## 2. headings instead. This is dead code that should be removed for cleanliness.

Suggested change
import { TypeScriptExample, WranglerConfig, Steps } from "~/components";
import { TypeScriptExample, WranglerConfig } from "~/components";
Open in Devin Review

Was this helpful? React with 👍 or 👎 to provide feedback.

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

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants