前言¶
DeepSeek Harness (DSH) 採用插件化架構。在使用 ctx.web 綁定進行聯網搜索時,開發者常遇到協議不兼容或 API Key 配置錯誤的問題。dsh-web-search-litellm 插件通過 LiteLLM 代理和 OpenAI Responses 協議,提供了一套標準的 Web 搜索解決方案。
插件簡介¶
這是 DeepSeek Harness ctx.web 的 Web 搜索提供方。它通過 LiteLLM 代理調用 DeepSeek 原生服務端的 web_search 能力,返回帶真實來源 URL 的答案。
安裝¶
使用 DSH 官方命令安裝插件:
dsh plugin --profile <name> add dsh-web-search-litellm
配置與啓用¶
安裝完成後,需在 profile 的配置文件 cordis.patch.yml 中啓用該提供方。
- 在
cordis.patch.yml中配置web綁定的searchProvider:
- id: web
config:
searchProvider: litellm-responses
- 可選:禁用默認的 Anthropic 協議提供方:
- id: web-search-deepseek
disabled: true
- 安裝後重啓 profile 以使配置生效。
核心功能¶
- 協議支持:使用 OpenAI Responses 協議(
POST {baseURL}/responses),不支持 Anthropic 協議。 - 密鑰複用:複用現有的
LITELLM_API_KEY憑據,無需配置新的 API Key。 - 服務端搜索:搜索任務在 DeepSeek 官方服務端執行,不依賴任何第三方搜索服務。
- 可視化配置:所有設置項可在 Harness 的設置 UI 中完全配置。
配置項說明¶
該提供方支持以下配置項。未設置的項會從當前活躍的模型配置中自動派生。
| 配置項 | 默認值/來源 | 說明 |
|---|---|---|
baseURL |
派生($LITELLM_SEARCH_BASE_URL) |
LiteLLM 代理根地址,請求路徑會追加 /responses |
apiKeyEnv |
派生(LITELLM_API_KEY) |
密鑰環境變量名稱,每次搜索時解析 |
model |
派生(當前活躍模型 ID) | 首選的搜索模型 ID |
candidateModels |
派生(活躍提供方的模型列表) | 備選模型池,用於競速搜索 |
maxTokens |
4096 |
單次搜索請求的輸出 Token 上限 |
timeoutMs |
60000 |
響應流的連接及空閒超時時間 |
工作原理¶
- 模型調用
web_search工具。 - 插件向
{baseURL}/responses發起 POST 請求,攜帶tools: [{"type": "web_search"}]和stream: true。 - LiteLLM 代理將請求轉發至 DeepSeek,服務端執行搜索並將結果流式返回。
- 插件解析 SSE 流,提取
output_text作爲內容,將web_search_call中action: open_page的 URL 彙總爲sources。
注意事項¶
- 計費:每次搜索消耗一次 DeepSeek 模型調用。
- 會話兼容性:插件不追加自定義會話事件,以確保與舊版本 Harness 的兼容性。
- 結果格式:DeepSeek 文檔未明確支持結構化
include字段,因此結果僅包含 URL,不包含標題和摘要。 - 權限:插件作爲當前 DSH 進程運行,安裝前建議檢查源碼與許可證。
生態信息¶
- 維護者:yunxiyang
- 許可:MIT
- 倉庫:https://github.com/yunxiyang/dsh-web-search-litellm
- 目錄:https://www.skillhub.cn/plugins/yunxiyang/dsh-web-search-litellm