Ventus 搜索:DSH 多引擎搜索与正文抓取插件

前言

在 DeepSeek Harness(DSH)的插件体系里,智能体需要把搜索和正文读取拆成可替换、可管理的底层能力。只接一个搜索接口,往往只能拿到单一来源;多来源并发、失败隔离、正文抽取和本机状态管理,都要由插件自行处理。

下面介绍 mmzm0808/dsh-ventus-search。这是一个面向 DSH 的搜索与正文抓取插件,把 Bing、360、Bilibili 三个搜索来源整合到同一入口,并提供正文抓取、设置卡、本机状态 API 与状态文件管理。

这是什么

Ventus 搜索由 mmzm0808 维护,仓库名为 dsh-ventus-search,许可证为 MIT。

它解决两件事:

  • 搜索:把 Bing、360、Bilibili 三引擎并发搜索的结果整理为可返回的结果集。
  • 抓取:对网页正文做抽取、黑名单过滤、镜像回退与体积控制。

插件同时附带 Ventus 系列设置卡,可在设置中控制总开关、每引擎开关,并查看健康状态或执行测试搜索。

核心能力

多引擎搜索与结果整理

搜索侧主要包含以下能力:

  • Bing、360、Bilibili 三引擎并发搜索。
  • 标题命中 ×3 + 摘要命中 ×2 − 排名权重评分。
  • URL 规范化去重。
  • 单域名限额。
  • Bing/360 跳转包装解码。
  • 查询级 LRU 缓存,TTL 为 300s。
  • 429/5xx/超时自动重试。

在失败处理上,插件会隔离单引擎失败,避免影响其他引擎;也支持备用查询重试。整体超时到点时,返回已有部分结果。全部引擎失败时,gracefulDegradation 可返回空结果而非抛错。

正文抓取

抓取侧围绕正文获取做了以下处理:

  • 广告/追踪域名黑名单。
  • 类 Readability 正文抽取。
  • 镜像域名回退。
  • 体积上限。

如果 Bilibili 搜索请求的 Cookie 为空,会使用内置默认 buvid3

设置卡与健康状态

插件提供 Ventus 系列设置卡,包含:

  • 总开关。
  • Bing、360、Bilibili 每引擎独立开关。
  • 每引擎健康状态:绿=正常、红=失败、灰=未测,并显示最近成功时间或失败原因。
  • 测试搜索按钮:执行真实搜索,并展示耗时、来源数与结果列表。

安装与启用

先执行安装命令:

dsh plugin --profile web add github:mmzm0808/dsh-ventus-search

这条命令会把 dsh-ventus-search 安装到 DSH 的 web profile 中。仓库已提交完整 lib/ 构建产物,安装时无需执行构建脚本。DSH 插件开发使用 pnpm;通过 GitHub 分发时,不要求发布 npm。

安装后重启 dsh。之后进入:

设置 → Ventus 插件 → Ventus 搜索

在这里开启总开关,并按需启用或禁用 Bing、360、Bilibili。

典型用法

下面介绍几个常见操作。

1、检查总开关

在设置卡中查看总开关状态。总开关关闭后,搜索与抓取能力不可用。

2、单独控制引擎

可以在设置卡中单独启用或禁用:

  • Bing
  • 360
  • Bilibili

引擎实际启用需要同时满足两个条件:

配置 engines.<id> 启用
状态文件 engines.<id>.enabled 启用

两者都满足时,对应引擎才会生效。

3、执行测试搜索

在测试搜索输入框中输入关键词。默认关键词为:

DeepSeek Harness 最新动态

点击测试搜索后,查看耗时、来源数与结果列表。

4、调用本机状态 API

状态 API 为 loopback-only,仅本机可访问,并返回 Cache-Control: no-store

查看当前状态:

GET /api/ventus-search/state

修改 enabledengines

PATCH /api/ventus-search/state

执行真实测试搜索:

POST /api/ventus-search/test

状态文件

状态文件路径为:

~/.dsh/plugins/ventus-search/state.json

写入时采用原子方式:先写临时文件,再执行 fsync,最后 rename。这样可减少进程异常时产生半截状态文件的风险。

适用场景与注意

Ventus 搜索适合以下场景:

  • 需要在 DSH 中整合 Bing、360、Bilibili 多个搜索来源。
  • 希望插件处理失败隔离、重试、整体超时与部分结果返回。
  • 需要同时使用搜索和正文抓取能力。
  • 希望通过设置卡和本机 API 管理插件状态。

使用前需要注意:插件以当前 DSH 进程权限运行,会访问外部搜索接口、抓取网页,并读写本地状态文件。安装前应检查源码、依赖与 MIT License。如果运行环境要求严格,应在可信网络和可控账户下使用。

结尾

Ventus 搜索把多引擎搜索、结果整理、正文抓取和本机状态管理放在同一个 DSH 插件里,适合需要在 DSH 中接入联网检索能力的插件开发场景。

GitHub:

https://github.com/mmzm0808/dsh-ventus-search

目录页线索:

https://www.skillhub.cn/plugins/mmzm0808/dsh-ventus-search
羽毛球分组比赛记分
小程序二维码

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

小夜