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
blobStorageEmbedderModelPrefixand the model name.