Skip to main content
The memory system enables your agents to remember information across conversations. Agents can recall user preferences, learn from past interactions, and share knowledge across teams — all automatically.

Overview

When memory is enabled, your agents will:
  1. Retrieve relevant memories before responding (injected into context)
  2. Process the user’s message with full memory context
  3. Save new information to memory automatically in the background
  4. Learn continuously from every interaction
Memory saving is completely asynchronous — users never wait for memory operations. The agent responds immediately, and memories are saved in the background.

Quick Start

Add a memory_config block to your YAML configuration:
That’s it — your agents now have persistent memory.

Memory Scopes

Scopes control who can access stored memories and how they are isolated:

Scope Examples

Personal memory (each user gets their own):
Team-shared memory:
Multiple scopes combined:

Configuration Reference

Global Settings

These fields go directly under memory_config:

Module Settings

Each entry in the modules list supports:

Auto-Save Configuration

How Auto-Save Works

Auto-save checks happen after each agent execution. For each module:
  1. The system checks how many conversation turns have occurred since the last check
  2. If the turn count reaches the module’s auto_save_interval, evaluation begins
  3. Fast rejection heuristics quickly bypass evaluation for very short interactions or test/mock patterns
  4. An LLM evaluates the conversation for relevant information to save and extracts key facts in a single call
  5. New facts are deduplicated against existing valid memories (invalidated/expired memories are explicitly skipped so that new, contradicting facts — like a changed preference — can be saved)
  6. Only genuinely new information is persisted

Save Frequency Examples

Manual Save Only

Set auto_save: false to disable automatic saving for a module. The agent can then save to it explicitly using the Memory Tool:

Relevance Prompts

The relevance_prompt guides what information gets extracted from conversations. It’s the most important field for memory quality.
Be specific in your relevance prompts. Vague prompts like “Extract important information” produce noisy memories. Targeted prompts produce high-quality, actionable memories.
If no relevance prompt is set, the system uses built-in scope-specific templates (e.g., for user scope: extract concrete personal facts, preferences, and decisions).

Per-Agent Memory

Each agent can define its own memory modules that are combined with global modules. Agent-level modules are restricted to agent and session scopes.
Result: support_agent has access to both user_prefs (from global) and agent_strategies (from agent config).

Scope Rules

Memory Tool

The Memory Tool gives agents explicit control over what gets saved. Add it to an agent’s tools:

How It Works

  • Without config.modules: Exposes all modules with auto_save: false
  • With config.modules: Exposes only the named modules, regardless of auto_save setting
This lets you combine automatic and manual saving:

Complete Example

Here is a production-ready configuration:

FAQ

Memory has minimal costs:
  • Storage: ~5 KB per episode in the graph database
  • LLM calls: Entity extraction uses a small model (~200-500 tokens per save)
  • Cost tip: Use gemini-2.5-flash or similar efficient model (~$0.0001 per save)
The agent continues without memory context. Memory failures are logged but never block the agent’s response.
Yes — Artaios provides a built-in memory visualization with an interactive graph view showing entities, relationships, and facts. You can also edit or delete individual memory entries from the UI.
Yes, if they share the same scope. For example, all agents with a user-scoped module can access the same user’s memories. Agent-scoped modules are private to each agent.
Remove the memory_config block entirely from your YAML configuration.