Model roles
Settings → Model Roles assigns models by task. An empty task role inherits the nearest configured parent, including its ordered model list: primary ├── cheap │ ├── title │ ├── memo
Settings → Model Roles assigns models by task. An empty task role inherits the nearest configured parent, including its ordered model list:
primary
├── cheap
│ ├── title
│ ├── memory_extraction
│ └── decision
│ ├── goal_judge
│ └── permission_review
└── dreamtitle: conversation titles.memory_extraction: extract durable facts from conversations.decision: shared default for goal completion and automatic permission review.goal_judge/permission_review: optional overrides under Advanced decision roles.dream: memory consolidation and knowledge-vault lint passes.
Explicit assignments replace inheritance; clearing a task role restores it, including after restart when YAML defines a default. Saving roles updates the running memory extractor immediately; an extraction already in progress keeps its original client. Inheritance selects configuration, not a second retry path after a model fails. Individual callers retain their existing retry behavior. Context compaction still uses the conversation model.
Existing cheap configurations continue to serve title, extraction, and decision
tasks. A saved role assignment takes precedence over YAML role defaults. The legacy
memory_consolidation_model setting supplies the initial Dream assignment when
no explicit dream role exists; Dream otherwise inherits Primary. An explicitly cleared Dream role remains empty on restart, even when the legacy
setting is still present.
Vision retains its capability-filtered inheritance from Primary. Embedding, image generation, and TTS require explicit specialist models and have no parent role.