Skip to content

Configuration

Thomas Maerz edited this page Oct 5, 2026 · 4 revisions

Configuration

Connector process

The connector has no third-party Python dependencies.

Variable / flag Default Notes
LLM_BASE_URL http://127.0.0.1:8000 OpenAI-compatible base, without /v1
LLM_DOCKER_ENDPOINT http://host.docker.internal:8000/v1 Same server from the Cognee container
LLM_API_KEY empty Bearer token for the local server
DISTILL_MODEL / --model Qwen3.6-35B-A3B MLX alias Must match /v1/models exactly
DISABLE_THINKING true Sends chat_template_kwargs.enable_thinking=false; disable for endpoints that reject extensions
COGNEE_API_URL http://localhost:8010 Host-side Cognee API
OPENCODE_DB ~/.local/share/opencode/opencode.db Source SQLite path
--dataset opencode_kb Cognee destination dataset
--concurrency 4 Parallel distillation requests
--add-batch-size 100 Documents per idempotent Add request
--data-per-batch 4 Documents concurrently processed by the single Cognify run
--chunks-per-batch 12 Chunks per graph-extraction task batch
--limit, --offset unset Smoke tests or manual sharding

Legacy OMLX_URL and OMLX_API_KEY are accepted as fallbacks.

Cognee Docker service

docker-compose.yml exposes:

Service URL
Cognee API / Swagger http://localhost:8010 / /docs
Cognee UI http://localhost:3010

The browser-facing UI URL must match both CORS_ALLOWED_ORIGINS and UI_APP_URL. A mismatch appears as a generic UI connection error even when /health is healthy.

Model routing

Cognee needs both an LLM and an embedding model. The included configuration routes both to an OpenAI-compatible server on the Docker host:

LLM_PROVIDER: custom
LLM_MODEL: openai/<chat-model-id>
LLM_ENDPOINT: http://host.docker.internal:8000/v1
LLM_API_KEY: ${OMLX_API_KEY}

EMBEDDING_PROVIDER: openai_compatible
EMBEDDING_MODEL: <embedding-model-id>
EMBEDDING_ENDPOINT: http://host.docker.internal:8000/v1
EMBEDDING_DIMENSIONS: "1024"  # must match the model

openai/ on LLM_MODEL tells LiteLLM to use the OpenAI protocol. openai_compatible embeddings send the embedding model ID verbatim.

Structured output

Cognee graph extraction is schema-constrained. Local models are configured with:

STRUCTURED_OUTPUT_FRAMEWORK: instructor
LLM_INSTRUCTOR_MODE: json_schema_mode

Reasoning models additionally receive:

LLM_ARGS: '{"chat_template_kwargs": {"enable_thinking": false}}'

See Thinking preamble for why this is a correctness requirement, not cosmetic tuning.

Concurrency guidance

Start at four distill workers and four Cognify documents in flight. Measure completed sessions or documents per hour rather than the UI's single-stream tokens/second.

  • Reduce workers when interactive workloads share the same GPU or latency rises continuously.
  • Increase carefully when GPU utilization is low and memory pressure is stable.
  • Local inference often becomes memory-bandwidth-bound before compute-bound.

Persistence

  • var/distilled/: accepted distillation output, required for connector resume.
  • var/transcripts/: normalized, scrubbed model input for audit.
  • progress.json: distillation state only; Cognee owns ingestion state.
  • cognee_storage: Docker named volume containing the knowledge base.
  • var/log/: launchd stdout/stderr; container logs are rotated by Compose.

Clone this wiki locally