xiaohj233/dsh-tavily-search-provider ↗★ 1
dsh-tavily-search-provider
Tavily search provider for DSH with full search-control mapping, credential-backed key UI, and guarded rc.6 compatibility patches.
安装
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:xiaohj233/dsh-tavily-search-provider说明文档
阅读完整 README ↗dsh-tavily-search-provider(Tavily 搜索提供方)
状态: Feature Plugin with Compatibility Patch(特性插件 + 兼容补丁)。仅针对 DeepSeek Harness 0.1.0-rc.6 测试过。
dsh-tavily-search-provider 注册一个独立的 tavily_search 工具,并为 DSH 的官方 web_search 工具提供一个可选的 Tavily 后端。两条路径都完整映射了受支持的 Tavily 搜索参数面。Plugins 设置卡片中有一个由 DSH 凭据支撑的只写 TAVILY_API_KEY 控件。
问题
社区中的 Tavily 提供方通常只覆盖基本的查询与结果数量行为。本包的范围是保留其经过兼容补丁(compatibility patch)处理的 web_search 所期望的模型侧控件:深度、主题、时效性、域名过滤、答案包含与原始内容。
干净的 DSH rc.6 安装不会在 dsh-tool-web 中暴露这些字段,也不会通过 dsh-host-apiproxy 暴露本插件的设置命名空间,因此本包针对这两处缺口携带 guarded(守卫式)补丁。
行为
tavily_search:始终注册,返回 Tavily 形态的结果集,并支持所有已声明的控件。- 可选的
web_searchprovider(提供方):将官方工具经由 Tavily 路由,同时保持官方的结果/卡片形态。 - 按调用解析凭据:对
TAVILY_API_KEY的修改无需重启即可生效。 - 设置卡片:配置状态、密码输入、保存/替换、取消设置(unset)、后端切换,以及官方路径的结果上限。
- 状态路由:
/api/tavily-search-provider/status返回不含值的 provider/设置状态。
非目标
本包不是 DSH 的首个或唯一 Tavily 集成,不替换 DSH 的提供方注册表,不自行抓取页面,并且当其他后端忽略 Tavily 控件时,本包也不会让这些控件变得有意义。
兼容补丁
精确的目标:
@deepseek-ai/dsh-tool-web@0.1.0-rc.6:声明并转发search_depth、topic、time_range、max_results、include_domains、exclude_domains、include_answer和include_raw_content。@deepseek-ai/dsh-host-apiproxy@0.1.0-rc.6:仅将dsh-tavily-search-provider添加到 Web 设置命名空间的 allowlist(允许列表)。
版本策略默认是自适应(adaptive)的:当已安装副本的版本与 0.1.0-rc.6 不同,但每个锚点仍然唯一匹配时,仍会打补丁(记录为 adaptive 匹配);锚点漂移时则以原因跳过;严格的编程模式可恢复旧的"仅精确版本"应用行为。单个漂移、外来或遗留目标永远不会阻塞另一个目标,补丁应用在启动期间也绝不会抛错。在所有模式下,还原都保持严格的版本守卫。apply 与 restore 都是幂等的;文件替换使用临时文件加重命名的方式。
兼容性
需要 DeepSeek Harness 0.1.0-rc.6、Node.js ^22.19.0 || >=24、pnpm >=10 以及一个 Tavily API 密钥。上游升级后,请运行一次 dsh-tavily-search-provider status,确认每个目标要么已应用、要么被有意跳过。
安装
dsh plugin --profile web add "github:xiaohj233/dsh-tavily-search-provider#v0.2.0"
重启一次,以便启动时的守卫式补丁应用能够对干净的 rc.6 目标打补丁。如果不相关/遗留的目标被拒绝,独立工具仍然可用,但在该文件被还原之前,官方 web_search 的控件或设置卡片可能不完整。
API 密钥与配置
打开 Settings -> Plugins -> Tavily Search。密钥输入仅通过 credentials.set 为 写入;状态查询使用不含值的 ,清除使用 。空白的密钥草稿会保留当前值。