[Bug]: CJK characters from concurrent requests bleed into unrelated streams (cross-request contamination in streaming)

该问题发生在多个并发请求通过 LiteLLM 代理进行流式输出时,CJK(中文)字符碎片会意外注入到无关的响应流或工具调用参数中。优先排查是否开启了 merge_reasoning_content_in_choices ,但该标志并非根本原因,当前没有确认的修复方案。

快速结论:该问题发生在多个并发请求通过 LiteLLM 代理进行流式输出时,CJK(中文)字符碎片会意外注入到无关的响应流或工具调用参数中。优先排查是否开启了 merge_reasoning_content_in_choices,但该标志并非根本原因,当前没有确认的修复方案。

适用环境:LiteLLM v1.93.0、v1.94.0;任何使用流式传输的模型(尤其是包含中文内容的并发请求场景);可能也与模型层合并 reasoning_content 的配置有关(但非根因)。

最快修复方案:暂无确认的一步修复方案。维护者未能复现该问题,目前唯一被报告有效的缓解措施是避免同一 LiteLLM 网关实例上的并发对话(即串行使用),但这会降低吞吐量。

注意事项:该方案为临时规避,并非根因修复;回滚到较早版本(如 v1.93.0)未经明确验证,可能引入其他问题。关闭 merge_reasoning_content_in_choices 不能解决污染,但可作为排查步骤。

问题场景

用户通过 LiteLLM 代理调用支持流式推理的模型(如 Kimi-K3),当多个客户端(如 Cursor 中的多个对话)同时向同一代理发送请求并流式读取响应时,偶尔发现响应中出现不属于当前请求的 CJK 字符(如“壁纸”“起床”“信仰”),甚至工具调用参数被篡改(如 pod 名从 litellm-pg-利用1 变为 litellm-p信仰-1),导致 shell 命令执行失败。

报错原文

[Bug]: CJK characters from concurrent requests bleed into unrelated streams (cross-request contamination in streaming)

原因分析

可能原因是 LiteLLM 网关内部流式处理路径中,多个并发请求共享的缓冲区(或字符串处理逻辑)未进行充分隔离,导致一个请求流中的 CJK 字节片段错误地拼接到了另一个请求的流式输出中。维护者在单机测试中无法复现,但用户通过直接访问模型后端(绕过网关)得到了干净的流,证明污染由网关引入。

环境排查

  • 确认 LiteLLM 版本是否为 v1.93.0 或 v1.94.0
  • 检查模型配置中是否启用了 merge_reasoning_content_in_choices(该标志虽非根因,但会放大污染的可观测性)
  • 确认是否存在多个并发流式请求同时通过同一个代理实例
  • 确认污染只出现在代理路径,而非模型后端(可直接向模型端口发送测试请求验证)

解决步骤

  1. 临时规避:避免同一 LiteLLM 代理实例上的并发流式对话,即确保每次只处理一个流式请求,直到 LiteLLM 维护者发布修复版本。
  2. 排查配置影响:如果开启了 merge_reasoning_content_in_choices,可尝试通过完整 /model/update 将其设为 false,但这不能根治污染(仅可能减少可见症状)。
  3. 回滚尝试(谨慎):如果场景允许,可测试回滚到 v1.93.0 或更早版本(但用户报告 v1.93.0 也存在该问题,故未必能修复)。
  4. 记录触发模式:持续观察污染出现时的并发请求特征(如并发数、CJK 文本长度),并在官方 Issue 中补充证据以协助维护者复现。

验证方法

在类似并发压力下,观察流式响应中是否出现预期外的 CJK 字符或工具调用参数片段消失/变形。如果串行使用后污染不再出现,则说明规避有效。直接向模型后端发请求(绕过网关)确认后端输出是干净的,以排除模型自身问题。

参考来源

BerriAI/litellm #35023

GamsGo AI

AI 工具推荐

想把多个 AI 模型放在一个入口?

GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。

了解 GamsGo AI

推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。

这个方案解决了吗?

celebrityanime
celebrityanime
文章: 15938

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注