dsh-web-search-lite:DeepSeek Harness 免密钥多引擎联网搜索

前言

在 DeepSeek Harness(DSH)里让模型查当前网页信息,常见有两条路:用内置的 web_search(往往对接官方或第三方搜索 API,按次计费、要配密钥),或自己写插件去调搜索引擎。若你只是希望对话里能「搜一下再读正文」,又不想先申请一堆 API Key,leiming2333/dsh-web-search-lite 针对的是这个场景:开箱即用抓取多家公开结果页,聚合并去重;需要更稳的结果时再可选 Tavily、Serper 等 API。它和 npm 上的 dsh-web-search-pro(作者 anweat)不是同一个包,装包前看清名称。

这是什么

dsh-web-search-lite 是社区维护的 DSH 联网工具插件(维护者 leiming2333,MIT 许可,当前 npm 版本 1.3.2)。它向模型注册两个新工具 web_search_api 与 web_fetch_api,不接管、不修改 DSH 自带的 web_search;内置搜索仍在官方「插件 → 网页搜索」里配置。

默认同时查询 DuckDuckGo、Bing 网页、百度、360 搜索四家,合并去重后返回来源列表;并可把命中 URL 读成纯文本。免密钥引擎通过读取公开结果页拿数据,零额外 npm 运行时依赖(宿主侧仅用 Node 内置模块)。

目录页:https://www.skillhub.cn/plugins/leiming2333/dsh-web-search-lite
源码:https://github.com/leiming2333/dsh-web-search-lite

核心功能

模型可用的工具

工具 作用
web_search_api 一次搜索,返回排序后的来源(标题、URL、摘要、发布时间)。默认 provider 为全部引擎聚合;支持单次调用临时指定 provider、language、maxResults,不写进设置。
web_fetch_api 将 URL 转为纯文本(去掉标签、脚本、样式),用于打开搜索命中的页面;可在设置里关闭注册。

出错时工具会给出可操作的提示(反爬建议换引擎或配 API、解析失败说明页面结构变化、401/403/429/超时等),而不是只抛状态码。

搜索引擎与 all 合并逻辑

免密钥(默认 provider: all)

provider 引擎 说明
all 四家合计 并发查询,轮转交错合并,按 URL 去重后截断到 maxResults
duckduckgo DuckDuckGo 读 html.duckduckgo.com 结果页
bingweb Bing 网页 读 bing.com/search 结果页
baidu 百度 读 baidu.com/s,过滤推广位
so360 360 搜索 读 so.com/s;密集请求可能触发拦截页,聚合模式下不影响其他引擎
searxng 自建 SearXNG 须填服务地址;配置后也会加入 all

合并策略要点:各引擎并发、各自至少取 max(count, 6) 条;轮转而非简单首尾拼接,避免某一引擎霸占靠前位置;URL 去重时忽略常见跟踪参数;用 allSettled,单家失败不拖垮整次搜索,并在输出中标注「未返回」的引擎。

需要 API Key(可选)

支持 tavily、serper、brave、exa、bing(Azure Bing Web Search API)等;密钥与端点在设置页填写。

设置与存储

配置项保存在 <DSH_HOME>/web-search-pro/settings.json(默认 ~/.dsh/web-search-pro/settings.json)。目录名与 API 前缀使用组合行 id web-search-pro,与 npm 包名 dsh-web-search-lite 不同,改包名不会动已有配置。

在 DSH 客户端打开 设置 → 网络搜索,可改引擎、密钥、条数、超时等;保存后下一条消息生效,无需重启(仅改设置时)。页面提供 测试连接,用已保存配置跑一次真实查询。

主要字段(节选):

字段 默认 说明
provider all 搜索引擎
apiKey / endpoint 空 API 密钥与自定义地址(SearXNG 必填 endpoint)
maxResults 8 1–50
timeoutMs 20000 1000–120000
enableFetch true 是否启用 web_fetch_api
fetchMaxChars 20000 单页保留字符上限

安装与启用

安装前确认包名为 dsh-web-search-lite,不要误装 dsh-web-search-pro。本插件 peerDependencies 声明 @deepseek-ai/dsh-tools 为 ^0.2.0-rc.1,在 DSH 0.2.2-rc.1 等版本上可通过兼容性检查。

从 npm 安装(推荐)

任选其一:

  1. 插件 → 发现,找到「网络搜索 Lite」安装
  2. 在对话中说「装 dsh-web-search-lite」,由 plugin_manager 安装
  3. 若本机有 dsh CLI:
dsh plugin add dsh-web-search-lite

npm 包:https://www.npmjs.com/package/dsh-web-search-lite

从 GitHub 仓库安装(改代码或跟 main)

仓库根目录即插件包;可用 _dev/install.mjs 写入 desktop profile(会先备份 package.json)。也可在对话中让 DSH 对本地路径执行 install_bundle。

装完后的重启

  • 首次安装必须完全退出并重启 DeepSeek Harness(profile 组合列表在启动时读取)。
  • 若设置页已出现但 /api/web-search-pro/settings 返回 404,检查 ~/.dsh/web-search-pro/host-status.json;无此文件表示宿主未加载插件,需重启应用而非仅刷新页面。
  • 之后只改插件文件时,宿主侧可由文件监听重载;浏览器侧仍需刷新页面。

插件以当前 DSH 进程权限运行;安装前建议浏览源码与 MIT 许可证,确认可接受抓取型引擎对目标站点的访问方式。

典型用法

  1. 安装并重启后,在 设置 → 网络搜索 确认 provider(默认 all)与 maxResults,点 测试连接 看提供方、条数、耗时与前三条来源。
  2. 在对话中直接提问,例如:「搜索一下今天的科技新闻」——模型可调用 web_search_api,再按需用 web_fetch_api 读正文。
  3. 单次搜索若需临时指定引擎或语言,由模型在 web_search_api 参数里传入 provider、language、maxResults,不修改 settings.json。

抓取型引擎依赖公开结果页结构,改版或反爬可能导致单家失败;需要每天大量、稳定查询时,建议在设置中改用一家 API provider 并填写 apiKey。

适用场景与注意

适合

  • 个人或小团队想在 DSH 里快速具备联网检索与读页,又不想先配置搜索 API。
  • 希望多源结果交叉验证,且能接受偶发单引擎解析失败。
  • 已有官方 web_search 计费方案,想并行使用免费的 web_search_api / web_fetch_api,而不是替换内置工具。

注意

  • 免密钥模式是读取搜索引擎结果页,遵守各站服务条款与本地合规要求;360 等对高频请求敏感,宜控制调用频率。
  • 与内置 web_search 并存时,模型会看到两套工具,由提示词或任务说明引导选用哪一套。
  • 社区插件目录(如 SkillHub)与 DeepSeek / 幻方无官方从属关系;星标、版本以 GitHub / npm 为准。

结尾

dsh-web-search-lite 把四家免密钥抓取与可选商业 API 收成两个 DSH 工具,并配上可视化设置与测试连接,降低「先配密钥才能联网」的门槛;同时明确不改动内置 web_search,便于和官方搜索方案共存。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜