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

GitHub 仓库 :github.com/FliPPeDroun...

官方文档 :deepseek-kit.vercel.app

如果这个项目对你有帮助,欢迎给个 Star ⭐ 支持一下!


背景

deepseek-kit 是一个专为 DeepSeek API 设计的轻量级 Agent 框架,核心解决的是通用框架(如 LangChain、AI SDK)在 DeepSeek 思考模式下的适配问题------reasoning_content 管理、缓存命中率优化、结构化输出兼容等。

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

Agent 的能力边界很大程度上取决于它能获取什么信息。DeepSeek 的训练数据有截止日期,对于实时事件、最新文档、当前数据这类需求,模型本身无法回答。

之前要实现联网搜索,你需要自己对接搜索 API(Google、Bing、Tavily 等),写工具定义、处理返回结果、格式化输出------这些样板代码每个项目都得写一遍。

webSearch 把这些步骤封装成了一个开箱即用的内置工具,基于 DeepSeek 的 Anthropic 兼容端点实现,不需要额外申请第三方搜索 API,用你现有的 DeepSeek API Key 就能直接使用。

使用方式

最简单的用法,一行代码创建工具,传给 Agent 即可:

ts 复制代码
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() 接受一个可选的配置对象:

ts 复制代码
const searchTool = webSearch({
  thinking: 'enabled',  // 是否启用思考模式,默认 enabled
  maxTokens: 32768,     // 搜索响应的最大 token 数,默认 32768
})
  • thinking:启用后模型会在搜索前先推理,优化搜索关键词,提高结果质量。默认开启,与 deepseek-kit 的思考模式适配逻辑一致。
  • maxTokens:控制搜索响应的最大 token 数。

工作原理

webSearch 的工作流程:

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

返回结果包含两部分:

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

与其他工具组合

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

ts 复制代码
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 取消:

ts 复制代码
const controller = new AbortController()

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

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

小结

webSearch 的设计思路和 deepseek-kit 整体一致:不造轮子,用 DeepSeek 已有的能力,做好适配和封装。不需要额外的搜索 API Key,不需要手写工具定义,一行代码就能让 Agent 联网。


GitHub :github.com/FliPPeDroun...

文档 :deepseek-kit.vercel.app

觉得有用的话,给个 Star ⭐ 就是最大的支持!

相关推荐
愛芳芳3 小时前
element-plus+vite+vue3+pinpa+mock+typeScript搭建经典的电商管理后台
前端·javascript·typescript
事圆则缓4 小时前
Flutter 状态管理框架对比(三):Riverpod 如何连起购物车与异步价格
开发语言·javascript·flutter
墨心@4 小时前
第 4 章《工具》学习总结
学习·自然语言处理·prompt·agent·harness
lyz2468594 小时前
vue3页面因参数未声明而报错的常犯错误
前端·javascript·vue.js
七夜zippoe4 小时前
WorkBuddy Agent + Blender 5.2 bpy 程序化建模实战:12 轮迭代建一座冬日微缩展示
agent·blender·建模·workbuddy·程序化实战
Hilaku5 小时前
我重写了整个项目,但没人感谢我!
前端·javascript·程序员
skywalk81635 小时前
Deepseek harness的4种模式 配置文件内容
linux·人工智能·ubuntu·deepseek·harness
智能RPA5 小时前
农业与矿业行业智能体自动化平台对比评测(计量与巡检场景)
运维·人工智能·python·自动化·agent·rpa
user4465117917915 小时前
AgentScope 2.0 框架技术解析
agent
福兮说5 小时前
JS 正则的六个坑:带 g 的 test() 一真一假、空匹配死循环、replace 里的 $
开发语言·前端·javascript·正则表达式