This guide covers every section of the MACA config in detail, with practical recipes for common use cases.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.
Understanding the Config Structure
A MACA configuration has three top-level sections: storage, ingestion, and retrieval. Here is a fully annotated example:maca-config.yaml
The
version field is required. Synap uses it to track config history and enable rollback. Always increment the version when making changes.Storage Configuration
The storage section controls where memories are persisted and how they are organized.Vector Store
The vector store powers semantic search — finding memories that are conceptually similar to a query, even if they do not share exact keywords.| Parameter | Description | Default |
|---|---|---|
namespace | Logical partition name. Use different namespaces for different environments (e.g., dev-memories, staging-memories, prod-memories). | "default" |
embedding_dimension | Must match your embedding model. Common values: 1536 (OpenAI text-embedding-ada-002/3-small), 768 (Cohere), 384 (MiniLM). | 1536 |
enabled | Set to false to disable vector storage entirely. Retrieval will rely on graph-only queries. | true |
Graph Store
The graph store maintains a knowledge graph of entities and their relationships. It powers entity resolution, relationship queries, and structured lookups.| Parameter | Description | Default |
|---|---|---|
namespace | Logical partition for the graph store. | "default" |
enabled | Set to false to disable graph storage. Entity resolution and relationship extraction will be skipped. | true |
Scoping
Scoping determines the default isolation boundary for memories. This controls how memories are organized and who can access them.| Value | Description | Best For |
|---|---|---|
"user" | Each user gets an isolated memory space. The most common setting. | Multi-user applications, chatbots, personal assistants |
"customer" | Memories are shared across all users within a customer (organization). | Team-based tools, enterprise apps with shared context |
"instance" | All memories are shared across the entire instance. | Single-user agents, knowledge bases, internal tools |
Retention
Retention controls how long memories are kept before automatic cleanup.| Parameter | Description | Default |
|---|---|---|
max_memory_age_days | Memories older than this threshold are automatically purged during the nightly cleanup cycle. Set to 0 to disable automatic purging. | 0 (no limit) |
Consider your use case carefully when setting retention:
- Customer support: 90-180 days is usually sufficient. Older tickets lose relevance.
- Personal assistant: 365+ days. Users expect long-term memory.
- Compliance-sensitive: Match your data retention policy. Consult your legal team.
- High-volume analytics: 30-90 days to control storage costs.
Ingestion Configuration
The ingestion section controls what the pipeline extracts from incoming documents and how content is processed.Categories
Categories define which types of knowledge Synap extracts. Each category can be independently enabled or disabled.| Category | What It Extracts | Example |
|---|---|---|
facts | Factual statements about users, topics, or the world | ”User works at Acme Corp as a software engineer” |
preferences | Likes, dislikes, choices, and stated preferences | ”User prefers dark mode and concise responses” |
temporal_events | Time-bound events, deadlines, plans, and schedules | ”User has a dentist appointment next Tuesday” |
relationships | Connections between entities (people, organizations, concepts) | “Alice manages the engineering team at Acme” |
procedures | Step-by-step instructions and workflows | ”To deploy, run tests first, then build, then push” |
emotions | Emotional states, sentiment, and tone | ”User expressed frustration about the billing issue” |
Extraction
Extraction settings control the quality and aggressiveness of the extraction pipeline.| Parameter | Description | Default |
|---|---|---|
mode | "standard" — balanced speed and accuracy. "enhanced" — deeper extraction with multi-pass analysis (slower, higher quality). | "standard" |
confidence_threshold | Minimum confidence score (0.0-1.0) required to persist an extracted memory. Higher values mean fewer but more reliable memories. | 0.7 |
| Threshold | Effect | Use When |
|---|---|---|
0.5 | More permissive — captures more memories, including lower-confidence ones | Recall is more important than precision (e.g., research, brainstorming) |
0.7 | Balanced default — good tradeoff between coverage and quality | Most applications |
0.9 | Very strict — only high-confidence memories are stored | Precision is critical (e.g., medical, legal, financial) |
Chunking
Chunking determines how documents are split before embedding and storage.| Strategy | Description | Best For |
|---|---|---|
"semantic" | Splits at natural boundaries (paragraphs, topic shifts). Produces higher-quality embeddings. | Conversations, articles, documents |
"fixed" | Splits at fixed token intervals. Faster but may cut across ideas. | Structured data, logs, uniform-format content |
PII Handling
Controls how Personally Identifiable Information is handled during ingestion.| Handling Mode | Description |
|---|---|
"redact" | PII is detected and permanently removed before storage. Original content cannot be recovered. |
"mask" | PII is replaced with tokens (e.g., [EMAIL], [PHONE]). The mapping is stored separately for authorized unmasking. |
"passthrough" | No PII processing. Content is stored as-is. Use only when you handle PII externally. |
Agent Hints
Agent hints are natural-language instructions that guide the extraction pipeline. They help Synap understand domain-specific context that the general-purpose pipeline might miss.Retrieval Configuration
The retrieval section controls how memories are searched, ranked, and delivered.Modes
Synap supports two retrieval modes. You can enable one or both.| Mode | Latency | Method | Best For |
|---|---|---|---|
fast | ~50-100ms | Vector-only semantic search | Real-time chat, interactive UIs, latency-sensitive paths |
accurate | ~200-500ms | Vector + graph search with cross-encoder re-ranking | Complex queries, research, cases where precision outweighs speed |
mode parameter in context.fetch():
Ranking
Ranking weights control how retrieved memories are scored and ordered. All three weights should be between 0.0 and 1.0. They do not need to sum to 1.0 — they are normalized internally.| Signal | Description | Increase When |
|---|---|---|
recency_weight | Favors recently created/updated memories | User context changes frequently, recent info is more valuable |
relevance_weight | Favors memories semantically closest to the search query | Query accuracy matters most, user history is stable |
confidence_weight | Favors memories with higher extraction confidence scores | Operating in high-stakes domains where accuracy is critical |
A good starting point for most applications is
relevance: 0.5, recency: 0.3, confidence: 0.2. This prioritizes relevance while giving a moderate boost to recent memories and a light preference for high-confidence extractions. Tune from there based on your retrieval quality observations.Anticipation
Anticipation enables predictive pre-fetching of context for common query patterns. When enabled, Synap analyzes retrieval patterns and pre-caches likely-needed context before the SDK requests it.| Parameter | Description | Default |
|---|---|---|
enabled | Turn predictive pre-fetch on or off. | false |
cache_ttl_seconds | How long anticipated results stay in the pre-fetch cache. | 300 (5 minutes) |
Anticipation adds a small amount of background processing and storage overhead. Enable it when you observe repetitive retrieval patterns (e.g., a support bot that frequently looks up the same customer context). For applications with highly diverse queries, the hit rate may be too low to justify the overhead.
Context Budget
The context budget controls the maximum volume of content returned in a single retrieval call.| Parameter | Description | Default |
|---|---|---|
max_tokens | Maximum number of tokens across all returned memories. Synap truncates and prioritizes to stay within budget. | 4096 |
max_tokens with your LLM’s context window:
| LLM Context Window | Recommended max_tokens | Reasoning |
|---|---|---|
| 4K tokens | 1024-1536 | Leave room for system prompt + user message + response |
| 8K tokens | 2048-3072 | Comfortable budget for most conversations |
| 32K+ tokens | 4096-8192 | Generous context, but more is not always better |
Agent Hints (Retrieval)
Similar to ingestion hints, retrieval agent hints guide how Synap ranks and filters results.Common Configuration Recipes
These are battle-tested configurations for common application patterns.- Customer Support Bot
- Personal Assistant
- Knowledge Base Agent
- High-Volume Analytics
High recall, user-scoped, all core categories enabled. Optimized for quickly retrieving a customer’s full context during a support interaction.
customer-support-maca.yaml
Applying Changes Safely
Configuration changes can have significant impact on how your instance processes and retrieves memories. Always follow this workflow:Write your config
Create or modify your MACA YAML file locally. Validate the YAML syntax before proceeding.
Dry run
Open Dashboard → Instance → Memory Configuration, paste the new YAML into the editor, and click Dry run. The validator returns:
- Schema and business-rule errors (must fix before applying)
- Warnings (recommended fixes; the apply path will still accept)
- A diff showing exactly what will change
Review the diff
Examine the diff carefully. Pay particular attention to:
- Categories being disabled (extraction will stop for that type)
- Scope changes (may affect retrieval behavior)
- Retention changes (may trigger cleanup of older memories)
- Embedding dimension changes (requires re-indexing)
Apply the config
Once satisfied, click Apply. The new version moves through the configured approval workflow (
pending → approved → active) and the dashboard records who applied which version with a timestamp.Rolling back
Open Dashboard → Instance → Memory Configuration → Version History to see every config version withapplied_at, status, and applied_by. From the same view you can diff any two versions side-by-side and click Rollback on a previous version to re-apply it as a new version, preserving the audit trail.
Programmatic MACA management (validate, apply, list versions, rollback) is on the roadmap. Email support@maximem.ai if you need to script config changes across many instances today.
Next Steps
Multi-User Scoping
Learn how to configure memory isolation for multi-tenant applications.
Memory Architecture Concepts
Understand the underlying architecture that MACA configs control.
Entities and Resolution
Learn how entity resolution works with your graph store configuration.
Production Checklist
Ensure your configuration is production-ready.