Gemini CLI 修复:保留含工具请求的空文本对话轮次
DavidAPierce · ghdev · 2026-08-19
该 PR 优化了聊天历史验证逻辑 isValidContent,确保包含空文本部分(text: '')但在其中携带关键结构化载荷(如工具请求、工具响应或多模态媒体)的模型轮次会被保留在历史记录中。
背景与问题:
- 此前,任何包含 text !== undefined && text === '' 的模型轮次都会被视为无效并被完全剔除。虽然这过滤了安全拦截等产生的空轮次,但也破坏了工具执行和多轮 Agent 交互。
- 当模型发出工具调用(functionCall)或接收工具结果(functionResponse)时,特定部分的文本字段通常为空。剔除这些轮次会破坏对话图和多轮上下文流。
修复方案:
- 更新 isValidContent 逻辑:仅当文本部分为空 且 缺乏 functionCall、functionResponse、inlineData、fileData 等有效属性时,才将其视为无效。
- 添加单元测试,断言包含工具元数据或媒体的空文本部分被保留,而纯空文本轮次被安全修剪。
「编程与Agent」频道最新
- 设计反馈工具 Inflight 发布:让 Claude 直接消化原型反馈 — soleio · 2026-10-16
- Apple 代码签名耗时数小时,官方建议:等一周 — pjausovec · 2026-10-16
- 4B 模型加 8K 上下文堆算力反而更差,Hermes 提出上下文推理新思路 — mangahomanga · 2026-10-16
- Flux 3 Klein 默认模板有坑:必须接 prompt upscaler 才能出好图 — StrictMove5839 · 2026-10-16
- 21 人团队 AI 写 97% 代码,每周数百 PR,16% 自动合并 — rseroter · 2026-10-16
- ClosedMCP:一次配置 MCP,跨平台团队共享的 Serverless 方案 — Ok_Sprinkles1301 · 2026-10-16