Skip to content

Configuration

Generated from the configuration loader in Meaning Memory 3.20.0.

Settings are read in this order, and later sources win:

  1. mm-base.toml in MM_CONFIG_DIR
  2. agents/<agent>.toml in MM_CONFIG_DIR
  3. Environment variables

meaning-memory init writes both files for you. Keep secrets such as database passwords and tokens in environment variables, never in TOML.

These configure the server process rather than an individual agent.

Variable Purpose
MM_AGENT Agent identity slug: lowercase, starting with a letter (^[a-z][a-z0-9_-]*$). Required.
MM_BACKEND Storage backend: file or postgres. If unset, the file backend is used and a warning is logged.
MM_POSTGRES_DSN Postgres connection string. Required when MM_BACKEND=postgres.
MM_WORKSPACE Workspace root for the agent’s files. Overrides paths.workspace_root.
MM_CONFIG_DIR Directory that holds mm-base.toml and agents/<agent>.toml.
MM_TENANT_ID Tenant identity in multi-tenant deployments. Empty means single tenant.
MM_SCOPE_AUTH_CONFIG Path to the access policy (YAML). The MCP server refuses to start without one unless MM_ALLOW_UNSCOPED_DEV=true. On Postgres, also set it where consolidation runs: queued memories are checked against it before they are stored.
MM_ALLOW_UNSCOPED_DEV true runs without an access policy. For local development only.
MM_ALLOW_INTERNAL 1 enables the write tools (mm_remember, mm_feedback, mm_bulk_remember). Leave unset for a read-only agent.
MM_ALLOW_INTERNAL_SSE_OVERRIDE 1 also allows writes over the network transports. Keep the server on loopback or behind an authenticating proxy.
MCP_TRANSPORT stdio (default), sse or streamable-http.
MCP_HOST Bind address for the network transports.
MCP_PORT Bind port for the network transports.
MM_REST_TOKEN Bearer token for the REST server in a single-tenant deployment.
MM_REST_TOKENS_FILE Per-tenant bearer-token map for a multi-tenant REST deployment.
MM_EMBEDDING_SERVICE_URL URL of your embedding service, used for semantic search.
MM_S1_HALF_LIFE_DAYS Search recency half-life in days (default 90). Set on the MCP or REST server. See Decay and recency.
MM_DECAY_ENABLED true applies the [decay] decay_policy preset when the compiled memory file is rebuilt. Set where consolidation runs.
MM_AUTO_REFRESH_DISABLED 1 stops drains from rebuilding the compiled memory file.
MM_COMMITMENT_COMPILE true adds open commitments to the compiled memory file. Set where consolidation runs.
MM_WORKING_COMPILE 1 adds a Recent (48h) section of working memories to the compiled memory file. See Throughline.
MM_WORKING_AUTO_REFRESH 1 lets drained working memories trigger a rebuild of the compiled memory file.
MM_WORKING_PROMOTE 1 turns on promotion and expiry of working memories during consolidate --promote-only.
MM_WORKING_COPY_PROMOTE 0 keeps expiry but stops copying working memories into long-term memory. Defaults to the value of MM_WORKING_PROMOTE.
MM_WORKING_TTL_HOURS Age in hours after which working memories expire, when promotion is on (default 72).

Set these in TOML under their section, or through the environment variable shown. Shipped default is the value in the base configuration inside the engine; a dash means the engine’s built-in default applies.

Setting Shipped default Environment variable Description
agent — MM_AGENT Agent identity slug, usually supplied through MM_AGENT. Required.
tenant "" MM_TENANT_ID Tenant identity in multi-tenant deployments. Empty means single tenant.
organization "" Organization name recorded in the agent’s configuration.
Setting Shipped default Environment variable Description
workspace_root — MM_WORKSPACE Root directory for the agent’s files. Other paths resolve inside it.
scripts_root — MM_SCRIPTS Where the consolidation bridge scripts live. init sets it to <workspace>/scripts.
ledger "memory-ledger.md" MM_LEDGER The memory ledger file (file backend).
memory_out "MEMORY.md" MM_MEMORY_OUT Leave at the default. Consolidation always writes MEMORY.md in the workspace; this setting does not move it.
events "sig-events.jsonl" MM_EVENTS The significance event log.
footer_file "" MM_FOOTER_FILE Optional file appended to the compiled memory file.
Setting Shipped default Environment variable Description
lines 400 MM_BUDGET_LINES Maximum lines in the compiled memory file.
chars 40000 MM_BUDGET_CHARS Maximum characters in the compiled memory file. init presets write smaller values (the default balanced preset uses 25,000).
bytes — MM_BUDGET_BYTES Optional byte limit for the compiled memory file, for multi-byte text.
per_type_enabled — MM_BUDGET_PER_TYPE_ENABLED Splits the budget between semantic and episodic memory so neither crowds out the other.
semantic_pct — MM_BUDGET_SEMANTIC_PCT Share of the budget for semantic memory when per_type_enabled is on.
episodic_pct — MM_BUDGET_EPISODIC_PCT Share of the budget for episodic memory when per_type_enabled is on.
procedural_pct — MM_PROCEDURAL_BUDGET_PCT Cap on the share of the budget used by procedural memory.
stare_richness_trim_tiebreaker — MM_STARE_RICHNESS_TRIM_TIEBREAKER When trimming to fit the budget, prefer keeping entries with more STARE scores.
Setting Shipped default Environment variable Description
default 0.5 MM_SIG_DEFAULT Significance given to a new memory when none is supplied.
pinned 0.9 MM_SIG_PINNED Significance at which a memory is treated as pinned.
human_remember 0.8 MM_SIG_HUMAN_REMEMBER Significance given when a person explicitly asks for something to be remembered.
human_bump 0.15 MM_SIG_HUMAN_BUMP How much important feedback raises a memory’s significance.
Setting Shipped default Environment variable Description
tags ["shared", "system"] MM_PARTIES Allowed values for a memory’s party field. Writes with any other party are rejected.
Setting Shipped default Environment variable Description
memid_length 16 MM_MEMID_LENGTH Length of memory ids, in hex characters.
Setting Shipped default Environment variable Description
enabled — Accepted but not used in this release. Turn decay on with MM_DECAY_ENABLED=true; see Decay and recency.
decay_policy — Decay preset: none (default; only memories loaded with their own decay curve decay), conservative (recommended: episodes fade over about 180 days, content and preferences over about a year, facts and commitments never) or aggressive (most memory fades over about 180 days; commitments never). Takes effect only with MM_DECAY_ENABLED=true set where consolidation runs; see Decay and recency.

MM_SCOPE_AUTH_CONFIG points at a YAML file that says which memory scopes each agent may read and write. A single agent with private memory:

version: 1
agents:
support-bot:
allowed_scope_groups: [agent:support-bot]
groups:
agent:support-bot: { backfill_policy: forward_only }

See Scoping and sharing memory for shared scopes and multiple tenants.