Skip to content

Allow fastModel to use a model from a different auth type than the main session #4078

@tanzhenxin

Description

@tanzhenxin

What would you like to be added?

Currently, fastModel (configured at the top level of settings.json, or via /model --fast <id>) is only honored when the configured model id also exists under the same auth type as the main session model. If they don't match, fastModel is silently treated as unset, and all features that rely on it (session title, session recap, tool-use summary, memory relevance selection, prompt suggestions, /rename --auto, etc.) fall back to either skipping or using the main model.

I would like fastModel to be allowed to point to a model registered under any configured modelProviders.<authType> entry, not only the auth type currently selected for the main session.

Concretely, given a settings.json like:

{
  "security": { "auth": { "selectedType": "anthropic" } },
  "model": { "name": "claude-opus-4-7" },
  "fastModel": "deepseek-v4-flash",
  "modelProviders": {
    "anthropic": [{ "id": "claude-opus-4-7", ... }],
    "openai": [{ "id": "deepseek-v4-flash", ... }]
  }
}

…I would like Qwen Code to actually use deepseek-v4-flash (with its own provider's envKey / baseUrl / auth) for fast-model background tasks, while the main session continues to use the Anthropic-shaped claude-opus-4-7.

Why is this needed?

Qwen Code already supports configuring multiple auth types side by side under modelProvidersopenai, anthropic, and gemini — each with its own envKey, baseUrl, and model entries. Given that this multi-provider configuration is a first-class feature, it seems reasonable for fastModel to be settable across any of those configured providers — not only the one currently selected for the main session.

When the configuration as it appears in settings.json is accepted but silently treated as unset at runtime, it's hard for the user to tell that anything is wrong: fastModel still shows up in /about and /model --fast, but the background features that depend on it quietly skip. Making fastModel honor any configured provider would make the behavior match the configuration.

Additional context

The current behavior is intentional: when fastModel references a model that isn't registered under the active auth type, it is silently treated as unset, and any background feature that depends on it (session title, session recap, tool-use summary, memory relevance selection, prompt suggestions, /rename --auto, etc.) either skips or falls back to the main model.

中文

想要添加什么功能?

目前,fastModel(在 settings.json 顶层配置,或通过 /model --fast <id> 设置)只有当其 id 同时存在于当前主会话所使用的 auth type 之下 时才会生效。如果两者不匹配,fastModel 会被静默地当作未设置处理,所有依赖它的功能(会话标题、会话 recap、工具使用摘要、记忆相关性选择、prompt 建议、/rename --auto 等)会跳过或回退到主模型。

我希望 fastModel 能够指向 modelProviders.<authType> 下配置的任意一个模型,而不仅限于当前主会话所选的 auth type。

具体来说,对于这样的 settings.json

{
  "security": { "auth": { "selectedType": "anthropic" } },
  "model": { "name": "claude-opus-4-7" },
  "fastModel": "deepseek-v4-flash",
  "modelProviders": {
    "anthropic": [{ "id": "claude-opus-4-7", ... }],
    "openai": [{ "id": "deepseek-v4-flash", ... }]
  }
}

我希望 Qwen Code 真的使用 deepseek-v4-flash(带它自己 provider 的 envKey / baseUrl / 认证)来执行后台 fast-model 任务,而主会话继续使用 anthropic 形状的 claude-opus-4-7

为什么需要这个?

Qwen Code 已经支持在 modelProviders 下并列配置多种 auth type —— openaianthropicgemini,每一种都有自己的 envKeybaseUrl 和模型条目。既然这种多 provider 配置已经是一个一等公民功能,那么允许 fastModel 设置为其中任意一个已配置的 provider 下的模型 —— 而不仅限于当前主会话所选的那一个 —— 看起来是合理的。

settings.json 中的配置被接受、但运行时却被静默地视为未设置时,用户很难察觉哪里不对:fastModel/about/model --fast 里仍然显示存在,但依赖它的后台功能会悄悄跳过。让 fastModel 接受任意一个已配置 provider 下的模型,可以让运行时行为和配置保持一致。

附加上下文

当前行为是有意为之:当 fastModel 引用的模型未注册在当前激活的 auth type 下时,它会被静默地视为未设置;任何依赖它的后台功能(会话标题、会话 recap、工具使用摘要、记忆相关性选择、prompt 建议、/rename --auto 等)会跳过或回退到主模型。

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions