背景
最近接入 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: `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 端到端)
背景
最近接入 DeepSeek V4 + GPT-5.5 后,引入了两个新的 LLM 参数轴:
low | medium | high | xhigh) — GPT-5.5 / DeepSeek V4 Pro 等模型支持的"推理深度"auto | thinking | instant) — DeepSeek V4 / Kimi K2.5 这类支持思考开关的模型当前实现把这两个控件都塞在了聊天输入框旁边的
+popover 里(src/components/layout/MainAIChatShell.tsx:1506-1577)。问题
`+` popover 在用户认知里是**"附件 / skills"入口** —— 不是会去调推理参数的地方。导致:
用户心智模型分析
reasoning effort 不是 set-and-forget 的"设置",而是 per-message 的取舍:
用户预期:这条消息想要快/便宜 → low,这条消息要深度分析 → xhigh。同一会话内反复切换。这个性质和"选哪个模型"一样,不像 temperature(后者基本不会动)。
对标其他产品
候选方向(待设计稿确认)
A. 模型选择器旁边加 effort chip
B. Cursor 派,折进模型 dropdown
待办
现有实现位置