Skip to content

Memory service

The memory service provides persistent memory management for AI agents. It stores and retrieves conversational context across sessions, manages memory lifecycle (TTL, event counts), and uses PostgreSQL with pgvector for vector-based semantic search over memories. The service includes a bundled embedding service that runs CPU-only ONNX inference for text embedding and reranking.

Availability information

Available in DataRobot version 11.9 and later.

Enabling the service

To enable the Memory Service, edit the values.yaml file:

memoryservice:
  enabled: true

Database configuration

The Memory Service uses PostgreSQL with the pgvector and pg_trgm extensions. It connects to the shared DataRobot PostgreSQL instance by default. If you use an external PostgreSQL instance, ensure the pgvector and pg_trgm extensions are available—see the external PostgreSQL guides for cloud-specific setup instructions.

LLM configuration

Memory extraction (the mem0-compatible API) uses an LLM that each memory space selects at creation time via the llmModelName field. By default, LLM requests are routed through the DataRobot LLM Gateway, so the Generative AI service must be enabled and configured with provider credentials. Model names are validated against the LLM Gateway catalog and a built-in allowlist; see LLM availability for the models offered per provider.

A memory space can instead point at a custom OpenAI-compatible endpoint via the llmBaseUrl field. Custom endpoints are restricted to a single allowed host, configured with the allowedLlmUrlHost value (exposed to the service as the ALLOWED_LLM_URL_HOST environment variable):

memoryservice:
  allowedLlmUrlHost: "llm.example.com"

When allowedLlmUrlHost is unset, the allowed host falls back to global.domain. If neither is set, custom llmBaseUrl values are rejected and memory spaces can only use the LLM Gateway.

Embedding model provisioning

The embedding service requires pre-trained model weights. An init container downloads these weights before the embedding service starts. There are two provisioning modes:

Standard (CDN)

By default, the init container downloads a tar archive from the DataRobot GenAI CDN https://genai.cdn.app.datarobot.com/

This requires HTTPS (port 443) egress from the Kubernetes cluster, which the network policy allows by default.

No additional configuration is needed for standard deployments with internet access.

Install in offline clusters

For restricted-network environments without access to the DataRobot CDN, you must pre-provision embedding model weights in blob storage. This procedure depends on the Generative AI service static files migration—complete the instructions included there before configuring the memory service.

Required: Generative AI static files migration

The memory service reads its embedding models from the same blob storage location provisioned by the Generative AI service static files migration. —complete the instructions included there before proceeding. If you've done so, the embedding models are already available and only the configuration steps below are needed.

The following models must be present in blob storage:

Model Purpose Required
intfloat/multilingual-e5-base-fp16 Text embedding Always
cross-encoder/mmarco-mMiniLMv2-L12-H384-v1 Reranking Always
global:
  airgap:
    enabled: true

When global.airgap.enabled is true:

  • The init container downloads models from blob storage instead of the CDN.
  • Blob storage paths are constructed from blobStorageEmbedderModelPrefix and the model name.