#1340·cc-haha

[BUG] 后台 AI 自动命名对思考型模型静默失败:max_tokens=100 被思考耗尽,会话标题停留在首条消息占位文本

Author: yy1588133Created Sep 17, 2026Updated Sep 17, 2026

提交前确认

  • 我已经阅读了 README 常见问题
  • 我已经升级到最新版本后复现过这个问题(桌面端 v0.6.4)
  • 我已经搜索过现有 issues,确认没有重复问题
  • 我已经隐藏截图和日志中的 API Key、Token、Cookie 等敏感信息

问题描述

桌面端的后台 AI 自动命名(会话进行中写入 ai-title 条目的那个生成器,区别于 /rename)在 models.haiku / models.main 配置为思考型模型时永远静默失败。会话列表标题始终停留在首轮写入的占位标题(即首条用户消息的截断文本),不会被 AI 生成的标题覆盖。

复现步骤

  1. 提供商使用 Anthropic 兼容 endpoint,models.haiku 指向思考型模型(我的配置:火山引擎 ark coding endpoint + glm-5.3-flash,main/haiku 同模型)
  2. 新建会话并正常对话
  3. 观察 ~/.claude/projects/**/*.jsonl:只有首轮写入的占位 ai-title(firstUserMessage 截断),第 1/3 轮对话完成后的标题生成从未产生新条目

是否稳定复现: 是,所有新会话均复现

原因分析(基于 sidecar v0.6.4 反混淆)

标题生成的请求体硬编码为:

javascript
{ model: models.haiku ?? models.main, max_tokens: 100, system: titlePrompt, messages: [...] }

未携带 thinking 字段。思考型模型会把 100 token 的预算全部消耗在思考输出上,正文 content 为空 → JSON 解析得到 null → 外层 catch 静默吞掉,无任何日志提示。

建议(任选其一或组合)

  1. 将该请求的 max_tokens 提高到 1024 以上,并在响应包含 thinking block / reasoning_content 时正确提取 text 部分;
  2. 或允许用户在设置 / providers.json 中覆盖标题生成所用的 model 和 max_tokens;
  3. 或失败时至少回退到 firstUserMessage 截断并记录一条日志,而不是完全静默。另外当前占位标题会被 hook 注入的 system-reminder 文本污染(形如 "Use the Skill tool with skill: ..."),观感较差。

环境

  • OS: Windows 11 Home China 10.0.22631
  • 桌面端版本: v0.6.4
  • Provider: 火山引擎 ark coding endpoint(Anthropic 兼容),模型 glm-5.3-flash(思考型)