前言¶
DeepSeek Harness (DSH) 的核心設計理念是本地優先。編碼智能體需要的文件、Shell、Git、規劃等能力都是本地的,且成本爲零。聯網搜索是唯一需要突破的“牆”:現有的 DSH 內置搜索或第三方提供商通常要求付費賬戶、API 密鑰或消耗模型令牌。dsh-web-search-ddg 插件解決了這個問題,它通過抓取 DuckDuckGo 的 Lite 結果頁面,爲 Harness 提供無需任何憑證、無需消耗模型令牌的搜索能力。
插件簡介¶
dsh-web-search-ddg 是 DeepSeek Harness 的聯網工具類插件,由tatselkrik維護,採用 MIT 許可證。
它通過 Harness 的公開 ctx.web 提供者接口註冊,直接將 DuckDuckGo 的搜索結果注入到智能體的工作流中。
核心功能¶
- 零憑證:無需存儲任何 API 密鑰或訪問憑證 vault。
- 零模型令牌:搜索過程不觸發輔助模型調用,不消耗 token。
- 嚴格模式:僅接受 DuckDuckGo 結果標記的錨點鏈接;解析失敗時拋出錯誤而非靜默返回空結果。
- 重定向感知解析:自動解析
/l/?uddg=等重定向包裝,丟棄內部鏈接,並去重 URL。 - 實體安全文本:正確處理 HTML 實體編碼(如
&),避免雙重解碼。 - GET 和 POST:支持 GET(默認)和 POST 兩種查詢方式,POST 可規避部分反爬檢查。
- 摘要配對正確:確保每個搜索摘要與其對應的錨點鏈接正確關聯。
安裝與啓用¶
推薦將插件安裝到指定的 Profile 中。
- 安裝插件:
dsh plugin --profile my-profile add github:tatselkrik/dsh-web-search-ddg
- 配置 Provider。在 Profile 目錄下的
cordis.patch.yml中添加:
- id: web
name: '@deepseek-ai/dsh-web'
config:
searchProvider: duckduckgo
- 啓動 Harness 並使用 Web 工具:
dsh --profile my-profile web
配置項¶
插件提供以下可配置參數,可通過 cordis.patch.yml 覆蓋:
| Key | 默認值 | 含義 |
|---|---|---|
baseURL |
https://lite.duckduckgo.com/lite/ |
DuckDuckGo Lite 結果頁地址 |
limit |
10 |
單次搜索的最大來源數量 |
method |
get |
請求方式(get 或 post) |
timeoutMs |
15000 |
單次請求的超時時間(毫秒) |
配置示例:
- id: web-search-ddg
name: dsh-web-search-ddg
config:
limit: 5
method: post
注意事項與限制¶
- 非官方端點:插件使用非官方抓取端點。高頻請求可能觸發 403 錯誤或 CAPTCHA 驗證。
- 無發佈日期:DuckDuckGo Lite 頁面不返回發佈日期信息。
- 索引深度:結果質量與 DuckDuckGo 的索引一致,對於小衆技術查詢,索引深度略低於 Google。
- 隱私:每次查詢的查詢詞對 DuckDuckGo Inc. 是可見的。
- 安全性:無密鑰、無憑證訪問、無安裝時代碼執行。依賴項範圍嚴格限定,不使用通配符。
適用場景¶
適合需要在 DSH 中進行免費、本地化聯網搜索的開發者或用戶。特別是那些希望避免 API 密鑰管理、不想消耗模型 token 或希望完全審計搜索邏輯的場景。
總結¶
dsh-web-search-ddg 讓 DeepSeek Harness 保持了“本地優先、無密鑰”的純淨生態。它通過簡單的 HTTP 抓取和正則解析,填補了免費軟件在聯網搜索能力上的空白。