ending with a leaked `</t` close-tag fragment - Codex
Quick fix
此问题由 cc-switch 流式转换器未去重及未过滤 think 标签引起,请更新 cc-switch 至包含 PR #6319 修复的版本。
Symptom
Section titled “Symptom”The visible Codex output shows the sentence repeated N times, ending with a leaked `</t` close-tag fragment.当使用 GLM-5.2 等仅支持 Chat Completions 的提供商时,若上游在同一个 SSE delta 中同时发送 `reasoning_content` 和 `content` 且文本重叠,`streaming_codex_chat.rs` 会将其作为独立分支处理而无去重逻辑,导致推理文本在 Codex 输出中重复。此外,状态机进入 `Text` 模式后,`split_leading_think_block` 仅匹配首个 think 块,导致后续标签片段(如 `</t`)直接泄漏至 `output_text.delta`。
另外,若在使用 `glm-4.1v-thinking-flashx` 模型时遇到上下文过小的报错,是因为该 VLM 模型上下文窗口不足,无法承载 Claude Code 发送的大上下文请求。
更新 `cc-switch` 至包含 PR #6319 修复的最新版本。该更新在 `handle_chat_chunk` 中添加了去重逻辑,并在 `push_content_delta` 中引入了 `strip_all_think_tags` 和 `strip_trailing_close_tag_fragment` 辅助函数以过滤泄漏的标签。
若使用 `glm-4.1v-thinking-flashx` 模型报错,请尝试将请求参数 `maxtokens` 设置为 16000 以下,或直接更换为上下文更大的模型(如 GLM-5.2)。
Affected Versions
Section titled “Affected Versions”Source Issues
Section titled “Source Issues”本页汇总自 3 个真实 issue
- 为什么 GLM-5.2 的输出会重复?
- 因为提供商在同一个 SSE delta 中镜像了 `reasoning_content` 和 `content`,而旧版 cc-switch 没有进行去重处理。
- 这个修复会影响其他模型吗?
- 不会,修复仅针对 Chat Completions 提供商的流式转换逻辑,且所有 19 个现有测试均已通过。
- 使用 `glm-4.1v-thinking-flashx` 报错上下文太小怎么办?
- 该模型是视觉语言模型 (VLM),上下文窗口较小,不适合直接用于编程。请尝试调低 `maxtokens` 参数或更换模型。
这是一个非官方社区 wiki,与 cc-switch 作者及项目本身无隶属关系。内容整理自项目公开的 GitHub issues。本站不分发任何软件。