v2.7.7 截断恢复增强与降级日志诊断
标题
v2.7.7 截断恢复增强与降级日志诊断
内容
更新亮点
本次版本重点解决了长内容工具调用容易被截断、日志看起来成功但实际体验不佳的问题,并同步优化了示例配置与文档说明。
核心改进
1. 长 Write/Edit 截断恢复增强
- 新增语义级截断检测
- 即使
json action代码块已经闭合,只要长Write/Edit参数内容明显写到一半,仍会判定需要继续续写 - 减少“文件写残后再补写多轮”的问题
2. OpenAI 流式长工具调用恢复修复
- 修复 OpenAI 兼容流式路径下,长
Write工具调用被截断后无法正确恢复的回归问题 - 现在会至少进行 1 次内部恢复尝试
- 可恢复完整多帧
tool_calls,避免工具调用退化成普通文本
3. 新增 degraded 降级状态
- 对“看似成功、实际体验较差”的请求新增
degraded状态 - 可识别的典型场景包括:
- 工具看起来可用,但实际没有真正调用
- 响应触发
max_tokens,且没有自动续写 - 模型自述“写到一半”“内容被截断”“正在补写”
4. 日志与可观测性增强
- 日志 summary 现在会正确记录 Anthropic 路径下的
toolCallsDetected - Vue 日志页与旧版
/logs页面均支持:degraded状态统计- 状态筛选
- 降级原因展示
5. 示例配置与文档同步更新
README.md更新到v2.7.7config.yaml.example同步推荐配置:max_history_tokens: 120000compression.enabled: truecompression.level: 2tools.schema_mode: compacttools.description_max_length: 100tools.passthrough: falsetools.disabled: false
docker-compose.yml注释示例同步更新- README 额外注明:
- Cursor IDE 通常需要 Cursor Pro
OPENAI_BASE_URL需使用公网可访问域名,建议 HTTPS 反向代理
测试与验证
已完成以下验证:
npm run buildnode test/unit-handler-truncation.mjsnode test/unit-openai-stream-truncation.mjs
适合升级的人群
如果你正遇到以下问题,建议升级到 v2.7.7:
- 长文档写入时经常写到一半被截断
- OpenAI 兼容客户端下长工具调用容易损坏
- 日志里显示 success,但实际执行效果不好
- 想更快定位“工具没真调用”或“模型在补写自救”的请求