DeepSeek Harness 插件介绍:dsh-web-search

前言

DeepSeek Harness(DSH)采用插件化架构。原生的 web_search 工具在处理复杂查询或特定需求时,功能相对固定。dsh-web-search 插件旨在替换这一原生后端,引入一个可配置的多提供商回退链,以增强搜索的灵活性和可靠性。

插件定位

此插件由 ForeverYoungPp 维护,是一个为 DSH 提供多提供商网络搜索能力的插件。它将 DSH 原生的 web_search 工具重定向至一个由 8 个搜索服务组成的回退链中,支持按需配置和顺序尝试。

安装与启用

安装前请确保环境满足以下依赖要求:

  • Node.js 版本:^22.19 或 >=24
  • DeepSeek Harness 版本:0.2.0-rc.2

使用以下命令安装插件(该命令会激活 --profile web 配置文件):

dsh plugin --profile web add @ian_p/dsh-web-search

安装完成后,需要重启 DSH 进程以加载新插件。

核心功能

插件集成了 8 个搜索提供商,通过回退链机制工作,具备以下特性:

  • 多提供商支持:支持 Tavily、Brave、Exa、Firecrawl、Jina、Kagi、SearXNG 和 DuckDuckGo。
  • 原生工具替换:直接替换 DSH 原生的 web_search 工具,无需修改调用代码。
  • 失败大声机制:当回退链中的所有提供商均失败时,会报告明确的错误,而非静默降级。
  • 宿主原生 UI:提供本地化的设置页面,使用宿主的设计令牌,支持拖拽排序。
  • 可审计日志:日志会记录每一个被跳过或失败的提供商,以及最终成功的服务。

配置与使用

插件的配置和凭证管理通过 DSH 的凭证记录进行,不依赖环境变量。

配置提供商

在设置页面中,你可以为 API 密钥类提供商(如 Tavily、Brave、Exa、Firecrawl、Jina、Kagi)添加密钥,或为 SearXNG 配置实例端点。DuckDuckGo 无需密钥,作为最后的兜底选项。

调整回退顺序

通过设置页面的拖拽功能,可以自定义提供商的尝试顺序。配置会保存到 dsh-web-search/config 凭证记录中。

搜索行为

搜索流程是顺序进行的,而非并行竞速:
1. 检查当前提供商的可用性(本地检查,无网络调用)。
2. 发起搜索请求(默认超时 60 秒)。
3. 如果成功(返回非空结果),立即返回结果并停止尝试后续提供商。
4. 如果失败(HTTP 错误、无效 JSON 等),记录错误并尝试下一个提供商。

注意:插件不实现竞速、结果合并、重试或缓存机制。

注意事项

  • 权限与安全:插件作为 DSH 进程的一部分运行,请确保从可信来源安装并检查源码。
  • 许可证:本项目采用 MIT 许可证开源。
  • 特定提供商细节:
    • Tavily:配置中需设置 chunks_per_source: 1 以获取页面片段而非完整页面内容。
    • SearXNG:需要配置实例端点,且其时间单位映射可能需要调整(如 week 映射为 month)。
    • DuckDuckGo:不使用密钥,但会解析 HTML 前端,可能遇到机器人验证页面导致无结果。

插件目录:SkillHub
GitHub 仓库:ForeverYoungPp/dsh-web-search

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

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

小夜