主题
Web Search 联网搜索
让模型实时查互联网回答时效性问题。Claude 有原生(服务端)实现。
待验证(TODO/VERIFY):服务端自动搜索
以下内容基于旧平台实测(2026-06),尚未在 Shuro 复测,仅供参考。目前已验证的仅是:Shuro 模型目录中在售模型均带 Tools 标签。
官方 Anthropic 的 web search 是服务端工具——模型自己搜完、自己读结果、直接给答案。但旧平台中转实测:
- Claude 传
web_search_20250305工具:返回 200,但响应是普通的tool_use块(stop_reason: "tool_use"),没有server_tool_use/ 搜索结果——也就是模型把搜索任务交回给你执行
旧平台结论:经中转无法获得"模型自动联网"的效果(Shuro 行为待复测)。 需要稳定联网请:
- 自己实现 search 工具(后端接 Brave / SerpAPI 等),按标准 function calling 流程把结果回传给模型
- 或使用带本地搜索能力的客户端(如 Claude Code 的 WebSearch 工具是客户端实现,不受影响)
本页其余内容描述官方协议格式,供参考。
何时用
- 问"今天有什么科技新闻"等实时信息
- 查最新版本号、文档、价格
- 时效性敏感的事实核查
Claude 原生 Web Search
POST https://shuro.vip/v1/messages请求示例
json
{
"model": "claude-sonnet-4-6",
"max_tokens": 1024,
"tools": [
{
"type": "web_search_20250305",
"name": "web_search"
}
],
"messages": [
{
"role": "user",
"content": "今天有什么科技新闻?"
}
]
}注意 tools[].type 是 web_search_20250305 这种带日期的版本号(不是 function)。
Headers
Content-Type: application/json
anthropic-version: 2023-06-01
x-api-key: <您的 API Key>响应
Claude 会自动:
- 决定是否需要搜索(不是每个问题都搜)
- 搜索若干次,每次都在 response 里返回
server_tool_use块 - 综合搜索结果给出回答
响应体里会出现:
json
{
"content": [
{
"type": "server_tool_use",
"name": "web_search",
"input": {"query": "today tech news 2026"}
},
{
"type": "text",
"text": "今天主要科技新闻包括:..."
}
],
"stop_reason": "end_turn"
}支持 Web Search 的 Claude 模型
官方协议支持该工具的在售模型(注意:旧平台实测均不执行服务端搜索,Shuro 待验证,见页首说明):
| 模型 | 工具被接受 | 服务端搜索实际执行(旧平台实测,待验证) |
|---|---|---|
claude-sonnet-4-6 | ✅(200) | ❌ 返回 tool_use 交回客户端 |
claude-opus-4-8 / claude-opus-4-7 | ✅ | ❌ 同上 |
claude-haiku-4-5-20251001 | ✅ | ❌ 同上 |
OpenAI/GPT 怎么联网
GPT 系列没有原生 web search(要走 ChatGPT 网页版的能力)。变通方案:
方案 1:自己写 search tool
json
{
"model": "gpt-5.5",
"tools": [{
"type": "function",
"function": {
"name": "search_web",
"description": "Search the web",
"parameters": {
"type": "object",
"properties": {
"query": {"type": "string"}
},
"required": ["query"]
}
}
}],
"messages": [{"role": "user", "content": "..."}]
}后端用 Brave Search / SerpAPI / Google Custom Search 实际查。
方案 2:换 Claude
让 Claude 处理时效性问题,官方协议有原生 web search(经 Shuro 中转是否服务端执行见页首待验证说明)。
Python 完整示例(Claude)
python
import anthropic
client = anthropic.Anthropic(
api_key="<您的 API Key>",
base_url="https://shuro.vip"
)
resp = client.messages.create(
model="claude-opus-4-7",
max_tokens=2048,
tools=[{
"type": "web_search_20250305",
"name": "web_search"
}],
messages=[
{"role": "user", "content": "搜一下 React 19 的最新特性"}
]
)
# 解析包含 server_tool_use 和 text 的内容块
for block in resp.content:
if block.type == "server_tool_use":
print(f"[搜索: {block.input['query']}]")
elif block.type == "text":
print(block.text)高级用法
限制搜索域
只让 Claude 在指定网站搜:
json
{
"tools": [{
"type": "web_search_20250305",
"name": "web_search",
"allowed_domains": ["github.com", "stackoverflow.com", "docs.python.org"]
}]
}限制搜索次数
json
{
"tools": [{
"type": "web_search_20250305",
"name": "web_search",
"max_uses": 3
}]
}防止模型搜太多次烧 token。
强制不搜索
json
"tool_choice": {"type": "none"}让模型只用训练数据回答(适合"理论问题"场景)。
实战场景
实时新闻摘要
"用 web_search 搜今天的科技新闻,挑 3 个最重要的,用 markdown 列出来"文档查询
"看 Next.js 15 官方文档,告诉我 App Router 和 Pages Router 的区别"Claude 会自动 search Next.js 文档站。
价格比较
"对比 OpenAI gpt-5.5 和 Anthropic Claude Opus 4.7 的最新价格"事实核查
"我朋友说 SpaceX 上周失败了一次发射,是真的吗?"成本
官方协议下 web search 服务端调用会额外收费(在模型 token 费用之外)。经 Shuro 是否收取、单价多少待验证(TODO/VERIFY),见 Shuro 价格表。不要让模型乱搜(用 max_uses 限制)。
常见问题
Claude 不调用 web_search
模型自己判断不需要搜索 → 用训练数据回答。如果你确定要搜:
prompt: "用 web_search 工具搜一下 ..., 不要靠记忆。"显式指示让它必搜。
搜索结果太老
Anthropic 的搜索索引有延迟(一般 1-7 天)。突发新闻可能搜不到。
中文搜索结果差
Claude 默认走 Google,国内网站索引少。可以:
prompt: "搜 site:zhihu.com OR site:juejin.cn 的关于 ... 的内容"加上 site 限定优先国内。
引用链接缺失
正常情况 Claude 会在最后列出 source URL。如果没列,显式要求:
prompt: "回答末尾附上你引用的 URL 列表"跟 SerpAPI / Brave Search 对比
| Claude 内置 | SerpAPI | Brave Search | |
|---|---|---|---|
| 调用方 | 模型自己 | 你自己 | 你自己 |
| 集成度 | ✅ 一句话 | 需自己写 tool | 需自己写 tool |
| 价格 | 待验证(TODO/VERIFY) | $50/月起 | $3/1k 查询 |
| 索引质量 | Google 级 | Brave(独立) | |
| 数据隐私 | 一般 | 一般 | 高(无追踪) |
内置 web search 是最简单的方案,特殊隐私需求才用第三方。
