告别离线 Agent:deepseek-kit 内置 Web Search:零配置联网搜索

时间:2026-07-06 08:26:42 来源:互联网

deepseek-kit 针对 DeepSeek API 打造轻量 Agent 框架,核心处理思考模式下的 reasoning_content 管理、缓存优化与结构化输出等适配痛点。


背景

在 v0.1.4 版本中,我们新增了一个内置工具:webSearch

告别离线 Agent:deepseek-kit 内置 Web Search,零配置联网搜索

为什么需要内置 Web Search

Agent 的能力边界主要由信息获取范围决定。由于 DeepSeek 训练数据存在时效性限制,模型难以回应实时事件、最新文档或当前数据等查询。

以往实现联网搜索,需要自行对接 Google、Bing 或 Tavily 等搜索 API,并编写工具定义、处理返回结果及格式化输出,每个项目都需重复这些样板代码。

webSearch 将这些步骤封装为即开即用的内置工具,基于 DeepSeek 的 Anthropic 兼容端点,无需额外申请第三方搜索 API,直接使用现有 DeepSeek API Key 即可。

使用方式

最简便的操作,一行代码创建工具后直接传给 Agent 即可。

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: 'deepseek-kit是什么东西?',
})console.log(result.text)

配置选项

webSearch() 函数支持传入可选配置对象。

const searchTool = webSearch({
  thinking: 'enabled',  // 是否启用思考模式,默认 enabled
  maxTokens: 32768,     // 搜索响应的最大 token 数,默认 32768
})
  1. thinking:开启后模型在搜索前进行推理,优化关键词以提升结果质量。默认启用,与 deepseek-kit 思考模式适配逻辑相符。
  2. maxTokens:设定搜索响应的最大 token 数量。

工作原理

webSearch 的工作流程如下:

  1. 用户查询被发送至 DeepSeek Anthropic 兼容端点()。
  2. 采用 Anthropic 的 web_search_20250305 工具执行搜索操作。
  3. 模型依据搜索结果生成摘要式回答。
  4. 输出格式化后的搜索结果,内容包含摘要及来源链接。

返回结果由两部分组成:

  1. 搜索结果摘要:模型根据搜索结果综合生成的回答。
  2. 来源列表:包含搜索到的网页标题、链接及页面日期。

与其他工具组合

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: '2026年世界杯在哪里举办?另外帮我算一下 123 * 456。',
})

取消支持

搜索请求支持通过 AbortSignal 进行取消操作。

const controller = new AbortController()const result = await agent.generate({
  prompt: '搜索最新的 AI 新闻',
  signal: controller.signal,
})// 5 秒后取消搜索
setTimeout(() => controller.abort(), 5000)

小结

webSearch 延续 deepseek-kit 理念,充分利用现有能力完成适配封装,让 Agent 联网无需额外配置,一行代码即可实现。