前言¶
DeepSeek Harness(DSH)采用“一切皆插件”的生态理念。在本地化部署或开发智能体时,联网搜索能力往往需要对接多个第三方 API。手动管理多个数据源、密钥轮询与回退逻辑不仅繁琐,而且容易出错。um-dsh-websearch 是一个由 UnforgetMemory 维护的插件,旨在通过统一的策略层封装 Exa、Parallel 与 DeepSeek 官方数据源,提供从配置到运行时的完整解决方案。
核心功能¶
插件通过策略层与门控机制实现了灵活且安全的搜索配置:
- 多 provider 策略层:支持 Exa、Parallel 与 DeepSeek 官方数据源。通过数组顺序定义优先级,主源失败时自动降级。
- 付费 / 免费双档位 + 门控回退:每个数据源包含 REST(付费)和匿名 MCP(免费)两个档位,双方向开关独立控制,强制关闭跨档回退逻辑。
- 多密钥策略:每条数据源可挂载多条凭据,支持按序轮询或随机洗牌策略。
- 并发扇出:当并发数大于 1 时,同时向所有启用源发起请求,结果按 URL 去重合并。
- 乐观缓存:内置内存结果缓存,可配置 TTL(1–86400 秒)。
- 凭据安全:使用
UM_WS_命名空间隔离,密钥仅存储为引用,不落盘明文。 - 官方 primitives 设置卡:复用 DSH 官方设置表单,支持行内编辑总开关、默认源、并发数与缓存。
安装与启用¶
使用 pnpm 在 web profile 中安装插件:
pnpm exec dsh plugin --profile web add github:UnforgetMemory/um-dsh-websearch
安装后需要重启 DSH。进入 设置 → 插件 → UM 网页搜索,将 enabled 开关打开。插件安装时会自动接管默认搜索(通过 dsh bundle 与 cordis.patch),卸载时自动回退到部署原默认后端。
典型用法¶
在设置卡中,你可以通过行内配置控制整体行为:
1. 总开关与默认源:设置 enabled 控制启用,defaultProvider 决定顺序链起点。
2. 并发模式:设置 concurrency 为 1 时为顺序回退链;设置为 2–8 时为并发扇出所有启用源。
3. 凭据配置:在“详细配置”中为每个 provider 添加密钥引用,密钥值通过官方凭据接口写入,不直接暴露在配置文件中。
适用场景与注意¶
- 版本要求:需要 DeepSeek Harness 版本在
>= 0.2.0-rc.1且< 0.3.0之间,Node.js 版本需>= 20。 - DeepSeek 官方源限制:DeepSeek 官方免费档默认强制关闭,仅支持付费 REST 档位。
- 迁移提示:若此前按旧版 README 手工插入了
id: web-search-exa的配置行,需先从 profile 的cordis.patch.yml中删除该行,否则会因重复加载导致冲突。 - 许可证:MIT 许可证。
短结尾¶
um-dsh-websearch 通过策略层封装与原生 UI,降低了多源搜索的维护成本,适合需要灵活切换或负载均衡的 DSH 用户。更多细节与源码请参考其 GitHub 仓库。