告别离线 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 ⭐ 就是最大的支持!

相关推荐
zttbee3 小时前
echarts图表tooltip色块失效
前端·javascript·echarts
虚无境5 小时前
如何用AI帮我写出实用的插件
前端·javascript·ai编程
FITA阿泽要努力6 小时前
用 Hooks 给 Claude Code 加规矩
人工智能·agent
zimoyin6 小时前
在 C# 里嵌入 JavaScript:用 Jint 做可热更新的自动化脚本(从入门到踩坑)
javascript·c#·自动化
FRing037 小时前
JavaScript入门到精通二十六(变量提升、函数剩余参数、展开运算符、ES6箭头函数)
开发语言·前端·javascript·es6·箭头函数
OpsEye8 小时前
怎么实现大模型的按用户、按应用配额限流?
javascript·ai编程
威哥爱编程8 小时前
HarmonyOS 7 Agent 开发实战 08:结构化输出解析
agent·harmonyos
威哥爱编程8 小时前
HarmonyOS 7 Agent 开发实战 09:Agent 测试评测集
agent·harmonyos
阿里云云原生8 小时前
Personal Agent 观察:拆解全天候运行的技术挑战
云原生·agent
樊小肆9 小时前
睡前丢给它三张工单,早上收代码和账单:我开源了一个 DeepSeek 驱动的 AI 编码助手
开源·ai编程·deepseek