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 後端。
  • 同時保留官方結果和卡片形狀。
  • 支持 replaceOfficialSearch 和 searchMaxResults 設置。

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

補丁操作包括 status、apply 和 restore。其中 apply 和 restore 冪等,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_domains 和 exclude_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

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

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

小夜