Skip to main content

400 invalid_tool

现象

{
  "error": {
    "code": "invalid_tool",
    "message": "web_search tool requires web_search object"
  }
}

原因

你只传了:
{ "type": "web_search" }

解决

补全原生 web_search 子对象,至少包含:
{
  "type": "web_search",
  "web_search": {
    "enable": true
  }
}
完整推荐写法见 联网搜索

返回 200,但时效信息不可信

常见表现

  • 问“今天日期”却回答旧日期
  • 问“最近新闻”却给出更早年份的信息

原因

模型未必会在所有问题上稳定自主搜索;只传 enable: true 时,强时效问题可能仍然不够稳。

解决

对日期、天气、新闻、近期公告这类问题:
  1. 显式传 search_query
  2. 开启 search_result: true
  3. 读取顶层 web_search 结果,核对来源与时间
先检查这几个点:
  1. 请求里是否传了 search_result: true
  2. 本次回答是否真的触发了搜索
  3. 上游是否返回了搜索证据
如果你显式传了 search_query,仍然完全没有 web_search,建议记录:
  • request_id
  • 模型名
  • 完整请求体(脱敏后)
  • 返回的 choices[0].message.content

500 / 503 上游不可用

常见错误

  • upstream_server_error
  • MODEL_GROUP_ALL_UNAVAILABLE

处理建议

  1. 先用 GET /v1/models 确认当前 Token 和模型可见性
  2. 重试一次最小普通文本请求,确认是否只有 web_search 失败
  3. 记录 request_id,必要时关联平台日志排查

该用哪个入口

场景推荐入口
普通文本、OpenAI SDK、GLM web_search/v1/chat/completions
Anthropic SDK、Messages 协议客户端/v1/messages

最佳实践

  1. 强时效任务显式传 search_query
  2. 依赖来源证据时读取顶层 web_search
  3. 只在确有需要时使用 /v1/messages
  4. 保留 request_id 便于平台排障