Skip to main content

Quickstart

Prerequisites

  • Docker and Docker Compose
  • Python 3.9+ if you want to run commands on the host

1. Create your environment file

The checked-in example uses stub providers by default, which makes local startup deterministic and avoids external API calls. For a full explanation of every environment variable, including whether it is required, see Environment Reference. When you switch from stub to real OpenAI-compatible providers, these are the recommended models: Recommended default setup:
  • Adjudicator: openai/gpt-5.4
  • Context Enhancer: openai/gpt-5.4
  • Cortex: openai/gpt-5.4
  • Embedding: openai/text-embedding-3-large
If you want a faster context-only setup, use inception/mercury-2 for the Context Enhancer and keep the other roles unchanged.

2. Start the stack

This starts:
  • API
  • Celery worker
  • Celery beat
  • PostgreSQL with pgvector
  • Redis
  • Neo4j

3. Automatic migrations in Docker

Container startup now waits for Postgres and runs:
automatically before launching the API, worker, or beat process.

4. Automatic migrations outside Docker

If you start the API, worker, or beat directly, aCMF now applies pending Alembic migrations automatically during process startup there as well. Manual Alembic usage is still available if you want it:

5. Verify the service

API:
Expected response:

6. Try the basic flow

Create a user and enqueue post-turn processing:
Then request pre-turn context:
Ask a deep-memory question:
Fetch the latest snapshot for a user:
If you query for something unrelated to stored memory, the read endpoints now return a strict zero-result style abstention instead of surfacing unrelated scoped memories in diagnostics.

Running without Docker

You can also run the components directly:
You still need reachable Postgres, Redis, and Neo4j instances.