跳转到内容

The user sent an empty message(Claude Code 接入 Kimi 反复空消息)

Quick fix

暂无官方修复:临时用 /export 导出会话后开新会话继续;并做对照测试——绕过 cc-switch 让 Claude Code 直连 Kimi 端点,定位空消息来自哪一层。

报错原文
The user sent an empty message.
Another empty message. The user might be having connection issues, or accidentally sending. I already said I'd continue.

报告者推断:Claude Code 的 agent loop 中 Kimi K3 思维链突然从头重启,说明 API 层大概率收到了一条新请求,且其 content 为空、或被模型理解成了空用户消息。可能来源有三(目前无法判断在哪一层):1) Claude Code CLI 内部机制(auto continue / retry / auto-compact / 后台 subagent 请求等)在 loop 中发出了空内容请求;2) 转发链路某一层把空的 tool 结果或控制信号包装成了空 user message;3) Kimi 侧对某种请求结构的解析/容错问题。Kimi API 开发者社区的官方机器人推测是中间件做 Anthropic→OpenAI 协议转换时产生了空消息,但报告者的 cc-switch 配置的 API 格式是 Anthropic Messages(原生),理论上不存在这种转换,该推测与其配置不完全相符。该 issue(#6245)仍为 open,维护者尚未给出定位结论,另一位用户回复 "same error" 表示同样遇到。

需要说明的是,本集群中另两个 issue 属于同一接入面(第三方供应商经 ANTHROPIC_AUTH_TOKEN 接入 Claude Code)但成因不同:#204 是用户用 OpenRouter 时报 "API Error: Cannot read properties of undefined (reading 'map')",issue 中未给出确认的修复,仅维护者表示 OpenRouter 支持在全力开发中;#1653 是配置字段使用咨询,维护者解释了自定义端点、API 格式、认证字段(ANTHROPIC_AUTH_TOKEN 或 ANTHROPIC_API_KEY)、模型映射四个个性化字段的作用,并指出 Kimi、MiniMax 等 OpenAI 兼容供应商通常应选 OpenAI chat completions 格式并开启本地代理。这两个问题与空消息现象不应混为一谈。

  1. 临时绕过(报告者确认有效但会复现):出现空消息循环时停掉当前 loop,用 /export 导出聊天记录,另开新会话并放入导出的历史继续任务。

  2. 对照隔离测试(Kimi 社区建议,报告者尚未执行):绕过 cc-switch,让 Claude Code 直连 Kimi 官方 Anthropic 兼容端点,观察空消息是否仍出现,以判断问题在 Claude Code CLI、转发层还是 Kimi 侧。

  3. 核对 cc-switch 供应商配置:API 格式确认为 Anthropic Messages(原生),认证字段为 ANTHROPIC_AUTH_TOKEN;若你接的是 Kimi / MiniMax 等 OpenAI 兼容供应商且使用代理模式,维护者在 #1653 中建议选 OpenAI chat completions 格式并开启本地代理。

  4. 抓取实际转发的请求体以确认是否有空 content 消息经过 cc-switch:报告者询问 verbose / debug 日志的开启方式,但截至 issue 当前状态(open)尚无官方答复,可关注 issue #6245 的后续更新。

ToolClaude Code
VersionCC Switch v3.19.1 / Claude Code CLI 2.1.223(为报告者环境版本,非确认的受影响范围)
PlatformsWindows
cc-switch 有没有 verbose / debug 日志,能看到实际转发给下游的请求体?怎么开?
这是 #6245 报告者最关心的问题,但截至该 issue 当前状态(open)尚无官方答复,暂无法确认开启方式,建议在该 issue 下跟进。
cc-switch 的转发逻辑会不会在 retry、流中断、subagent、compact 等情况下生成或改写消息?
报告者提出了这一疑问,issue 中尚无维护者确认或否认的回复;建议通过绕过 cc-switch 直连 Kimi 端点的对照测试来排查。
供应商配置里的自定义端点、API 格式、认证字段、模型映射分别有什么作用?底层用 Kimi 或 MiniMax 是否也能生效?
维护者在 #1653 中解答:自定义端点用于覆盖请求地址;API 格式选 Anthropic 原生或 OpenAI 兼容格式(第三方 API 通常选 OpenAI chat completions 并开启代理);认证字段对应请求 header 中的 ANTHROPIC_AUTH_TOKEN 或 ANTHROPIC_API_KEY;模型映射把 Claude 默认模型名映射到第三方模型名。Kimi、MiniMax 等 OpenAI 兼容供应商同样生效。
接入 OpenRouter 报 "API Error: Cannot read properties of undefined (reading 'map')" 怎么办?
#204 中用户贴出了以 Anthropic 原生格式直连 https://openrouter.ai 的配置,但 issue 未给出确认的修复,维护者仅表示 OpenRouter 支持在开发中;可参考 #1653 的建议,第三方 OpenAI 兼容供应商通常应选 OpenAI chat completions 格式并开启本地代理。

这是一个非官方社区 wiki,与 cc-switch 作者及项目本身无隶属关系。内容整理自项目公开的 GitHub issues。本站不分发任何软件。