Models
File: config/agents/models.yaml · Schema: schemas/models.schema.json
The model registry: which provider serves each model, its pinned revision and its license, checked against the allow-list in policies.yaml.
Fields
| Field | Type | Description |
|---|---|---|
allowed_licenses | list of string | Required. SPDX ids a model may be licensed under. A model whose license is not listed stops boot. |
models | map of name → ModelDef | Required. Models by key; llm.extract and records.match name a model by this key. |
Unknown fields are refused at boot.
Types
Types referred to by the fields above, from the same schema.
ModelDef
| Field | Type | Description |
|---|---|---|
dimensions | integer (uint32) (optional) | Vector width; required for an embedding model, and must equal the embeddings.embedding column width. |
license | string | Required. SPDX license id; must be in allowed_licenses. |
name | string | Required. The model name the provider serves, e.g. Qwen/Qwen3.8-27B-FP8. |
params | any | Request parameters sent with every completion: temperature, max_tokens, enable_thinking, …. |
provider | string | Required. Key in settings.llm.providers. |
revision | string | Required. The exact revision approved for use (a Hugging Face commit hash). Recorded here; nothing reads it at run time yet. |
role | string | Required. chat (used by llm.extract) or embedding (used by ingestion and records.match). |
Unknown fields are refused at boot.
In this repository
# The model catalogue. Boot fails if any model's license is not in allowed_licenses.
models:
chat_default:
provider: vllm_chat # key in settings.llm.providers
name: Qwen/Qwen3.8-27B-FP8
revision: "<hf-commit-hash>" # pin before production (plan §18)
license: Apache-2.0
role: chat
params: { temperature: 0, max_tokens: 4096, enable_thinking: false }
embed_default:
provider: vllm_embed
name: Qwen/Qwen3-Embedding-0.6B
revision: "<hf-commit-hash>"
license: Apache-2.0
role: embedding
dimensions: 1024 # must equal the embeddings.embedding column width
allowed_licenses: [Apache-2.0, MIT, BSD-3-Clause]
Editor support
The schemas are generated from the Rust definition structs (task schema_export), and a test
fails when they drift. Point a YAML language server at the schema to get completion and
validation while editing:
# yaml-language-server: $schema=../../schemas/models.schema.json