前言¶
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,也不自行抓取頁面。
核心功能¶
1. 註冊獨立的 tavily_search 工具¶
- 註冊獨立的
tavily_search工具。 - 返回 Tavily 形狀的結果集。
- 支持已聲明的完整搜索控制參數。
2. 可選爲官方 web_search 提供 Tavily 後端¶
- 可爲 DSH 官方
web_search工具提供 Tavily 後端。 - 同時保留官方結果和卡片形狀。
- 支持
replaceOfficialSearch和searchMaxResults設置。
3. 映射完整的 Tavily 搜索控制參數¶
插件會映射以下搜索控制參數:
search_depthtopictime_rangemax_resultsinclude_domainsexclude_domainsinclude_answerinclude_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