Every instance has its own independent MACA. Changes to one instance’s configuration never affect another.Documentation Index
Fetch the complete documentation index at: https://docs.maximem.ai/llms.txt
Use this file to discover all available pages before exploring further.

Initializing configuration
When an instance is first created, it does not have an active memory architecture configuration. You must initialize one before the instance can process ingestion and retrieval requests.Navigate to the instance detail page
Click the instance in the instances list, then find the Memory Architecture section.
Click Initialize Memory Architecture
Synap generates a default YAML configuration tailored to general-purpose use. This default includes sensible settings for vector and graph storage, standard extraction categories, and a balanced retrieval strategy.
Review the generated configuration
The generated config enters pending status. Review the settings and adjust them to match your use case before proceeding through the approval workflow.
Approve and apply
Once you are satisfied with the configuration, approve it and then apply it to make it active. See the Approval Workflow section below.
Configuration structure
MACA is organized into three top-level sections: storage, ingestion, and retrieval. Each section controls a distinct aspect of how the instance handles memory.Storage section
The storage section defines where and how memories are persisted.| Field | Type | Description |
|---|---|---|
vector.namespace | string | The namespace for vector storage. Isolates this instance’s vectors from other instances. |
vector.dimension | integer | Embedding dimension. Default is 1536 (OpenAI embeddings). Must match your embedding model. |
vector.enabled | boolean | Whether vector storage is active. Disabling is a soft flag — existing data is retained. |
graph.namespace | string | The namespace for graph storage. Isolates this instance’s graph data. |
graph.enabled | boolean | Whether graph storage is active. Disabling is a soft flag — existing data is retained. |
scoping.primary_scope | string | The default scope for new memories. One of: user, customer, client, world. |
retention.max_memory_age_days | integer | How long memories are retained before eligible for cleanup. |
Disabling vector or graph storage uses a soft flag. Existing data is not deleted — it simply becomes inaccessible until the storage engine is re-enabled. This makes it safe to temporarily disable a storage engine for testing or cost management.
Ingestion section
The ingestion section controls what gets extracted from raw content and how it is processed.| Field | Type | Description |
|---|---|---|
categories.facts | boolean | Extract factual statements (e.g., “User lives in San Francisco”) |
categories.preferences | boolean | Extract user preferences (e.g., “User prefers dark mode”) |
categories.episodes | boolean | Extract episodic memories (e.g., “User signed up last Tuesday”) |
categories.emotions | boolean | Extract emotional signals (e.g., “User was frustrated with billing”) |
categories.temporal_events | boolean | Extract time-specific events |
extraction.mode | string | Extraction strategy: standard or detailed. Detailed mode extracts more granular information at higher token cost. |
chunking.strategy | string | How content is split before processing: semantic (meaning-based boundaries) or fixed (character-count boundaries). |
confidence_threshold | float | Minimum confidence score (0.0 - 1.0) for extracted memories to be persisted. Lower values capture more but with less certainty. |
Retrieval section
The retrieval section defines how memories are searched, ranked, and returned when your agent requests context.| Field | Type | Description |
|---|---|---|
default_mode | string | The default retrieval mode: fast (lower latency, vector-only) or accurate (higher latency, vector + graph). |
modes.fast.enabled | boolean | Whether fast retrieval mode is available. |
modes.accurate.enabled | boolean | Whether accurate retrieval mode is available. |
ranking.signals.recency | float | Weight given to how recently a memory was stored (0.0 - 1.0). |
ranking.signals.relevance | float | Weight given to semantic similarity to the query (0.0 - 1.0). |
ranking.signals.confidence | float | Weight given to extraction confidence score (0.0 - 1.0). |
context_budget.max_tokens | integer | Maximum number of tokens in the returned context window. Controls how much memory context your agent receives. |
Version history
Every modification to the MACA creates a new version. Synap never overwrites a previous configuration — all versions are preserved for auditing and rollback.
- Version number — Auto-incremented with each change.
- Status — The current status of that version (pending, approved, rejected, active).
- Created by — Who submitted the change.
- Created at — When the version was created.
- Applied at — When the version was activated (if applicable).
- Comments — Review notes from the approval process.
Approval workflow
Configuration changes go through an approval workflow before they can be activated. This prevents accidental or untested changes from affecting production instances.Submit a configuration update
Edit the YAML configuration and submit it. The new version enters pending status.
Review the changes
Reviewers (Owners and Admins) can examine the diff between the pending version and the current active configuration. The review system highlights potential issues such as disabling a storage engine, lowering confidence thresholds significantly, or changing scope boundaries.
Approve or reject
The reviewer approves or rejects the configuration with optional comments explaining the decision.
- Approved: The configuration is ready to be applied.
- Rejected: The submitter should revise and resubmit based on the review feedback.
Configuration statuses
| Status | Description |
|---|---|
| Pending | Submitted and awaiting review. Not yet active. |
| Approved | Reviewed and approved. Ready to be applied. |
| Rejected | Reviewed and rejected. Must be revised and resubmitted. |
| Active | Currently applied to the instance. Only one version can be active at a time. |
Applying configuration
When you apply an approved configuration, it becomes the active configuration for the instance. The previously active configuration is deactivated (but preserved in version history).Apply modes
Synap supports three apply modes to give you control over how changes are activated:Standard (default)
Standard (default)
Validates the configuration against schema and business rules, then applies it. This is the recommended mode for most changes.If validation fails, the configuration is not applied and you receive detailed error messages.
Dry Run
Dry Run
Validates the configuration and reports what would change, but does not actually apply it. Use this mode to preview the impact of a change before committing.Dry run checks include:
- Schema validation (field types, required fields, value ranges)
- Business rule validation (namespace existence, storage engine connectivity)
- Diff against the current active configuration
Force
Force
Skips conflict checks and applies the configuration directly. This mode is restricted to Admins and Owners and should only be used when you need to override a known conflict.
Rollback
You can revert to any previous configuration version at any time. Rollback is non-destructive — it creates a new version with the contents of the target version, rather than deleting intermediate versions.Select the target version
Find the version you want to revert to. You can preview its full YAML content.
Configuration changes do not affect running conversations. New configuration takes effect for new requests only. If an agent is mid-conversation when you apply a new config, that conversation continues with the previous settings until it ends.
API routes
| Method | Route | Description |
|---|---|---|
GET | /dashboard/configs/{instance_id} | Get the current active MACA config |
GET | /dashboard/configs/{instance_id}/history | Get the version history |
POST | /instances/{instance_id}/memory-architecture/init | Initialize MACA for a new instance |
POST | /instances/{instance_id}/memory-architecture/update | Submit a configuration update |
POST | /instances/{instance_id}/memory-architecture/apply/{config_id} | Apply an approved config |
POST | /instances/{instance_id}/memory-architecture/rollback/{config_id} | Rollback to a previous config |
POST | /instances/{instance_id}/memory-architecture/review/{config_id} | Submit a review (approve/reject) |
GET | /instances/{instance_id}/memory-architecture/config | Get the active config |
GET | /instances/{instance_id}/memory-architecture/versions | List all config versions |
Next steps
Configuring Memory Guide
Step-by-step guide for tuning MACA to your specific use case.
Core Concepts: Memory Architecture
Deep dive into how storage, ingestion, and retrieval interact.
Monitoring & Analytics
Measure the impact of configuration changes on performance and usage.
SDK Configuration
How the SDK reads and applies memory architecture configuration at runtime.