Configuration
Configuration is loaded from YAML through EngineConfiguration.
Related pages: Engine, EngineConfiguration-Reference, EngineConfiguration-Services-Reference, Overview, Troubleshooting.
File resolution rules
When no inline config is provided:
- Read
ENVfrom process environment. - If absent, try to bootstrap
ENVfrom dotenv secret adapter inconfig.yaml. - If
ENVexists andconfig.<ENV>.yamlexists, use it. - Otherwise use
config.yaml.
If neither exists, engine startup fails.
Selection behavior is implemented in EngineConfiguration.load_configuration().
Secret templating in YAML
YAML is rendered with Jinja2 and can reference secrets:
services:
vector_store:
vector_store_adapter:
adapter: "qdrant"
config:
host: "{{ secret.QDRANT_HOST }}"
api_key: "{{ secret.QDRANT_API_KEY }}"Two-pass behavior:
- First pass loads only secret service to resolve secret placeholders.
- Second pass renders full configuration with resolved secrets.
If a secret is missing and no TTY is available, loading fails with an explicit error.
Secret lookup precedence during rendering:
- Process environment variable.
- Bootstrap dotenv adapter (first pass only).
- Configured secret service adapters (second pass).
- Interactive prompt (TTY only, second pass).
For full behavior details, see EngineConfiguration-Reference.
Top-level sections
api: title, description, logos, CORS, reload.global_config:ai_modeincloud | local | airgap.services: adapter selection and adapter-specific config.modules: enabled module entries and module config payload.deploy(optional): deployment metadata.default_agent(optional): runtime default agent string.
Built-in defaults
If service blocks are omitted, defaults are applied:
object_storage: filesystem (storage/datastore)triple_store: filesystem (storage/triplestore,triples)vector_store:qdrant_in_memorysecret: dotenv (.env)bus:python_queuekv:python
Default module behavior
If not explicitly configured, naas_abi_core.modules.templatablesparqlquery is auto-added.
This happens via model validation in EngineConfiguration.validate_modules().
Minimal complete example
See Quickstart for a ready-to-run local config.yaml.
Advanced reference
For class-by-class documentation of EngineConfiguration.py, see EngineConfiguration-Reference.
For adapter-by-adapter service and deploy configuration fields, see EngineConfiguration-Services-Reference.