Mixed LF/CRLF SSE delimiters prevent Claude Code 工具调用
Quick fix
修复 SSE 分隔符解析,使其同时识别混合的 LF/CRLF 空行分隔,以保留 Claude Code 工具调用事件。
Symptom
Section titled “Symptom”No `tool_use` block is produced.`take_sse_block` 只识别 `\n\n` 和 `\r\n\r\n`,未识别数据行以 LF 结束、空行以 CRLF 结束的 `\n\r\n`。因此完整 SSE 事件不会立即被拆出;后续事件到来时,多个事件还可能被合并为一个块。
在 OpenAI Chat Completions SSE 转换为 Anthropic SSE 的路径中,这会使包含工具名、ID、参数片段和 `finish_reason: "tool_calls"` 的完整工具调用无法生成 `tool_use` 块。
在 `take_sse_block` 的共享 SSE 分隔符列表中加入 `\n\r\n` 和 `\r\n\n`,并继续选择最早出现的完整分隔符。
为四种 LF/CRLF 分隔组合及传输分片添加 framing 测试,并添加 Chat Completions 到 Anthropic 的工具调用回归测试。
Affected Versions
Section titled “Affected Versions”ToolClaude Code
Version3.20.4(受影响)
PlatformsWindows
Source Issues
Section titled “Source Issues”本页汇总自 1 个真实 issue
(暂无 FAQ)
这是一个非官方社区 wiki,与 cc-switch 作者及项目本身无隶属关系。内容整理自项目公开的 GitHub issues。本站不分发任何软件。