前言¶
在 DeepSeek Harness(DSH)裏做帶聯網的智能體,通常會用到框架自帶的 web_search 和 web_fetch。若你希望搜索走後端自建的 degoog 實例(多引擎聚合、自行部署),同時抓取環節仍在 Harness 本機直連目標 URL,就需要把「搜索後端」和「抓取路徑」拆開配置。官方 @deepseek-ai/dsh-web 並不爲第三方搜索源單獨提供配置頁;社區插件 dsh-web-degoog 以 bundle 形式註冊並選中 degoog 提供方,並在 Plugins 頁或補丁里填寫實例地址即可複用同一發佈包。
下面按安裝、配置、行爲與安全說明介紹該插件;事實以 GitHub 倉庫 README 與 package 元數據爲準。本包當前面向 DSH 0.2.2-rc.1(next)及 volatile-config / Plugins 頁模型;若仍使用 0.1.x 設置模型,應使用該包的 0.3.1 發行版。
這是什麼¶
dsh-web-degoog 是 maintainer shantanugoel 發佈的 DSH bundle:用任意自託管 degoog 實例支撐 Harness 原生的 web_search 與 web_fetch 工具。實例 URL 與 API Key 均爲配置項,一份安裝包可適配不同部署。
- 目錄分類:聯網工具(SkillHub 目錄頁)
- 倉庫:https://github.com/shantanugoel/dsh-web-degoog
- 許可證:MIT(package 版本 0.4.0)
核心能力¶
安裝後會註冊並選中兩個 provider(id 均爲 degoog):
| Provider id | 能力 | 實際支撐 |
|---|---|---|
degoog |
web_search |
向你配置的 degoog 實例發起原生 GET /api/search(多引擎合併、打分、去重)。受保護實例可選用 Bearer Token。 |
degoog |
web_fetch |
不經過 degoog:由 Harness 所在機器在 SSRF 防護下直接拉取 URL;degoog 核心無 scrape 端點。HTML 以 kind: 'html' 返回,由 dsh-tool-web 轉爲 Markdown。 |
因此:搜索流量指向你的 degoog;抓取流量不接觸 degoog 實例,但仍受插件內置 fetch 守衛約束。
安裝與啓用¶
在 web profile 下安裝:
dsh plugin --profile web add dsh-web-degoog
包聲明瞭 dsh.bundle.patch,CLI 會自動維護 profile 的 bundle 棧:安裝時併入圖層並寫入補丁,將 web.searchProvider / web.fetchProvider 設爲 degoog;卸載時移出。
安裝後必須配置 degoog 實例基址(serverUrl 爲空時搜索側視爲未配置)。任選其一:
1、Plugins 頁(推薦,免改文件)¶
側欄打開 Plugins,在 Installed plugins 下展開 dsh-web-degoog,找到 web-search-degoog 行,點 Configure。修改會寫入當前 profile 的實時條目,Save 後對下一次 search/fetch 生效,無需重啓。
2、啓動環境變量¶
DEGOOG_SERVER_URL=https://degoog.example.com dsh --profile web
API Key 可通過環境變量 DEGOOG_API_KEY 提供(與配置中的 apiKeyEnv 默認一致)。
3、Patch 文件(重啓與熱載仍有效)¶
在 ~/.dsh/profiles/web/cordis.patch.yml 中追加:
- id: web-search-degoog
config:
serverUrl: https://degoog.example.com
配置優先級(高到低):Plugins 頁寫入的 profile 條目 → 本包 bundle patch → 啓動環境(DEGOOG_SERVER_URL、DEGOOG_API_KEY)→ 內置默認(空 URL 表示搜索未配置)。DSH 0.2.x 上這些字段爲 volatile:操作時讀取,保存後無需重載 provider;界面會對覆蓋項顯示重置入口。
若之後想用官方搜索等其它源,可在不卸載的前提下用用戶 patch 或環境變量 $DSH_WEB_SEARCH_PROVIDER 覆蓋 bundle 的選擇。
web_fetch 與 Agent 預設¶
在 web profile 上,宿主側的 tool-web 行默認關閉;各會話的 web_search / web_fetch 由 agent preset 決定。自帶的 Standard、PTC、Cordis 預設已開啓 fetch: true。Minimal 或自定義預設若未啓用抓取,需在你自有副本的預設中顯式打開,例如:
- id: tool-web
name: '@deepseek-ai/dsh-tool-web'
config:
fetch: true
searchTimeoutMs: 60000
已開始的會話不會隨 bundle 變更 preset;bundle 不能修改官方內置預設,只能改你自己複製的預設。
配置字段摘要¶
| 字段 | 默認 | 含義 |
|---|---|---|
serverUrl |
'' |
degoog 實例根 URL;爲空則搜索不可用,若仍選中 degoog 會在首次搜索時報 DEGOOG_SERVER_URL_MISSING。 |
apiKey |
- | 明文 API Key;更宜用 apiKeyEnv,避免祕密進配置文件。Configure 頁不展示,必要時寫 patch。 |
apiKeyEnv |
DEGOOG_API_KEY |
從憑證服務或啓動環境解析,可解析時以 Authorization: Bearer ... 發送。 |
searchType |
web |
傳給 degoog 的 type(如 web、images 等,取決於實例安裝的引擎)。 |
lang |
'' |
可選語言代碼,對應 degoog lang 參數。 |
allowPrivateAddresses |
false |
僅 fetch 側:爲 true 時守衛允許撥號私有/迴環地址,便於 homelab 與內網站點同機部署;Configure 頁不展示,需 patch。 |
常見錯誤碼包括:DEGOOG_SERVER_URL_MISSING、WEB_PROVIDER_CREDENTIAL_MISSING(401/403 且無 Key)、WEB_PROVIDER_ERROR、WEB_ABORTED。
安全與策略¶
Fetch 守衛(摘要):僅 http/https;拒絕 URL 內嵌憑證與過長 URL;先 DNS 再撥號;拒絕解析到 loopback/私有/鏈路本地等地址;連接綁定校驗後的 IP 並保持 TLS SNI/Host;重定向逐步複檢(最多 5 跳);解碼正文上限 2 MB(可帶 truncated);拒絕二進制類型;單跳 stall 30 s、總時長 60 s 兜底。
web_fetch 允許模型選擇目標 URL,屬於產品設計。若策略不允許,請使用 fetch: false 的預設。
搜索請求發往你所配置的實例;API Key 應僅通過 HTTPS 發送。
插件以當前 dsh 進程權限運行;安裝前請自行審閱 源碼 與 MIT 許可證,並確認實例與密鑰管理方式符合你的合規要求。
卸載或切回官方搜索¶
dsh plugin --profile web remove dsh-web-degoog
bundle 圖層會自動退出棧,含 degoog provider 選擇,便於再選 DeepSeek 官方搜索。本包不刪除代理預設目錄或遺留 settings;若舊版創建過 ~/.dsh/.agent-presets/degoog-standard,需在 Settings → Agent presets 切換默認預設並手動刪除目錄;亦可從 ~/.dsh/settings.yaml 去掉遺留的 web-search-degoog: 段(DSH 0.2.x 首次啓動會導入並重命名該遺留文件)。
結尾¶
dsh-web-degoog 把 DSH 的聯網工具接到自託管 degoog:搜索走實例 API,抓取在本機直連並帶 SSRF 防護,適合希望搜索基礎設施自控、又要在 Harness 內保留標準 web_search / web_fetch 接口的 web profile 用戶。
- 目錄頁:https://www.skillhub.cn/plugins/shantanugoel/dsh-web-degoog
- GitHub:https://github.com/shantanugoel/dsh-web-degoog
社區插件目錄爲獨立站點,與 DeepSeek / 幻方無官方從屬關係;安裝與配置請以倉庫 README 爲準。