Model Registry¶
models
¶
Model registry: the one place to bump model ids and effort levels.
Every harness reads its default model, its default reasoning effort, its
low/medium/high routing tiers, the reasoning-effort values its
CLI accepts, and the effort used for the difficulty classifier from
:data:MODEL_REGISTRY. The harness
classes only know how to turn an effort value into a CLI flag. To move a
harness to a new model or effort set, edit its :class:HarnessModels entry
here and the matching table in README.md; nothing else needs to change.
Keys are the --harness names accepted by create_harness().
ModelTier(model, effort=None)
dataclass
¶
One routing tier: a model id plus the default reasoning effort for it.
effort is harness-specific (see :attr:HarnessModels.efforts).
None means "resolve normally": the effort env var, else the registry
default_effort. Only the literal override value none (via
--effort or the env var) disables the effort flag.
HarnessModels(default, tiers=dict(), efforts=frozenset(), default_effort='high', subagent_effort=None, classifier_effort=None)
dataclass
¶
Model ids and effort levels for one harness.
default is used when no --model flag or model env var is set and
is also the classifier model for routed runs. tiers maps low,
medium and high to a :class:ModelTier; high should reuse
default so routed runs never regress hard tasks. efforts is the
set of effort values the harness CLI accepts; default_effort, every
tier effort, subagent_effort and classifier_effort must be in it
(or None).
default_effort is the reasoning effort passed on every run when no
--effort flag, effort env var, or tier effort says otherwise. A
None effort anywhere (tier, classifier) means "use the default".
subagent_effort applies to agents the harness spawns, where the CLI
has a separate knob (Codex); None follows the main effort.
harness_models(name)
¶
Return the registry entry for harness name.
Raises ValueError for a harness that has no entry.