告别离线 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 联网。


GitHubgithub.com/FliPPeDroun...

文档deepseek-kit.vercel.app

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

相关推荐
o_insist1 小时前
04-从零手写 ReAct 循环:Agent 的心跳是怎么转起来的
人工智能·agent
米丘1 小时前
SSE (server-sent events)
javascript·网络协议
桜吹雪2 小时前
所有智能体架构(3):Planning(计划任务)
javascript·人工智能·langchain
nextdata2 小时前
AI最大的误解:LLM实际上并不会调用工具
agent
gCode Teacher 格码致知2 小时前
Javascript技术:CSS 中rem、vh 和 px各有其最佳适用场景-由Deepseek产生
开发语言·javascript·css
米小虾2 小时前
AI Agent 记忆系统:从对话记录到认知架构
人工智能·agent
米小虾2 小时前
AI Agent 上下文管理:从窗口到世界的桥梁
人工智能·agent
fastjson_2 小时前
Edge浏览器开启IE兼容模式
javascript·edge·html