dsh-tavily-search-provider:为 DeepSeek Harness 接入 Tavily 搜索的插件

前言

DSH 的插件生态强调「一切皆插件」。对于需要在 DeepSeek Harness 中使用 Tavily 的开发者来说,问题往往不是能否发出搜索请求,而是搜索控制参数能否传到后端、API key 能否在设置里安全填写、补丁能否检查和恢复。

dsh-tavily-search-provider 就是围绕这些问题做的一个 DeepSeek Harness 插件。下面介绍它的定位、核心能力、安装方式、典型用法和注意事项。DSH 社区插件目录是独立站点,不等于 DeepSeek 官方应用商店。

这是什么

xiaohj233/dsh-tavily-search-provider 是一个 DeepSeek Harness 插件,包名为 dsh-tavily-search-provider,许可证为 MIT。维护者为 xiaohj233

它的一句话定位是:为 DSH 提供 Tavily search provider,包含完整搜索控制映射、基于 credentials 的 key UI,以及受保护的 rc.6 兼容补丁。

它不是第一个或唯一 Tavily 集成,不替代 DSH provider registry,也不自行抓取页面。

核心功能

  • 注册独立的 tavily_search 工具。
  • 返回 Tavily 形状的结果集。
  • 支持已声明的完整搜索控制参数。

2. 可选为官方 web_search 提供 Tavily 后端

  • 可为 DSH 官方 web_search 工具提供 Tavily 后端。
  • 同时保留官方结果和卡片形状。
  • 支持 replaceOfficialSearchsearchMaxResults 设置。

3. 映射完整的 Tavily 搜索控制参数

插件会映射以下搜索控制参数:

  • search_depth
  • topic
  • time_range
  • max_results
  • include_domains
  • exclude_domains
  • include_answer
  • include_raw_content

需要注意,官方 DeepSeek search provider 会忽略 Tavily-specific controls。这个插件的重点,是在 Tavily 路径下保留这些搜索控制项。

4. 提供 Settings 中的 TAVILY_API_KEY 控件

插件在 Settings -> Plugins -> Tavily Search 中提供只写 TAVILY_API_KEY 控件,并基于 DSH credentials。

相关行为包括:

  • TAVILY_API_KEY 的修改按调用生效,无需重启。
  • 空白 draft 保留当前值。
  • 非回环明文 HTTP 上会禁用 key set/unset,应使用 localhost/loopback 或 HTTPS。

5. 提供状态路由

插件提供 /api/tavily-search-provider/status 状态路由,返回不携带密钥值的状态。

6. 提供受保护的 rc.6 兼容补丁

插件对以下目标提供受保护补丁:

  • @deepseek-ai/dsh-tool-web@0.1.0-rc.6
  • @deepseek-ai/dsh-host-apiproxy@0.1.0-rc.6

补丁操作包括 statusapplyrestore。其中 applyrestore 幂等,restore 严格版本保护。补丁策略默认为 adaptive;strict programmatic mode 恢复 exact-version-only 行为。

7. 提供 DNS 污染/fake-IP 场景下的网络韧性

v0.3.5 起,插件提供 DNS 污染/fake-IP 场景下的网络韧性层,使用 DoH、IP 字面量查询和系统解析器回退。

安装与启用

环境要求

使用该插件需要:

  • DeepSeek Harness 0.1.0-rc.6
  • Node.js ^22.19.0 || >=24
  • pnpm >=10
  • Tavily API key

安装

使用官方安装命令:

dsh plugin --profile web add "github:xiaohj233/dsh-tavily-search-provider#v0.2.0"

这里有一个版本差异需要注意:官方安装命令固定为 #v0.2.0,而 package.json 显示版本为 0.3.6,README 也提到自 v0.3.5 起提供网络韧性层。请仍按官方命令原文安装,并留意版本标签差异。

安装后重启一次

安装后需要重启一次,使 guarded boot application 能补丁 clean rc.6 targets。

由于补丁可能涉及已加载模块,修改已加载模块时需要重启。

典型用法

配置 TAVILY_API_KEY

打开:

Settings -> Plugins -> Tavily Search

在其中填写并保存 TAVILY_API_KEY

配置时要注意:

  • 该控件是只写控件,基于 DSH credentials。
  • 空白 draft 会保留当前值。
  • 非回环明文 HTTP 上会禁用 key set/unset,建议使用 localhost/loopback 或 HTTPS。

检查补丁状态

在 web profile 目录中运行:

pnpm --dir "$DSH_HOME/profiles/web" exec dsh-tavily-search-provider status

这条命令用于检查当前补丁状态。

应用补丁

确认状态后,可以应用补丁:

pnpm --dir "$DSH_HOME/profiles/web" exec dsh-tavily-search-provider apply

这条命令用于应用受保护补丁。

恢复补丁

如果需要回到未打补丁状态,运行:

pnpm --dir "$DSH_HOME/profiles/web" exec dsh-tavily-search-provider restore

这条命令用于恢复补丁目标。

卸载前先恢复补丁

如果准备卸载,先恢复补丁,再移除插件:

pnpm --dir "$DSH_HOME/profiles/web" exec dsh-tavily-search-provider restore
dsh plugin --profile web remove dsh-tavily-search-provider

inspect-only 启动

如果只想检查、不自动应用补丁,可以将 autoApplyPatches 设置为 false,进行 inspect-only 启动。

测试命令

仓库提供以下测试命令:

npm test
npm run check
npm pack --dry-run

适用场景与注意

适合谁

这个插件适合以下情况:

  • 使用 DeepSeek Harness 0.1.0-rc.6
  • 需要把 Tavily 搜索接入 DSH,并保留完整搜索控制参数。
  • 希望通过 DSH 设置卡管理 TAVILY_API_KEY
  • 需要检查、应用或恢复 rc.6 兼容补丁。
  • 关注 DNS 污染/fake-IP 场景下的搜索可用性。

不适合谁

以下情况要谨慎:

  • 需要非 0.1.0-rc.6 版本时,需要自行验证补丁目标是否匹配,因为补丁仅针对 rc.6。
  • 需要插件自行抓取页面时,这个插件不自行抓取页面。
  • 需要把域名过滤器当作内容安全边界时,不适合。include_domainsexclude_domains 是搜索约束,不是内容安全边界。
  • 使用 include_raw_content 时要意识到,它可能向模型上下文返回更多第三方页面内容。

密钥与权限注意

  • TAVILY_API_KEY 仅出现在浏览器 draft 状态和本包创建的 credentials.set 请求中。
  • 该 key 不存储于插件设置、工具结果、普通日志或状态响应。
  • DSH 插件会以当前 dsh 进程权限运行,安装前应检查源码与许可证。
  • 本包许可证为 MIT;补丁目标为 MIT 许可,另见 THIRD_PARTY_NOTICES.md

结尾

dsh-tavily-search-provider 的价值不在于简单增加一个 Tavily 入口,而是把完整搜索控制映射、凭据设置卡、状态检查和受保护补丁管理放在同一套可检查、可恢复的流程里。

GitHub 地址:https://github.com/xiaohj233/dsh-tavily-search-provider

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

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

小夜