Skip to content

v2.7.7 截断恢复增强与降级日志诊断

Choose a tag to compare

@7836246 7836246 released this 23 Mar 03:40
· 26 commits to main since this release

标题

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.7
  • config.yaml.example 同步推荐配置:
    • max_history_tokens: 120000
    • compression.enabled: true
    • compression.level: 2
    • tools.schema_mode: compact
    • tools.description_max_length: 100
    • tools.passthrough: false
    • tools.disabled: false
  • docker-compose.yml 注释示例同步更新
  • README 额外注明:
    • Cursor IDE 通常需要 Cursor Pro
    • OPENAI_BASE_URL 需使用公网可访问域名,建议 HTTPS 反向代理

测试与验证

已完成以下验证:

  • npm run build
  • node test/unit-handler-truncation.mjs
  • node test/unit-openai-stream-truncation.mjs

适合升级的人群

如果你正遇到以下问题,建议升级到 v2.7.7

  • 长文档写入时经常写到一半被截断
  • OpenAI 兼容客户端下长工具调用容易损坏
  • 日志里显示 success,但实际执行效果不好
  • 想更快定位“工具没真调用”或“模型在补写自救”的请求