DeepSeek Harness Web 插件:Tavily 搜索集成

前言

DeepSeek Harness (DSH) 提供了一個用於聯網能力的接口 ctx.web。默認情況下,DSH 的 web_search 工具依賴模型本身進行搜索。這種方式需要消耗模型 Token,且結果集來源於模型請求。這個插件通過接入 Tavily 的專用搜索 API,將 ctx.web 的搜索路由切換爲真實的搜索引擎索引,從而在保證結果質量的同時,實現零模型 Token 消耗。

插件定位

這是一個爲 DSH 的 ctx.web 統一接口提供的 WebSearchProvider 實現,由用戶 cxykyw 維護。
它的核心作用是:
1. 在 ctx.web 上註冊 ID 爲 tavily 的搜索提供者。
2. 將 Tavily 的返回結果映射爲 DSH 標準的 WebSearchResult 格式。
3. 在每次搜索時動態解析 API 密鑰。

安裝

插件發佈在 npm 上,包名爲 dsh-tavily-cxykyw(注意與同名倉庫的區別)。
在 DSH 的 Web profile 目錄下執行安裝命令:

dsh plugin --profile web add dsh-tavily-cxykyw

如果當前目錄是 pnpm workspace 根目錄(默認 ~/.dsh/profiles/web 即爲此類),需要添加 -w 標誌:

dsh plugin --profile web add dsh-tavily-cxykyw -w

安裝完成後,需要重啓 dsh web,因爲 bundle 變更不支持熱重載。

配置 API 密鑰

在使用前,需要從 app.tavily.com 獲取 API Key。

插件會在每次搜索時按以下順序解析密鑰:
1. 字面量配置
2. 憑證服務(~/.dsh/.credentials.yaml)
3. 環境變量

方式一:憑證文件(推薦,不隨倉庫泄露)
在 ~/.dsh/.credentials.yaml 中添加:

TAVILY_API_KEY: tvly-xxxxxxxxxxxxxxxx

方式二:環境變量
啓動 DSH 的進程環境變量:

TAVILY_API_KEY=tvly-xxxxxxxxxxxxxxxx dsh web

方式三:Profile Patch
在 ~/.dsh/profiles/web/cordis.patch.yml 中直接配置(不推薦,明文存儲):

- id: web-search-tavily
  config:
    apiKey: tvly-xxxxxxxxxxxxxxxx

使用與選項

插件註冊後,DSH 會自動將 web.searchProvider 指向 tavily。
通過 profile patch 可以調整搜索深度和結果數量:

- id: web-search-tavily
  config:
    searchDepth: advanced
    maxResults: 5
  • searchDepth:可選 basic(快速,1積分)或 advanced(深度抓取,更多積分)。
  • maxResults:每次搜索返回的結果數,範圍 1-20。

注意事項與限制

  1. 無設置頁面:DSH 0.2 版本無法掛載此插件的設置面板,所有配置必須通過 profile patch 完成。
  2. 頁面抓取未變:fetch(頁面內容獲取)功能未受影響,仍由 @deepseek-ai/dsh-web-fetch-http 處理。
  3. 時間字段缺失:由於 Tavily 搜索結果不包含發佈日期,sources[].publishedAt 字段不會被設置。

總結

該插件爲 DSH 提供了一個基於 Tavily 的真實搜索引擎接入點,解決了原生搜索消耗 Token 的問題。對於需要低成本、高質量網絡檢索的場景,這是一個直接的替換方案。

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

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

小夜