Skip to content

Configuration Files

KITT uses YAML configuration files stored in the configs/ directory at the project root. Every configuration file is validated at load time with Pydantic v2 models defined in src/kitt/config/models.py.

Directory layout

configs/
├── suites/              # Test-suite definitions
│   ├── quick.yaml
│   ├── standard.yaml
│   └── performance.yaml
├── engines/             # Engine parameter overrides
│   ├── vllm.yaml
│   ├── llama_cpp.yaml
│   ├── ollama.yaml
│   └── profiles/        # Named engine profiles
├── campaigns/           # Multi-model, multi-engine campaign configs
│   ├── example.yaml
│   └── scheduled_example.yaml
└── tests/               # Benchmark definitions
    ├── performance/     # Built-in performance benchmarks
    └── quality/
        ├── standard/    # Built-in quality benchmarks (MMLU, GSM8K, ...)
        └── custom/      # User-created custom benchmarks

Configuration types

Type Pydantic Model Reference
Suite SuiteConfig Suite Configuration
Engine EngineConfig Engine Configuration
Campaign (free-form YAML) Campaign Configuration
Benchmark TestConfig Custom Benchmark Configuration

Loading pattern

All configs follow the same load pattern:

from kitt.config.loader import load_config
from kitt.config.models import SuiteConfig

suite = load_config("configs/suites/standard.yaml", SuiteConfig)

load_config() reads the YAML file, passes the resulting dictionary to the Pydantic model, and raises a validation error if any field is invalid or missing.