- Storage: Vector and graph store namespaces, embedding dimensions, retention policies
- Ingestion: Memory categories, extraction rules, chunking strategies, agent hints
- Retrieval: Retrieval modes, ranking signals, context budgets, anticipation settings
Initialize Configuration
Initialize the memory architecture for a new instance. This generates a default configuration based on the instance’s agent type and queues it for review.Path Parameters
The instance ID to initialize configuration for. Format:
inst_<hex16>.Request Body
The client ID that owns this instance. Used for authorization.
The user ID of the person initiating the configuration. Used for audit logging.
Response
Unique identifier for the generated configuration version.
Status of the configuration. Typically
pending_review after initialization.Human-readable description of the result.
Array of items flagged for review. Each flag includes a
field, reason, and severity (info, warning, critical).Example
Response (201 Created)
Update Configuration
Submit an updated configuration for an instance. The update goes through validation and is queued for review.Path Parameters
The instance ID to update configuration for.
Request Body
The client ID that owns this instance.
The user ID making the change.
A description of why this configuration change is being made. Stored in the audit log and displayed during review.
The full or partial configuration update. See the MACA Configuration Schema for the complete structure.
Response
Same shape as the Initialize Configuration response.Example
Response
Apply Configuration
Apply an approved configuration version to make it the active configuration for the instance.Path Parameters
The instance ID.
The configuration version ID to apply.
Request Body
The user ID applying the configuration.
The application mode.
| Value | Description |
|---|---|
immediate | Apply the configuration immediately. Active requests may see mixed behavior during the transition. |
graceful | Wait for in-flight requests to complete before switching. Default. |
canary | Apply to a percentage of traffic first, then gradually roll out. |
Response
Whether the configuration was applied successfully.
New status of the configuration.
active on success.Human-readable result message.
ISO 8601 timestamp of when the configuration was activated.
The config ID of the previously active configuration. Use this with the Rollback endpoint if needed.
Example
Response
Rollback Configuration
Roll back to a previous configuration version. This re-applies the specified configuration and deactivates the current one.Path Parameters
The instance ID.
The configuration version ID to roll back to. Typically the
rollback_config_id returned from the Apply endpoint.Request Body
The user ID performing the rollback.
Reason for the rollback. Stored in the audit log.
Response
Same shape as the Apply Configuration response.Example
Response
Rollback re-applies the exact previous configuration. It does not undo storage changes (e.g., memories ingested under the new config are retained). Only the processing rules change going forward.
Review Configuration
Submit a review decision for a pending configuration. Configurations must be reviewed before they can be applied.Path Parameters
The instance ID.
The configuration version ID to review.
Request Body
The review decision.
| Value | Description |
|---|---|
approve | Approve the configuration. It can then be applied. |
reject | Reject the configuration. It cannot be applied without resubmission. |
request_changes | Request changes. The configuration stays in review with feedback notes. |
The user ID of the reviewer.
Review notes or feedback. Displayed to the configuration author.
Resolution decisions for flagged conflicts. Keys are the conflict field paths, values are the chosen resolution.
Response
Whether the review was recorded successfully.
New status of the configuration after review:
approved, rejected, or changes_requested.Example
Response
Get Active Configuration
Retrieve the currently active configuration for an instance.Path Parameters
The instance ID.
Response
Returns the full configuration object as JSON. The configuration is stored internally as YAML but serialized to JSON for the API response.Example
Response
Get Configuration Version
Retrieve a specific configuration version by its ID.Path Parameters
The instance ID.
The configuration version ID.
Response
Same shape as Get Active Configuration, but may include non-active statuses (pending_review, approved, rejected, superseded).
List Configuration Versions
Retrieve the version history for an instance’s memory architecture configuration.Path Parameters
The instance ID.
Query Parameters
Page number. Defaults to
1.Items per page. Defaults to
20, maximum 100.Response
Array of configuration version summaries.
Example
Response
Dashboard Configuration Routes
The Dashboard also exposes simplified configuration endpoints for the web UI.Get Current Configuration Detail
Get Configuration History
These dashboard routes return the same underlying data as the MACA endpoints but with additional presentation metadata optimized for the dashboard UI.
Configuration Schema
The full MACA configuration schema is organized into three sections:Storage Configuration
Storage Configuration
Controls how memories are stored in the vector and graph stores.
| Field | Type | Default | Description |
|---|---|---|---|
storage.vector.namespace | string | auto-generated | Vector store namespace |
storage.vector.embedding_dimension | integer | 1536 | Embedding vector dimension |
storage.vector.distance_metric | string | cosine | Distance metric: cosine, euclidean, dot_product |
storage.graph.namespace | string | auto-generated | Graph store namespace |
storage.graph.enabled | boolean | true | Enable graph storage for entity relationships |
storage.retention.default_ttl_days | integer | null | Default time-to-live in days. null for indefinite. |
storage.retention.max_memories_per_scope | integer | 10000 | Maximum memories per scope before eviction |
Ingestion Configuration
Ingestion Configuration
Controls how documents are processed through the ingestion pipeline.
| Field | Type | Default | Description |
|---|---|---|---|
ingestion.categories | string[] | all types | Memory categories to extract |
ingestion.extraction.model | string | default | Extraction model to use |
ingestion.extraction.confidence_threshold | float | 0.7 | Minimum confidence for extracted memories |
ingestion.chunking.strategy | string | semantic | Chunking strategy: semantic, fixed, sentence |
ingestion.chunking.max_chunk_size | integer | 512 | Maximum chunk size in tokens |
ingestion.chunking.overlap | integer | 64 | Overlap between chunks in tokens |
ingestion.agent_hints | object | {} | Hints for the extraction model about domain-specific terms |
Retrieval Configuration
Retrieval Configuration
Controls how memories are retrieved and ranked for context.
| Field | Type | Default | Description |
|---|---|---|---|
retrieval.mode | string | balanced | Retrieval mode: fast, balanced, accurate |
retrieval.context_budget | integer | 4096 | Maximum tokens in the context response |
retrieval.ranking_signals | string[] | ["recency", "relevance", "confidence"] | Signals used for ranking results |
retrieval.anticipation.enabled | boolean | true | Enable anticipatory retrieval |
retrieval.anticipation.lookahead_turns | integer | 3 | Number of conversation turns to anticipate |
retrieval.agent_hints | object | {} | Hints for the retrieval model |