[feature] Add coding model setting — separate model for coding vs orchestration tasks #922

Closed
opened 2026-06-04 11:32:03 +02:00 by sleepy · 0 comments
Owner

Feature Request

Currently the model settings support:

  • default_model / default_endpoint_id — main chat model
  • teacher_model — escalation to more capable model
  • utility_model — summarization, naming, tidy actions
  • research_model — deep research
  • task_model — background tasks

Missing: a dedicated coding model. Users who run different models for orchestration (e.g. Qwen for general chat) vs coding (e.g. DeepSeek for code tasks) have no way to configure this separation.

Proposed Changes

  1. New settings keys in DEFAULT_SETTINGS:

    • coding_model: model ID for coding tasks
    • coding_endpoint_id: endpoint for coding model
    • coding_model_fallbacks: fallback chain
  2. Settings UI: Add a "Coding" row in the model defaults section (same pattern as utility/teacher/research)

  3. Per-user resolution: Add coding_endpoint_id, coding_model, coding_model_fallbacks to _PER_USER_KEYS in src/settings.py

  4. Tool awareness: chat_with_model and subagent tools should be able to resolve coding as a role (same way teacher resolves to the teacher model)

  5. Aliases in settings_tools.py:

    • "coding model" → "coding_model"
    • "coder" → "coding_model"
  • Depends on #918 (settings persistence fix) to actually survive saves
  • Related to subagent tool rewrite (tracking separately)
## Feature Request Currently the model settings support: - `default_model` / `default_endpoint_id` — main chat model - `teacher_model` — escalation to more capable model - `utility_model` — summarization, naming, tidy actions - `research_model` — deep research - `task_model` — background tasks Missing: a dedicated **coding model**. Users who run different models for orchestration (e.g. Qwen for general chat) vs coding (e.g. DeepSeek for code tasks) have no way to configure this separation. ## Proposed Changes 1. **New settings keys** in `DEFAULT_SETTINGS`: - `coding_model`: model ID for coding tasks - `coding_endpoint_id`: endpoint for coding model - `coding_model_fallbacks`: fallback chain 2. **Settings UI**: Add a "Coding" row in the model defaults section (same pattern as utility/teacher/research) 3. **Per-user resolution**: Add `coding_endpoint_id`, `coding_model`, `coding_model_fallbacks` to `_PER_USER_KEYS` in `src/settings.py` 4. **Tool awareness**: `chat_with_model` and subagent tools should be able to resolve `coding` as a role (same way `teacher` resolves to the teacher model) 5. **Aliases** in `settings_tools.py`: - `"coding model" → "coding_model"` - `"coder" → "coding_model"` ## Related - Depends on #918 (settings persistence fix) to actually survive saves - Related to subagent tool rewrite (tracking separately)
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
sleepy/odysseus#922
No description provided.