
Misc. bug: UI Feedback: Reasoning button visibility & disconnected Developer Settings
快速结论:llama-server 在合并 PR #23434 后,UI 中的 reasoning 按钮(灯泡图标)默认关闭且难以发现,同时旧的开发者设置 “Enable thinking” 已失效。优先排查:确认启动参数是否包含 --reasoning on,并检查 UI 中新的 reasoning 按钮是否被正确继承命令行设置。
问题场景
用户在 Windows 上运行 llama-server.exe(来自 ggml-org/llama.cpp 工具),通过命令行指定了 --reasoning on --reasoning-budget 8192 启动参数,用于支持 Gemma 4 等需要推理层级触发的模型。打开 WebUI 后发现:
- UI 中 reasoning 按钮(灯泡图标)默认灰色禁用,难以发现。
- Developer Settings 中的 “Enable thinking” 复选框已无实际效果。
- Gemma 4 模型(依赖 Jinja 模板中的
enable_thinking标志)无法正常触发推理。
报错原文
# 用户描述的核心问题
"When I was troubleshooting why I didn't get any thinking with Gemma 4 (despite it being enabled in developer settings), I finally found the new awesome-but-hard-to-see reasoning button from #23434 in the chat view."
# 日志或配置中的关键证据
"Despite the server flag, the UI still initialized with `"enableThinking": false` in the settings JSON."
原因分析
这是一个 UI 与后端参数继承机制的 bug。可能原因包括:
- 后端参数未传递到前端:即使启动了
--reasoning on,WebUI 在初始化新会话时,默认将enableThinking设为false,覆盖了服务端命令行设定。 - 旧的开发者设置残留:PR #23434 移除了旧的 “Enable thinking” 复选框功能,但未从 UI 中移除或改为引导链接,导致用户误以为该设置仍生效。
- 视觉隐藏问题:reasoning 按钮默认灰色且图标(带斜杠的灯泡)与背景融合度过高,用户难以发现。
- 会话设置持久化问题:浏览器端存储了前一次会话的 reasoning 状态,导致新会话继承旧值而非服务端默认值(即使点击 “Reset to default” 也无法重置)。
环境排查
- llama.cpp 版本:确认构建版本是否包含 PR #23434 之后(2025 年 5 月前后)或 PR #25846 之前的补丁。
- 启动参数:确认是否传递
--reasoning on和--reasoning-budget(如果模型需要)。 - 模型支持:确认使用的 GGUF 模型(如 Gemma 4)是否在 Jinja 模板中依赖
enable_thinking变量注入%<|think|>\n标记。 - 浏览器缓存:检查浏览器 localStorage 中是否存有旧的 reasoning 设置(可能干扰默认值)。
- UI 布局:在高分辨率显示器上,观察聊天输入框左侧的灰色灯泡按钮是否可见。
解决步骤
- 升级到最新补丁:更新至包含 PR #25846 的版本。该补丁引入 “Default” 模式,允许后端基于 Jinja 模板或 CLI 设置自动决策,不再由前端硬编码覆盖。
- 清除浏览器缓存:打开浏览器开发者工具(F12),进入 Application → Local Storage,清除
localhost:8080域下的所有数据,然后刷新页面。 - 手动启用 reasoning 按钮:在聊天输入框左侧找到灰色灯泡图标并点击启用(可优先尝试此操作,即使 UI 未显示为激活状态)。
- 验证启动参数(可优先尝试):在命令行中明确添加
--reasoning on,如果模型需要预算则加上--reasoning-budget 8192。服务端应自动将参数传递给前端。 - 忽略旧的 Developer Settings:不再使用 “Enable thinking” 复选框(已失效)。如需重置,使用 “Reset to default” 按钮(注意:在 PR #25846 之前此按钮无法清除浏览器存储的 reasoning 状态)。
验证方法
重启 llama-server 后,在 WebUI 中新建聊天会话,观察 reasoning 按钮是否默认高亮(非灰色)。用 Gemma 4 发送一条测试提示,确认系统提示中已注入 <|think|>\n 标记(可在日志或 API 响应中检查)。同时检查 Developer Settings 中是否不再显示 “Enable thinking” 复选框,或显示为已弃用的提示。
参考来源
ggml-org/llama.cpp #24141
ggml-org/llama.cpp PR #25846(修复补丁)

![[Bug]: /responses API Drops Reasoning Items from Multi-Turn Input (v1.83.7 Regression)](https://www.chat-gpts.plus/wp-content/uploads/2026/07/32335-7e6c9ac3-768x403.jpg)

