Gemini CLI 修复长会话内存溢出:工具输出按 64KB 预算截断并逐出多模态数据
tadipavan · ghdev · 2026-11-06
社区 PR(google-gemini/gemini-cli #30180)修复长时运行的 agent 会话因反复读取文件或处理截图等多模态工具输出导致的 V8 堆内存溢出崩溃(Reached heap limit Allocation failed)。要点:
- 多段输出累积截断:原先数组每个元素各自按 64KB 上限检查,拼接后仍可达数 MB;现在在 ToolExecutor 中对整个多元素输出执行累计 64KB 预算(MAXSTOREDTOOLOUTPUTBYTES)。
- 多模态 inlineData 字节核算:calculateHistoryByteSize 与 ToolOutputMaskingService 现在计入嵌套 functionResponse.parts 中 inlineData 的字节数(Gemini 3 多模态工具响应使用)。
- 旧输出逐出:对受保护轮次(3 轮)之外的旧函数响应剥离嵌套 parts 与 inlineData;原先遮蔽旧输出时保留了约 3000 token 的 inlineData,导致节省为负、压缩中止。对旧的豁免检索类工具输出(readfile、grep 等)也套用 64KB 预算。
- 触发压缩改为按字节阈值,并稳定了 turn ID。
对自建 agent 上下文管理有直接参考价值:工具输出的字节核算与多模态载荷逐出是长会话稳定性的关键细节。
「编程与Agent」频道最新
- 李开复推介 Longevity Grok:基于 Grok Bot 的个人长寿研究智能体团队 — kaifulee · 2026-11-06
- OpenCartridge 集成图片转 VRM 与动画,本地跑通游戏资产生成 — bdsqlsz · 2026-11-06
- OpenAI 员工用 Codex 把户型图变成可交互的室内气流模拟器 — OpenAIDevs · 2026-11-06
- 烧掉4746美元跑28849次试验,发布编码Agent框架排行榜 — HankYeomans · 2026-11-06
- vibe42ai 上线 Linux 客户端,用户建议补上安全扫描 — sujingshen · 2026-11-06
- SEO 专家拆解 Amp:28 个 AI 回答零入选,流量仅竞品 1/7 — iannuttall · 2026-11-06