v2.5.5 - 修复长响应误判为拒绝
🐛 修复长响应误判为拒绝
问题现象:工具模式下,模型输出长文本(如 8654 字符的深度分析报告),正文中碰巧包含拒绝检测关键词(无法提供...信息、工具调用场景、即报错 等),导致整个响应被替换为无意义的引导文本,进而 Claude Code 陷入死循环。
修复策略:
响应类型 | 检测方式 | 理由
-- | -- | --
截断响应 (max_tokens) | ❌ 跳过拒绝检测 | 8654 字符的截断输出不可能是拒绝
长响应 (≥ 500 字符) | 仅检查前 300 字符 | 拒绝一定在开头,正文关键词不触发
短响应 (< 500 字符) | 全文检测 | 真正的拒绝回复通常很短
- 流式和非流式处理均已修复
🔇 减少 tolerantParse 日志噪音
- 模型输出中的普通 JSON 代码块(如含正则
[\s\S]*?的代码示例)不再打印error级别日志 - 仅当内容包含
"tool"/"name"键(疑似工具调用)时才报 error,其余降为warn级别