Start with the defaults

New brains use none@v0 for extraction, embeddings, and composition. Model-dependent tasks are disabled until configured. Importing sources does not automatically extract claims.

Configure extraction and composition

The default provider for these tasks is OpenRouter. Set OPENROUTER_API_KEY in the process environment using your normal secret-management workflow. Choose model identifiers supported by your provider, then use versioned pins:

serenity config set-model extraction '<model-id>@<version>'
serenity config set-model composer '<model-id>@<version>'
serenity extract
serenity ask "What are my current project priorities?"

Replace the placeholders with actual model pins. Credentials come from environment variables, not serenity.yml. Model calls may incur provider charges.

Embeddings are separate

Embedding configuration uses an OpenAI-compatible endpoint and separate credentials. It does not follow the extraction/composer provider setting. See the provider reference before configuring an embedding model.

The search CLI currently uses full-text search even when an embedding model is pinned. Answer composition can use query embeddings when configured.

Using a local provider

Local OpenAI-compatible endpoints can be configured for supported provider paths. Endpoint choice, model naming, and the extraction/composer adapter selection matter. Follow the exact provider reference rather than assuming every pin routes identically.

Read answers with the evidence

A citation gives you a way to inspect support; it does not make every generated claim correct. Open the cited source, check that the context matches, and use direct search when you need the original wording.

Ask about Serenity