Skip to content

子智能体模型选择器:思考强度子菜单没有提示具体档位会写入 [secondary_model].default_effort 并钉死整个模型池 #3880

Description

@relus-cy

版本: 2.0.0(macOS arm64;静默钉死行为最早在 0.43.0 上观察到,2.0 的选择器 UI 未变)

问题

设置 → 子智能体模型 → 思考强度 子菜单提供 模型默认 / Low / High / Max,但没有任何文字说明选择具体档位的后果。实际行为是:选一个具体档位(如 High)会向 config.toml 写入一个段落级 pin:

[secondary_model]
default_model = "opencode-go/deepseek-v4.1-flash"
model = "opencode-go/deepseek-v4.1-flash"
default_effort = "high"   # <-- 选择器静默写入

按照文档的解析顺序,[secondary_model].default_effort 优先于每个 [models] 条目自己的 default_effort。我的池里 cliproxyapi/devin/swe-2 条目配置的是 default_effort = "max",但在选择器写入 pin 之后,该条目派生的 subagent 全部绑定为 high(会话 wire 日志 profile.bind.thinkingEffort 实测证实)。选择器和写入结果都没有任何提示告诉用户"这个档位作用于整个模型池、会覆盖各条目默认值";唯一可察觉的症状是"subagent 变笨了"。

选择「模型默认」则不会写入 default_effort,行为正常。

期望(任一)

  1. 在思考强度子菜单加提示文案,例如"具体档位将应用于整个子智能体模型池,并覆盖各模型条目自己的默认强度";或
  2. 选择器只把档位写到所选条目(如 [models."<alias>".overrides] default_effort),而不是段落级;或
  3. 两者同时存在时,让条目级 default_effort 优先于段落级值。

复现

  1. 配置 [secondary_model.models] 两个不同 default_effort 的条目(如一个 high、一个 max)。
  2. 选择器中任选模型 + 具体档位(如 High)。
  3. 在 max 条目上派生 subagent → 实际绑定为 high。

附注:选择器还会同时写入一个遗留的 model = 键(无害,源码中作为 v1 fallback 保留)。

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