Skip to content

UX: reasoning-effort / thinking-mode UI placement needs a redesign #212

@blueberrycongee

Description

@blueberrycongee

背景

最近接入 DeepSeek V4 + GPT-5.5 后,引入了两个新的 LLM 参数轴:

  • reasoning effort (low | medium | high | xhigh) — GPT-5.5 / DeepSeek V4 Pro 等模型支持的"推理深度"
  • thinking mode (auto | thinking | instant) — DeepSeek V4 / Kimi K2.5 这类支持思考开关的模型

当前实现把这两个控件都塞在了聊天输入框旁边的 + popover 里(src/components/layout/MainAIChatShell.tsx:1506-1577)。

问题

`+` popover 在用户认知里是**"附件 / skills"入口** —— 不是会去调推理参数的地方。导致:

  • 用户选了 GPT-5.5 后,effort 选择器完全找不到 —— 反馈原文:"我们现在在我们的面板上面没有办法选,也没有办法填"
  • AI Settings 弹窗(齿轮图标)里也没有 —— 用户找设置的第一直觉就是死路
  • thinking-mode 同病相怜,藏在同一个 popover 里

用户心智模型分析

reasoning effort 不是 set-and-forget 的"设置",而是 per-message 的取舍:

  • 直接决定单次提问的等待时间(xhigh 可能 1 分钟+)
  • 直接决定花的钱(reasoning tokens 不便宜)
  • 直接决定回答质量

用户预期:这条消息想要快/便宜 → low,这条消息要深度分析 → xhigh。同一会话内反复切换。这个性质和"选哪个模型"一样,不像 temperature(后者基本不会动)。

对标其他产品

产品 做法
Cursor effort 折进模型 dropdown(`GPT-5 · low`, `GPT-5 · medium`...)—— 单 picker 解决
Claude.ai extended thinking 开关贴在 send 按钮旁边 —— 但无 effort 粒度
ChatGPT 通过模型变体抽象掉(GPT-5.5 Thinking / Pro 当成不同模型)—— 完全不暴露
OpenAI Playground 侧栏 slider,持久化 —— tinker 场景才合适

候选方向(待设计稿确认)

A. 模型选择器旁边加 effort chip

  • `[GPT-5.5 ▾] [Effort: medium ▾]`
  • 不支持 effort 的模型 chip 自动消失
  • 跟 V4 Pro 这种"thinking 二态 + effort"的二维结构兼容

B. Cursor 派,折进模型 dropdown

  • `GPT-5.5 · Low` / `GPT-5.5 · Medium` / ...
  • 单 picker,UI 更省地方
  • 但和 V4 Pro 这种二维结构对不上(thinking on/off 还是要单独控件)

待办

  • 确认 UI 方向(待 @blueberrycongee 附设计稿)
  • 重做 effort + thinking-mode 的入口位置
  • AI Settings 弹窗补一个"默认 effort / 默认 thinking-mode"配置(全局 fallback)
  • 默认值校准:GPT-5.5 应默认 medium(对齐 OpenAI 官方默认),不要用"未设置"占位
  • thinking-mode hint 文案重新审视
  • hover tooltip 解释每档 effort 的速度/成本/质量权衡

现有实现位置

  • UI: `src/components/layout/MainAIChatShell.tsx:1506-1577`
  • Capability 抽象: `src/services/llm/thinking.ts`(`effort-only` / `param-toggle` 两种 strategy)
  • 后端 → opencode 透传: `electron/main/agent/providers/thinking-options.ts` + `electron/main/agent-v2/provider-bridge.ts`
  • 相关提交: `4a023bf`(DeepSeek V4) / `afc296d`(GPT-5.5 + opencode 端到端)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions