Skip to main content
Version: Stable (v5.x)

Add user-scoped memory

Agent Studio memory lets an agent retain useful context for a user across conversations. Configure memory in Agent Studio first, then give DocSearch a secure user token so Agent Studio can isolate each user's data.

Read the Agent Studio memory overview before enabling memory in production.

Generate a secure user token

Generate the JWT on your backend after authenticating the user. Follow the Agent Studio user authentication guide for the required claims, signing algorithm, and key ID.

Protect the token flow:

  • Never generate the token in browser code.
  • Never expose the Algolia secret key used to sign it.
  • Use a stable, non-sensitive user identifier in the JWT sub claim.
  • Set an expiration and refresh expired tokens.
  • Serve the token only over HTTPS.
  • Don't put sensitive user data in JWT claims. JWT payloads aren't encrypted.

Pass the token to DocSearch

Fetch a token from your backend and pass it as memory.userToken:

load-docsearch.js
const response = await fetch('/api/agent-studio-token', {
credentials: 'include',
});
const { userToken } = await response.json();

docsearch({
container: '#docsearch',
appId: 'YOUR_APPLICATION_ID',
apiKey: 'YOUR_SEARCH_API_KEY',
indices: ['docs'],
askAi: {
agentId: 'YOUR_AGENT_ID',
memory: {
enabled: true,
userToken,
},
},
});

Use the same askAi.memory object with React's DocSearchAI.

When userToken is present, DocSearch sends it in the X-Algolia-Secure-User-Token request header. When it's absent, DocSearch omits the header. Don't use unscoped memory for a multi-user application.

memory.enabled

type: boolean | optional

Controls whether DocSearch displays Agent Studio's built-in memory tool activity:

  • algolia_memorize displays that information was saved.
  • algolia_ponder and algolia_memory_search display that memory was used.
  • Memory tool errors aren't displayed.

The default is false.

This option doesn't enable memory in Agent Studio and doesn't create a user identity. Configure the feature on the agent and pass userToken for user isolation. DocSearch sends userToken when provided even if enabled is false.

A custom entry in askAi.tools with the same memory tool name replaces the built-in memory rendering.

See the JavaScript package reference or React package reference for the Memory configuration type.