DeepSeek Harness (DSH) 通過 ctx.web 將聯網能力注入到模型中。DSH 自帶的 deepseek-official 搜索 provider 會消耗模型 API 的計費額度。Tavily 是一個獨立的搜索 API,擁有獨立的配額體系。dsh-web-search-tavily 插件向 ctx.web 註冊 Tavily 後端,讓模型調用 web_search 工具時使用 Tavily 進行檢索。
核心功能¶
該插件向 DSH 的 web 能力縫註冊 tavily provider,主要能力包括:
- 搜索深度與配置:支持
basic和advanced兩種搜索深度配置,支持通過maxResults和timeoutMs控制返回結果數量和請求超時。 - API Key 管理:支持從環境變量或憑據文件(
~/.dsh/.credentials.yaml)解析TAVILY_API_KEY,也支持直接在配置中填入字面量(字面量優先級高於憑據解析)。 - 結果標準化:返回結構化結果
{url, title?, snippet?, publishedAt?},支持 URL 去重,與 DSH 其他 web provider 保持一致。 - 錯誤處理與取消:拋出標準
WebError(包含WEB_PROVIDER_CREDENTIAL_MISSING、WEB_PROVIDER_ERROR、WEB_ABORTED等代碼)。支持AbortSignal取消,取消信號會合並插件自身的timeoutMs,能真正終止在途請求。
安裝與啓用¶
安裝前需滿足以下條件:
- DSH 版本 >= 0.1.2-alpha.2
- 系統中
git和pnpm在 PATH 上 - 存在一個 web surface profile(DSH 默認名爲
web)
使用官方安裝命令:
dsh plugin --profile web add github:my-dsh/dsh-web-search-tavily
安裝後需要重啓 DSH 使配置生效。
配置方法¶
憑據配置¶
通過以下兩種方式之一提供 TAVILY_API_KEY:
- 環境變量:
export TAVILY_API_KEY=tvly-...
- 憑據文件:
編輯~/.dsh/.credentials.yaml,在refs:下添加:
TAVILY_API_KEY: tvly-...
參數配置¶
通過用戶 patch 層(~/.dsh/profiles/<name>/cordis.patch.yml)覆蓋默認配置:
- id: web-search-tavily
name: '@my-dsh/dsh-web-search-tavily'
config:
# 搜索深度:basic(1 credit)或 advanced(2 credits)
searchDepth: advanced
# 單次請求返回的最大結果數(默認 8)
maxResults: 5
# 單次請求超時時間(毫秒,默認 30000)
timeoutMs: 20000
# 字面量 API Key(留空則走憑據/環境變量解析)
# apiKey: tvly-...
適用場景¶
該插件適合需要將“模型計費”與“搜索服務計費”分開的場景,或者需要使用 Tavily 獨立配額進行精確控制的情況。
生態背景¶
DSH 採用“一切皆插件”的架構,社區目錄與 DeepSeek / 幻方無官方從屬關係。該插件由 my-dsh 維護,遵循 MIT 協議。