前言¶
在使用 DeepSeek Harness (DSH) 开发智能体时,单一搜索源可能因超时、配额耗尽或服务中断导致失败。dsh-web-search-router 插件提供了一个优先级排序的多提供者路由器,内置自动回退机制,旨在解决单一搜索源不稳定的问题。
它是什么¶
这是一个面向 DSH 的多提供者 web_search 路由插件,由开发者 Kerberos255 维护。它注册了一个名为 web-search-router 的 DSH 网页搜索提供者,但保持模型面对的工具不变:智能体依然调用 DSH 内置的 web_search。插件会按顺序尝试配置的提供者,并在遇到第一个成功结果时停止。
核心功能¶
- 提供者管理:通过 DSH 的设置界面,可以调整提供者的优先级顺序、启用或禁用特定提供者。
- 自动回退:当配置缺失、提供者失败、超时、触发速率限制、配额耗尽或默认情况下结果为空时,插件会自动切换到下一个提供者。
- 冷却机制:对于瞬时故障设置短冷却时间;对于速率限制和配额问题,可配置冷却时间。
- 配置与安全:非机密设置存储在 DSH 原生设置命名空间中,修改后无需重启。API 密钥保留在 DSH 凭据或启动环境中,不会显示在设置界面。
- 日志清理:在记录日志或通过路由器返回错误信息前,会清理提供者的错误消息,移除敏感数据。
安装与启用¶
通过命令行安装插件,建议固定具体的提交哈希或标签以保证兼容性:
dsh plugin --profile web add github:Kerberos255/dsh-web-search-router#<commit-or-tag>
安装后,插件会自动选择 web-search-router 作为 DSH 的搜索提供者,并注入默认配置。
典型用法¶
- 前置条件:你的智能体预设必须暴露 DSH 内置的
web_search工具(例如标准预设)。如果预设中省略了web_search,该路由器将不会被调用。 -
设置配置:进入 Settings → Plugins → Plugin configuration → Web Search Router。
- 在此页面可以重新排序提供者、启用或禁用提供者。
- 配置 SearXNG 的基础 URL(无需 API 密钥)。
- 写入或清除各提供者的 API 密钥。
- 为每个提供者设置超时和冷却时间。
- 选择当结果为空时是否继续尝试下一个提供者。
-
提供者列表:插件支持多种搜索源,包括 SearXNG、DeepSeek Search、Tavily、Brave Search、Exa、Firecrawl、Parallel 和 DuckDuckGo。未配置的提供者会自动跳过。
-
DeepSeek 搜索高级配置:插件默认使用 DSH 官方 DeepSeek 搜索提供者设置。你可以在配置文件中覆盖它们,例如指定自定义的
deepseekBaseURL、deepseekModel或环境变量deepseekApiKeyEnv。
回退行为逻辑¶
对于每个启用的提供者,按以下顺序执行:
1. 检查是否配置或当前处于冷却期,若否则跳过。
2. 使用配置的超时时间运行搜索。
3. 成功则立即返回结果。
4. 结果为空时(根据配置决定)继续尝试下一个。
5. 失败则分类错误并继续尝试下一个提供者。
注意:调用方的中断(abort)会立即传播,不会触发回退机制。
注意事项与兼容性¶
- DSH 版本:当前兼容 DSH
0.1.0-rc.6和0.1.1-rc.x,运行环境要求 Node.js 20+。DeepSeek Harness 仍处于开发者预览阶段,升级时请注意检查兼容性。 - 安全:凭据值仅在主机端解析。浏览器仅接收凭据引用和配置状态元数据,不存储密钥值。路由器错误日志会先屏蔽 URL 和类似密钥/令牌的值。
总结¶
dsh-web-search-router 为 DSH 提供了一个灵活、可靠的搜索后端解决方案,通过多源路由和自动容错,增强了智能体获取互联网信息的稳定性。更多细节可参考 GitHub 仓库 或 社区目录。