400 无效请求
报 400 错误(Tool Calling ID 不匹配)怎么办
错误示例
status_code=400, Invalid request
常见原因
1. 基础参数错误
- 不支持的模型名称
- JSON 格式损坏
- 缺少必填参数
2. Tool Calling ID 不匹配(最常见)
Tool Calling 至少需要两次请求才能跑完一轮:
- 请求 1:模型生成
tool_use_id - 请求 2:客户端带着
tool_use_id回传tool_result
这是一个强关联的有状态过程。
触发场景:如果你在客户端或代理层配置了多个渠道,请求 1 被打到 A 渠道(返回 toolu_bdrk_xxx 格式的 ID),请求 2 触发了负载均衡轮询被打到 B 渠道(只识别 tool_1 或 req_xxx 格式),B 渠道不认识 A 渠道的 ID,直接报 400。
解决办法
- 代理层:将 Tool Calling 的模型设定为「固定单一渠道」,不要轮询或多渠道分发
- 代码排查:确认 Tool Calling 流程中没有触发 Base URL 切换逻辑
- 清理缓存:新建空白对话测试。如果之前用过其他服务商,客户端可能缓存了旧的
tool_use_id