前言¶
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
配置与使用¶
安装后,需要在设置页面进行配置:
- 打开 Web App 的 Settings → AnySearch 标签页。
- API key:密钥仅通过凭据域输入,不会回传到浏览器。
- Key reference:API 密钥的凭据名称,默认为
ANYSEARCH_API_KEY。使用逗号分隔多个值可组成 Key 池,实现负载均衡。 - Endpoint base:API 端点地址,默认为
https://api.anysearch.com。 - 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 仓库。