400 invalid_tool
现象
原因
你只传了:解决
补全原生web_search 子对象,至少包含:
返回 200,但时效信息不可信
常见表现
- 问“今天日期”却回答旧日期
- 问“最近新闻”却给出更早年份的信息
原因
模型未必会在所有问题上稳定自主搜索;只传enable: true 时,强时效问题可能仍然不够稳。
解决
对日期、天气、新闻、近期公告这类问题:- 显式传
search_query - 开启
search_result: true - 读取顶层
web_search结果,核对来源与时间
响应里没有顶层 web_search
先检查这几个点:
- 请求里是否传了
search_result: true - 本次回答是否真的触发了搜索
- 上游是否返回了搜索证据
search_query,仍然完全没有 web_search,建议记录:
request_id- 模型名
- 完整请求体(脱敏后)
- 返回的
choices[0].message.content
500 / 503 上游不可用
常见错误
upstream_server_errorMODEL_GROUP_ALL_UNAVAILABLE
处理建议
- 先用
GET /v1/models确认当前 Token 和模型可见性 - 重试一次最小普通文本请求,确认是否只有
web_search失败 - 记录
request_id,必要时关联平台日志排查
该用哪个入口
| 场景 | 推荐入口 |
|---|---|
| 普通文本、OpenAI SDK、GLM web_search | /v1/chat/completions |
| Anthropic SDK、Messages 协议客户端 | /v1/messages |
最佳实践
- 强时效任务显式传
search_query - 依赖来源证据时读取顶层
web_search - 只在确有需要时使用
/v1/messages - 保留
request_id便于平台排障
