Skip to content

Components

Each entry under components: defines one named instance of any component type: LLM provider, embedder, session store, vector store, or graph store. The name is used in request URLs (POST /v1/converse/{name}, POST /v1/memory/{name}/query, etc.).

Declaration order

Embedders must be declared before any vector store that references them via embedder: metadata. Vector stores must be declared before any LLM component that references them via memory_store:. The sidecar resolves names in top-to-bottom order.

components:
  - name: claude          # (required) unique name; used in the URL path
    type: anthropic       # (required) provider type — see Providers
    metadata:             # provider-specific settings
      default_model: claude-opus-4-7
      api_key: sk-ant-... # falls back to ANTHROPIC_API_KEY env var
    models:               # (optional) per-model API key overrides
      claude-haiku-4-5-20251001:
        api_key: sk-ant-haiku-key
    defaults:             # (optional) inference parameter defaults
      temperature: 1.0
      max_tokens: 4096

You can define as many components as you like — one per provider, or multiple instances of the same provider with different models or defaults.


Inference parameter defaults

All fields under defaults: are optional. Request values always take precedence. Zero / nil means "use the provider's own default".

Field Type Providers Description
temperature float all Sampling temperature
max_tokens int all Maximum output tokens
top_p float all Nucleus sampling probability
top_k int Anthropic Top-K sampling
stop list of strings all Stop sequences
frequency_penalty float OpenAI, llamacpp Frequency penalty
presence_penalty float OpenAI, llamacpp Presence penalty
seed int OpenAI, llamacpp RNG seed for reproducibility
system string all Default system prompt (used only when the request contains no system message)
defaults:
  temperature: 0.7
  max_tokens: 2048
  top_p: 0.9
  stop: ["Human:", "Assistant:"]
  system: "You are a helpful assistant."

Provider types

type Env var Notes
anthropic ANTHROPIC_API_KEY Claude models
openai OPENAI_API_KEY GPT models
llamacpp Any OpenAI-compatible local server (Ollama, LM Studio, llama.cpp)

See the Providers section for per-provider metadata fields and supported parameters.


memory_store field (LLM components)

Add memory_store: <store-name> to any LLM component to enable transparent RAG enrichment. Before every Chat call, the sidecar queries the named vector store with the last user message and prepends the top results as a system message.

- name: claude
  type: anthropic
  memory_store: chroma-docs     # must be declared above this entry
  metadata:
    default_model: claude-opus-4-7

The named store must be declared earlier in the components: list. If the query fails it is logged as a warning and the request continues normally.


Embedder components

Embedders generate dense vector representations for text. Declare them before any vector store that needs them.

- name: embedder
  type: embedding/openai
  metadata:
    base_url: https://api.openai.com   # or http://localhost:11434/v1 for Ollama
    api_key: sk-...                    # or OPENAI_API_KEY env var
    model: text-embedding-3-small
    dimensions: "1536"                 # optional override

The embedding/openai type works with any OpenAI-compatible embeddings endpoint (OpenAI, Ollama, LM Studio, etc.). Reference the embedder by name in a vector store's metadata:

- name: qdrant-docs
  type: qdrant
  metadata:
    base_url: http://localhost:6333
    collection: daimon
    embedder: embedder        # must match the name above

Session store components

By default sessions are stored in-memory and lost on restart. Declare a session store component to persist them. At most one session store may be configured.

- name: sessions
  type: session/redis
  metadata:
    addr: localhost:6379
    password: ""
    db: "0"
    ttl: "24h"            # 0 or omit for no expiry
- name: sessions
  type: session/postgres
  metadata:
    dsn: postgres://user:pass@localhost:5432/mydb
    table: daimon_sessions   # auto-created if absent
    ttl: "24h"

Vector store components

See the Stores section for the full list of vector store types and their metadata keys.

Graph store components

See the Stores section for the full list of graph store types and their metadata keys.