[Bug]: Unable to use Azure models through LiteLLM in Claude Cowork

通常在通过 LiteLLM Proxy 接入 Claude Cowork、但将该 Key 指向 Azure GPT 等非 Anthropic 模型时触发。Cowork 按 Anthropic 格式发送的 output_config 字段被原样带到 Azure 请求,Azure 因不认识该参数返回 B

快速结论:通常在通过 LiteLLM Proxy 接入 Claude Cowork、但将该 Key 指向 Azure GPT 等非 Anthropic 模型时触发。Cowork 按 Anthropic 格式发送的 output_config 字段被原样带到 Azure 请求,Azure 因不认识该参数返回 BadRequest。应优先排查 LiteLLM 版本以及 /v1/messages 的翻译路径。

适用环境:Issue 中确认的信息:LiteLLM v1.78.5,部署方式为 Proxy,运行环境为 Python 3.13(来自 traceback 路径),配置位于 config.yaml 的 litellm_settings 中并已设置 drop_params: true。客户端为 Claude Cowork,上游为 Azure GPT 模型。操作系统、CUDA、显卡等未提及。

最快修复方案:该问题已在 PR #26439 中修复(Issue 已关闭)。可优先尝试将 LiteLLM 升级到包含该 PR 的版本,使 /v1/messages 在处理 Azure GPT 模型时把受支持的 output_config 设置翻译为模型参数,不再把原始 Anthropic 字段发给 Azure;该修复据维护者说明同时覆盖流式与非流式请求。

注意事项:Issue 中未给出包含该 PR 的具体版本号,升级前请自行确认所用版本已合入 #26439。原报告者配置的 drop_params: true 并未解决此问题,说明该报错不单纯是参数丢弃策略能覆盖的。修复仅针对 output_config 报错,其他 Anthropic 专有字段是否同样被正确翻译,Issue 中未验证。

问题场景

用户参照 LiteLLM 官方教程搭建 Claude Desktop / Cowork 与 LiteLLM Proxy 的集成,用 Anthropic 模型时可以正常使用。当 LiteLLM Key 只绑定 Azure 上的 GPT 模型时,Cowork 发起请求后卡住,LiteLLM 使用日志记录失败。请求路径为 /v1/messages,进入 Anthropic 端点后经 Router 和 experimental pass-through 的 messages handler,最终在 litellm.acompletion 调用非 Anthropic 模型时抛出错误。

报错原文

ValueError
Error calling litellm.acompletion for non-Anthropic model: litellm.BadRequestError: AzureException BadRequestError - Unknown parameter: 'output_config'.

Traceback (most recent call last):
  File "/usr/lib/python3.13/site-packages/litellm/proxy/anthropic_endpoints/endpoints.py", line 153, in anthropic_response
    responses = await llm_responses
  ...
  File "/usr/lib/python3.13/site-packages/litellm/llms/anthropic/experimental_pass_through/messages/handler.py", line 90, in anthropic_messages
    response = await init_response
  File "/usr/lib/python3.13/site-packages/litellm/llms/anthropic/experimental_pass_through/adapters/handler.py", line 178, in async_anthropic_messages_handler
    raise ValueError(
        f"Error calling litellm.acompletion for non-Anthropic model: {str(e)}"
    )

原因分析

可能原因是请求链路中的参数转换不完整。Claude Cowork 以 Anthropic 消息格式调用 LiteLLM 的 /v1/messages,而该 Key 指向 Azure GPT 模型,LiteLLM 需要把 Anthropic 请求翻译成 Azure 可接受的形式。但在 v1.78.5 中,output_config 未被翻译或剔除,被原样转发给 Azure,Azure 将其视为未知参数并返回 BadRequest,Cowork 端表现为卡住。维护者在关闭 Issue 时确认,修复方式是让 LiteLLM 把受支持的 output_config 设置翻译为模型参数,并避免把原始 Anthropic 字段发给 Azure。

环境排查

  • 确认 LiteLLM 版本,是否为 v1.78.5,以及是否已包含 PR #26439 的修复。
  • 确认 LiteLLM Key 绑定的模型是否属于非 Anthropic 模型(本例为 Azure GPT)。
  • 确认请求是否走 /v1/messages 端点,流式和非流式都应覆盖。
  • 检查 config.yaml 中该模型是否仍会被传入 output_config 等 Anthropic 专有字段。
  • 客户端认证方式(SSO 或 API Key)以及模型是否能在 CLI 的 /model 中列出、Claude 推理配置是否启用模型发现,Issue 中有维护者提问但报告者未明确回复,可作为辅助排查项。
  • Issue 未提供操作系统、CUDA、PyTorch、显卡信息,暂无需排查。

解决步骤

  1. 记录当前 LiteLLM 版本和完整的错误 traceback,确认错误发生在 anthropic_messages 的 handler 中。
  2. 检查所用 LiteLLM 版本是否已合入 PR #26439;由于 Issue 未给出具体版本号,升级前需自行确认版本包含该修复。
  3. 将 LiteLLM Proxy 升级到包含该修复的版本并重启服务。
  4. 保持 Key 指向 Azure GPT 模型,重新在 Claude Cowork 中发起请求,分别测试流式和非流式两种调用。
  5. 如需临时绕过,维护者在评论中建议可优先尝试把模型名称改成以 “claude” 开头(当时 Anthropic 客户端曾限制选择非 Anthropic 命名的模型)。这只是临时手段,且不确定当前是否仍然有效,不作为正式修复。

验证方法

在 Cowork 中对该 Key 发起一次正常对话请求,确认不再卡住;同时查看 LiteLLM 使用日志,确认不再出现 Unknown parameter: 'output_config',并且 /v1/messages 请求对 Azure 模型正常返回。流式和非流式请求都建议各验证一次。

参考来源

BerriAI/litellm #26214

BerriAI/litellm PR #26439

GamsGo AI

AI 工具推荐

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

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

了解 GamsGo AI

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

这个方案解决了吗?

celebrityanime
celebrityanime
文章: 30198

发表回复

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