Gemini CLI 修复:重试循环未传递终止信号导致超时失效
chelsealong · ghdev · 2026-08-26
Google Gemini CLI 提交了一个 PR,修复了 BaseLlmClient 中的超时控制失效问题。
问题背景:
- BaseLlmClient 的 generateContent 和 generateJson 方法接受 abortSignal 并传递给单个 API 请求,但未将其传递给 retryWithBackoff 的 signal 选项。
- 这导致调用方设置的超时只能中止当前的 HTTP 请求,而无法停止重试循环本身。重试机制仍会按照完整的指数退避计划(如 5s/10s/20s/30s)继续尝试,远超预期的超时时间。
修复内容:
- 将 abortSignal 正确传递给 retryWithBackoff,确保超时能立即终止重试循环。
- 此举解决了 Issue #29065 中的次生症状:当 SessionSummaryService 因模型配置错误(硬编码了不存在的模型)而失败时,原本会卡在重试循环中刷屏 65 秒,现在能快速静默失败(返回 null)。
注意:该 PR 未修复 Issue #29065 的根本原因(即硬编码模型名称),仅修复了由此引发的超时失控问题。
「编程与Agent」频道最新
- 开源 Claude Code 简历优化与求职技能集 — tom_doerr · 2026-08-26
- AI Agent 架构实战指南:把约束写在代码而非提示词里 — bigdata · 2026-08-26
- CMU 开设 AI Agents 新课,含脚手架与 RL 训练 — shuyanzh36 · 2026-08-26
- Toast 1 深度搜索 SEC 文件:混合语义与 grep 筛选证据 — bclavie · 2026-08-26
- AI 智能体协助数学研究:一次对话即完成群论证明 — Sauers_ · 2026-08-26
- 30 天 657 个 PR、449 个 issue:Agent 把 backlog 变成了决策记录 — thechrisperry · 2026-08-26