加载中

The web search tool

第 31 课7 分钟

重要提示: 您的组织必须在设置控制台中启用网络搜索工具才能使用它。您可以在此处找到此设置:https://platform.claude.com/settings/privacy

Claude 包含一个内置的网络搜索工具,让它能够搜索互联网以获取当前或专业信息来回答用户问题。与其他需要您提供实现的工具不同,Claude 会自动处理整个搜索过程——您只需提供一个简单的模式(schema)来启用它。

设置网络搜索工具

要使用网络搜索工具,您需要创建一个包含以下必填字段的模式对象:

python
web_search_schema = {
    "type": "web_search_20250305",
    "name": "web_search", 
    "max_uses": 5
}

max_uses 字段限制了 Claude 可以执行的搜索次数。Claude 可能会根据初始结果进行后续搜索,因此这可以防止过多的 API 调用。单次搜索会返回多个结果,但 Claude 可能会决定需要进行额外的搜索。

响应的工作原理

当 Claude 使用网络搜索工具时,响应包含多种类型的块:

  • 文本块 - Claude 对其正在执行操作的说明
  • ServerToolUseBlock - 显示 Claude 使用的确切搜索查询
  • WebSearchToolResultBlock - 包含搜索结果
  • WebSearchResultBlock - 带有标题和 URL 的单个搜索结果
  • 引用块 - 支持 Claude 陈述的文本

响应结构让您能够准确看到 Claude 搜索了什么以及找到了哪些来源。引用包括 Claude 用来支持其答案的具体文本,以及来源 URL。

限制搜索域名

您可以使用 allowed_domains 字段将搜索限制在特定域名内。当您想要可靠、权威的来源时,这尤其有用:

python
web_search_schema = {
    "type": "web_search_20250305",
    "name": "web_search",
    "max_uses": 5,
    "allowed_domains": ["nih.gov"]
}

例如,在询问医疗或运动建议时,限制到像 PubMed(nih.gov)这样的域名可以确保您获得基于证据的信息,而不是随意的博客内容。

渲染搜索结果

响应中的不同块类型专为特定的 UI 渲染而设计:

  • 将文本块渲染为常规内容
  • 将网络搜索结果显示为顶部的来源列表
  • 在文本中内联显示引用,包括来源域名、页面标题、URL 和引用文本

这种结构帮助用户理解 Claude 如何得出其答案,并提供了关于所使用来源的透明度。引用格式清楚地表明了哪些具体信息来自哪些来源,从而建立了对 AI 响应的信任。

实际使用

网络搜索工具最适用于:

  • 时事和最新发展
  • Claude 训练数据中没有的专业信息
  • 事实核查和查找权威来源
  • 需要最新信息的研究任务

只需在进行 API 调用时将模式包含在您的 tools 数组中,Claude 就会自动决定何时进行网络搜索有助于回答用户的问题。