修复 Gemini CLI 因丢失 thoughtSignature 导致的 API 400 报错
sarbojitrana · ghdev · 2026-07-31
该 PR 修复了 Gemini CLI v0.53.0 版本中一个导致 API Error 400 的回归 Bug。
问题根因
在禁用上下文管理时,stripThoughts() 函数会无条件丢弃带有 thought: true 的历史记录。但如果 Gemini API 将必需的 thoughtSignature 附着在这些 thought part 上,直接剥离就会导致整个轮次丢失签名。当历史记录回滚并重放这些缺少签名的 functionCall 时,API 会直接拒绝请求并报错。
修复方案
修复方案参考了上下文管理启用路径下的正确逻辑,在剥离 thought part 时,向首个 functionCall 注入合成的 SYNTHETICTHOUGHTSIGNATURE 哨兵值,确保调用正常通过。
「编程与Agent」频道最新
- 相连的步骤≠工作流:Agent 跨应用交接无人把关 — usehive · 2026-10-16
- 用 Opus/Astra/Argon 生成 Blender 动画:怎么描述依然决定成败 — chongdashu · 2026-10-16
- 32GB 内存+8GB 3070 跑 PolyStrata+ Cline,约 90 tok/s — rpwoerk · 2026-10-16
- 模型能力还是基础设施?Agent 评测的分层归因难题 — jrxna · 2026-10-16
- 让 Claude 读完书和高手代码再写 claude.md,「已比我写得好」 — blaizedsouza · 2026-10-16
- Claude Code 插件 /label:一步自动命名并着色会话 — hermanschutte · 2026-10-16