网络搜索

使用内置的 webSearch 工具让模型搜索网络获取实时信息。

webSearch 是 deepseek-kit 内置的网络搜索工具,基于 DeepSeek Anthropic 兼容端点实现。它让模型能够搜索网络获取实时信息——最新事件、当前数据、文档查询或事实核查,突破训练数据的局限。

基本用法

直接调用 webSearch() 创建工具,然后将其传递给智能体:

import { createAgent, createModel, webSearch } from 'deepseek-kit'

const model = createModel({ model: 'deepseek-v4-flash' })

const agent = createAgent({
  model,
  tools: [webSearch()],
})

const result = await agent.generate({
  prompt: '2024年诺贝尔物理学奖颁给了谁?',
})

console.log(result.text)

你也可以在 generateText 中使用:

import { createModel, generateText, webSearch } from 'deepseek-kit'

const model = createModel({ model: 'deepseek-v4-flash' })

const result = await generateText({
  model,
  tools: [webSearch()],
  messages: [{ role: 'user', content: '最新的 React 19 有什么新特性?' }],
})

配置选项

webSearch() 接受一个可选的配置对象:

const searchTool = webSearch({
  thinking: 'enabled',
  maxTokens: 32768,
})
  • thinking'enabled' | 'disabled',默认 'enabled')— 是否启用思考模式。启用后,模型会在搜索前进行推理,提高搜索结果的质量。
  • maxTokensnumber,默认 32768)— 搜索响应的最大 token 数。

工作原理

webSearch 的工作流程如下:

  1. 将用户查询发送到 DeepSeek Anthropic 兼容端点(https://api.deepseek.com/anthropic
  2. 使用 Anthropic 的 web_search_20250305 工具执行搜索
  3. 模型基于搜索结果生成摘要回答
  4. 返回格式化的搜索结果,包含摘要和来源链接

返回的结果包含:

  • 搜索结果摘要 — 模型基于搜索结果生成的综合回答
  • 来源列表 — 搜索到的网页标题、链接和页面日期

与其他工具组合

webSearch 可以与其他工具一起使用,模型会根据上下文自主选择调用哪个工具:

import { createAgent, createModel, tool, webSearch } from 'deepseek-kit'
import { z } from 'zod'

const calculatorTool = tool({
  name: 'calculator',
  description: '执行数学计算',
  schema: z.object({ expression: z.string().describe('数学表达式') }),
  execute: async (input) => evaluate(input.expression),
})

const agent = createAgent({
  model,
  tools: [webSearch(), calculatorTool],
})

const result = await agent.generate({
  prompt: '2024年世界杯冠军是谁?另外帮我算一下 123 * 456。',
})

取消支持

webSearch 支持通过 AbortSignal 取消正在进行的搜索请求:

const controller = new AbortController()

const result = await agent.generate({
  prompt: '搜索最新的 AI 新闻',
  signal: controller.signal,
})

// 5 秒后取消搜索
setTimeout(() => controller.abort(), 5000)

API 参考

WebSearchOptions

thinking'enabled' | 'disabled'
'enabled'
是否启用思考模式。启用后模型会在搜索前进行推理,提高搜索结果质量。
maxTokensnumber
32768
搜索响应的最大 token 数。