---
title: "Model Presets are local snapshots; each Session owns its model route"
version: "en"
---

> Documentation Index
> Fetch the complete documentation index at: https://botharness.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Model Presets are local snapshots; each Session owns its model route

Status: accepted

ADR-0027 keeps model selection local to a deployment and outside SoulSnapshot. A Human can define a reusable Model Preset containing one Orchestrator provider/model/reasoning-effort route and an Assignment set of exact provider/model routes with allowed and default efforts. Applying a preset copies it into a PersonaBot Model Plan; later edits to the reusable preset do not change existing Bot plans. A Human can edit one Bot's plan without changing the preset. These plans may travel in an identity-preserving Profile Backup, but not in a PersonaBot Export or SoulSnapshot.

The Orchestrator uses the plan's exact route. Its plan change takes effect after the current Turn, at the next Turn's first model request. A new Assignment uses the plan's Assignment default unless the Orchestrator selects an allowed route and effort; every effective choice is checked at the Host execution boundary. An existing Assignment keeps its route when the Bot's plan changes, but an explicit later switch must satisfy the current plan and takes effect on its next request. DSH Subagents inherit their parent's route when it remains allowed; explicit choices must satisfy the Bot's current Assignment set and effort limits. If a retained Assignment uses a route excluded by the new plan, its newly created Subagents use the current Assignment default instead and tell the parent which route was chosen. Unavailable routes, efforts, or credentials stop the request and require Human repair rather than silently switching providers.

The plan is BotHarness application-defined operational authority, distinct from DSH's Agent preset and DSH's deployment-wide model default. DSH SessionEvents remain the durable record of what a Session actually selected and called. A legacy single `model` string migrates only when its provider resolves uniquely; otherwise the Bot requires Human selection before another model request. Keeping preset templates separate from applied snapshots makes rapid switching predictable while allowing different Bots to diverge safely.

Source: https://botharness.ai/dev/adr/0093-model-presets-are-local-snapshots/index.mdx
