Skip to content

[Question]: GLM-5 下多轮对话触发 Assistant message count mismatch after formatting 后会话停止响应 #1663

@gkld

Description

@gkld
Title: GLM-5 下多轮对话触发 `Assistant message count mismatch after formatting` 后会话停止响应

## 环境

- CoPaw: 0.0.7
- Backend LLM: GLM-5
- OS: macOS 26.3.1

## 问题描述

在使用 **GLM-5** 作为后端模型时,CoPaw 在多轮对话后会出现如下 warning,然后会话会直接结束(表现为:console对话框的发送图标置为灰色):

```text
WARNING .../copaw/agents/model_factory.py:168 | Assistant message count mismatch after formatting (13 before, 12 after). Skipping reasoning_content injection.

出现这条 warning 之后,当前会话会停止响应,无法继续正常返回后续内容。
模型更换为GLM-4.7后,即便后台频繁出现该warning,会话仍表现正常。

复现情况

该问题可在 全新 session 中复现,并非仅由旧 session 污染导致。

复现过程大致如下:

  1. 新建 session

  2. 前两轮正常对话

  3. 第三轮开始出现:

    • Load session state from ...default_xxx.json successfully
    • Assistant message count mismatch after formatting (...)
    • Skipping reasoning_content injection
  4. 随后该会话停止响应,无法继续正常完成本轮对话

关键日志

INFO ... Session file /Users/Frank/.copaw/sessions/default_1773639935443.json does not exist. Skip loading session state.
INFO ... Saved session state to /Users/Frank/.copaw/sessions/default_1773639935443.json successfully.
...
INFO ... Load session state from /Users/Frank/.copaw/sessions/default_1773639935443.json successfully.
WARNING .../copaw/agents/model_factory.py:168 | Assistant message count mismatch after formatting (13 before, 12 after). Skipping reasoning_content injection.

预期行为

  • assistant message 数量在 formatting 前后保持一致
  • reasoning_content 正常注入
  • 会话应继续正常响应,不应因该 warning 卡住

实际行为

  • formatting 后 assistant message 数量减少 1
  • reasoning_content 注入被跳过
  • warning 出现后,会话停止响应

初步判断

看起来不是旧 session 文件本身的问题,而是 当前会话中生成的某条 assistant 历史消息 在后续回放时,被 _sanitize_tool_messages() 或 formatting 阶段过滤/合并,导致 assistant message 计数不一致。

怀疑与 GLM-5 的 reasoning/thinking message 格式 兼容性有关;reasoning_content 注入被跳过后,后续会话状态可能进入异常,最终表现为当前会话不再响应。

想确认的问题

  • 这是否是 GLM-5 在 0.0.7 下的已知兼容问题?
  • Skipping reasoning_content injection 是否会直接导致当前会话无法继续响应?
  • 是否可以在 warning 处增加更详细的 debug 信息,输出是哪条 assistant message 在 formatting 后丢失/变形?

Metadata

Metadata

Assignees

No one assigned

    Labels

    questionFurther information is requested

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions