在 DeepSeek Harness (DSH) 中構建智能體時,聯網能力是剛需。雖然官方提供了 tool-web,但在某些場景下,開發者需要更可控的搜索與抓取邏輯,或者需要替換默認實現。DSH Web Search 插件旨在解決這一問題,它持久化運行在宿主機端,支持 Bing 和 SearXNG 搜索,並能抓取特定 HTTP(S) 頁面。
插件定位¶
DSH Web Search 是一個宿主機側的 DSH 工具插件,由 gao-gao-zai 維護。它提供了 web_search 和 web_fetch 兩個接口,用於執行網絡搜索和網頁抓取。該工具會將 HTML 轉換爲 Markdown,且不會下載或解釋圖片。輸出大小經過限制,適合在生產環境中直接調用。
前置條件¶
使用前需滿足以下條件:
1. 安裝了 DeepSeek Harness 且啓用了 web 配置文件。
2. 系統已安裝 Node.js 22 或更高版本。
3. DSH 配置文件目錄具有寫入權限。
安裝與啓用¶
通過命令行安裝到 web 配置文件:
dsh plugin --profile web add github:gao-gao-zai/dsh-tool-web-search
若需開發調試,可使用本地檢出路徑:
dsh plugin --profile web add link:E:\DeepSeekHarness\WebSearch
配置說明¶
安裝後必須禁用官方 tool-web 工具,否則同名工具會發生衝突或導致啓動報錯。這需要在兩個層級進行配置:
- Host Profile 層配置:編輯
C:\Users\<user>\.dsh\profiles\web\cordis.patch.yml,添加或修改以下內容:
- id: tool-web
disabled: true
- Agent Preset 層配置:複製 DSH 安裝目錄下的
standard預設到用戶目錄${DSH_HOME:-$HOME/.dsh}/.agent-presets/web-search/,並禁用:
- id: tool-web
name: '@deepseek-ai/dsh-tool-web'
disabled: true
同時在 `settings.yaml` 中將默認預設指向該目錄:
agent-presets:
default: web-search
重啓 DSH 後端(例如通過 Ctrl+C 停止舊進程再運行 dsh web)並創建新會話。驗證新工具是否生效,可嘗試:
web_fetch({"url":"https://example.com/"})
若返回 Fetched https://example.com/ (HTTP 200) 及 Markdown 內容,說明配置成功。
插件註冊了 dsh-web-search 命名空間。在瀏覽器中打開 Settings → Web UI Plugins → 網頁搜索與抓取(或 Plugins → Plugin configuration),可配置引擎(Bing/SearXNG)、最大結果數、超時時間及輸出字符限制。SearXNG 的憑據需在 DSH 憑據 UI 中管理。
典型用法¶
啓用後,Agent 可調用以下工具:
- 搜索:支持
query、limit和language參數。
web_search({"query": "DSH", "limit": 5, "language": "zh-CN"})
- 抓取:接收一個 HTTP(S)
url參數。
web_fetch({"url": "https://example.com/"})
限制與注意事項¶
插件對輸出做了大小限制,以防止內存溢出:
* 搜索:最多 10 個結果,單個片段 200 字符,渲染輸出上限 16K 字符。
* 抓取:渲染輸出上限 200K 字符。
* 任何超過限制的網絡響應都會在解析前被拒絕。
注意:該插件依賴 Node.js 22+,且搜索和抓取均以 DSH 進程的權限運行。建議在安裝前檢查源碼與許可證(MIT)。