[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 生成的标题覆盖。
复现步骤
- 提供商使用 Anthropic 兼容 endpoint,
models.haiku指向思考型模型(我的配置:火山引擎 ark coding endpoint + glm-5.3-flash,main/haiku 同模型) - 新建会话并正常对话
- 观察
~/.claude/projects/**/*.jsonl:只有首轮写入的占位ai-title(firstUserMessage 截断),第 1/3 轮对话完成后的标题生成从未产生新条目
是否稳定复现: 是,所有新会话均复现
原因分析(基于 sidecar v0.6.4 反混淆)
标题生成的请求体硬编码为:
{ model: models.haiku ?? models.main, max_tokens: 100, system: titlePrompt, messages: [...] }未携带 thinking 字段。思考型模型会把 100 token 的预算全部消耗在思考输出上,正文 content 为空 → JSON 解析得到 null → 外层 catch 静默吞掉,无任何日志提示。
建议(任选其一或组合)
- 将该请求的
max_tokens提高到 1024 以上,并在响应包含 thinking block /reasoning_content时正确提取 text 部分; - 或允许用户在设置 / providers.json 中覆盖标题生成所用的 model 和 max_tokens;
- 或失败时至少回退到 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(思考型)
Source: NanmiCoder/cc-haha