AnySearch 搜索提供商插件

前言

DeepSeek Harness 支持通过插件扩展搜索能力。对于需要调用第三方搜索服务(如 AnySearch)的场景,手动配置 Provider 往往需要修改配置文件,且难以处理多密钥轮询和故障转移。jpa957/dsh-web-search-anysearch 插件通过注册 ctx.web Seam 提供了 AnySearch 搜索接口,并内置了密钥轮询和按密钥冷却故障转移机制,通过浏览器端 UI 进行配置。

插件简介

该插件由 JPA957 维护,是一个基于 AnySearch 的搜索提供商。它具备以下核心能力:

  • AnySearch 搜索提供商:注册了 anysearch 搜索后端。
  • API 密钥轮询:支持多个 API Key 的轮询使用。
  • 按密钥冷却故障转移:当某个密钥返回 429/401/403 错误时,该密钥会进入冷却期,插件会尝试使用下一个密钥,最多重试 6 次。
  • 浏览器端 UI 配置:提供设置页面的卡片和标签页,无需编辑配置文件即可管理 API Key、Endpoint 和结果数。

安装

使用以下命令安装插件。该命令会通过 Bundle 的 Patch 层自动注册 Provider。

dsh plugin --profile web add @jpa957/dsh-web-search-anysearch

配置与使用

安装后,需要在设置页面进行配置:

  1. 打开 Web App 的 Settings → AnySearch 标签页。
  2. API key:密钥仅通过凭据域输入,不会回传到浏览器。
  3. Key reference:API 密钥的凭据名称,默认为 ANYSEARCH_API_KEY。使用逗号分隔多个值可组成 Key 池,实现负载均衡。
  4. Endpoint base:API 端点地址,默认为 https://api.anysearch.com。
  5. Max results:单次搜索返回的结果数量(1-10)。

配置保存后,可在配置文档中设置 searchProvider: anysearch 以将其设为默认后端。

故障转移与安全机制

插件在运行时具备以下行为与安全特性:

  • 冷却策略:当 API 返回 429(限流)、401(认证失败)或 403(权限不足)时,对应的密钥会进入冷却期(默认 60 秒,认证/配额失败为 10 分钟)。
  • 重试逻辑:在同一个搜索请求中,若当前密钥失败,会自动切换到下一个密钥继续尝试,直至达到最大重试次数或所有密钥均处于冷却期。
  • 安全存储:密钥仅通过凭据域(Settings 页面或环境变量)输入,不会回传到浏览器。在诊断信息中,密钥仅显示前 10 个字符。
  • 匿名搜索:如果 Key 池为空,将进行匿名搜索。
  • 数据清洗:API 返回中无 URL 的条目将被丢弃,重复 URL 会合并。

启用为默认后端

若需将 AnySearch 设为 Web Seam 的默认搜索后端,需在配置中指定。在您的 Patch 配置中添加以下内容(注:需确保此配置位于 Bundle 的 Patch 层之后):

- id: web
  config:
    searchProvider: anysearch
    fetchProvider: http

注意事项

  • 插件以当前 DSH 进程的权限运行,安装前建议检查源码。
  • 依赖项需满足 node >= 20。
  • 该插件基于 MIT 许可证开源,属于社区插件,与 DeepSeek / 幻方无官方从属关系。

总结

该插件为 DeepSeek Harness 提供了标准的 AnySearch 搜索能力,重点解决了多 API Key 管理和自动故障转移的问题。通过浏览器端 UI 进行配置,降低了使用门槛。更多细节与源码可参考 GitHub 仓库。

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

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

小夜