Skip to content

Allow selecting the agent LLM (Claude Haiku/Sonnet, GPT-4o, etc.) per task from the Web Console, without a server restart #129

Description

@HaticeSarp

Problem

Model/provider selection (Gemini, Claude Haiku/Sonnet, GPT-4o, etc.) is currently only
configurable through config/artemis.jsonc, on a per-node basis (planner, operator,
step summarizer, memory chunking, etc.). There is no way to choose which agent LLM a
task should run with from the Web Console (uv run artemis ui).

The Console Overview (Model & Replay panel) only displays the Flash/Pro execution
profile status — it does not expose a control for the underlying LLM provider/model.
Changing the model today means:

  1. Editing config/artemis.jsonc by hand.
  2. Restarting the server (uv run artemis restart) for the change to take effect.

This makes it impractical to run different tasks with different models in the same
session (e.g. a cheap/fast model for routine regression tasks, a stronger model for
complex exploratory tasks), and it interrupts any in-flight work when the server restarts.

Why this should be possible without a restart

Based on #95, model resolution already happens dynamically per call via
get_llm(ctx, name="operator")-style lookups rather than being cached once at process
startup. This suggests the underlying architecture already resolves models contextually,
and the missing piece is simply exposing that resolution as a per-task/per-session
override instead of only reading from the static global config file.

Proposed Solution

  • Add an optional model / provider parameter to task dispatch, both:
    • In the Web Console's Prompt Dock (a lightweight dropdown/selector next to the
      prompt input, defaulting to the currently configured node), and
    • In the ArtemisClient.run(...) SDK call / mobile_run_task MCP tool, mirroring
      the existing default_profile (flash/pro) parameter pattern.
  • When provided, this override should flow into the task's ctx at dispatch time and
    take precedence over the static artemis.jsonc default for that task only — no
    server restart, no global config mutation, no effect on other in-flight or future
    tasks.
  • Surface the resolved model (not just the Flash/Pro profile) in the Task Queue &
    Dashboard / session history, so it's clear after the fact which LLM a given task
    actually ran with (related to the session-model-visibility gap discussed separately).

Related

Scope note

This is a feature request, not a bug report — the current behavior (config-file-only,
restart-required) is not documented as broken, just limited. Keeping the initial scope
small (a single optional override parameter, not a full settings UI) should make this
tractable as a first pass.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions