前言¶
DeepSeek Harness(DSH)的 web profile 會提供 ctx.web 這個 web search seam。DSH 的理念是“一切皆插件”;在這個插件生態裏,dsh-web-search-searxng 是一個 standalone SearXNG-backed web search provider。
它解決的是一個很具體的問題:如果你已經有自託管 SearXNG,並希望 DSH 的 web_search 調用自己的 SearXNG 實例,而不是依賴某個外部 API,可以直接安裝這個插件。
這是什麼¶
dsh-web-search-searxng 是一個可安裝的 DSH 插件包,面向 DeepSeek Harness 的 web profile(ctx.web)。
倉庫地址是 https://github.com/d3cker/dsh-web-search-searxng。package.json 中聲明:
name:dsh-web-search-searxngversion:0.2.0license:MITtype:module
它是 DSH 插件包,不是 DSH 核心功能的一部分。
核心能力¶
下面這些能力來自 README 和 package.json 的可覈對信息:
- 爲
ctx.web提供獨立的 SearXNG 後端 web search provider。 - 純 ESM,無構建步驟。
- 以 bundle 方式發佈;一條
dsh plugin命令即可安裝並自動激活。 - 安裝後會把 web seam 切換到
searxngprovider,並掛載 plugin row。 - 支持通過
SEARXNG_BASE_URL配置 SearXNG 實例地址,默認http://localhost:8888。 - 支持可選配置
SEARXNG_NUM_RESULTS和SEARXNG_API_KEY。 - 暴露
web-search-searxngsettings section;Settings 卡片需要 harness 側改動後才能使用。 - 使用
vitest運行測試,README 記載 20 tests。
安裝與啓用¶
README 給出的安裝命令是:
dsh plugin --profile web add /path/to/dsh-web-search-searxng
其中 /path/to/dsh-web-search-searxng 是佔位路徑,替換成本地插件目錄。
執行後,插件會進入 DSH 的 web profile 並自動激活。README 描述的結果是:web seam 切換到 searxng provider,同時掛載 plugin row。
配置 SearXNG 實例¶
最常用的是設置環境變量:
export SEARXNG_BASE_URL=http://192.168.30.74:8888
然後在該 shell 中啓動或重啓:
dsh web
SEARXNG_BASE_URL 默認值是 http://localhost:8888。
如果 SearXNG 實例需要 API key,可設置:
export SEARXNG_API_KEY=your-key
SEARXNG_API_KEY 是可選配置,只用於需要 key 的實例。
SEARXNG_NUM_RESULTS 也是可選配置項,用於配置結果數。
如果不想用環境變量,README 的替代做法是編輯 bundle 中的 cordis.patch.yml,修改 baseURL 行的默認值:
baseURL: !!js process.env.SEARXNG_BASE_URL ?? 'http://localhost:8888'
把 http://localhost:8888 改成實際實例地址。
驗證搜索¶
README 給出的驗證方式是調用:
web_search("postgresql vs mysql")
如果配置正確,應返回來自你的 SearXNG 實例的聚合結果。
Settings 卡片(可選)¶
插件會暴露 web-search-searxng settings section。若要在 DSH 的 Settings → Plugins 中編輯這些字段,需要 harness 側改動。
README 列出的改動包括:
1、暴露 web-search-searxng namespace。README 給出的位置是 packages/host/apiproxy/src/api-proxy.ts,在 WEB_SETTINGS_NAMESPACES 中加入該 namespace:
const WEB_SETTINGS_NAMESPACES = [
'agent-loop', 'shell', 'locale', 'permission', 'ui-conversation', 'ui-theme',
'web-search-deepseek', 'web-search-searxng',
] as const
2、在 packages/client/ui-settings-plugins 中渲染卡片。README 提到增加 SearxngCard / SearxngCardController,在 index.ts 的 settings.plugin.item slot 註冊,並添加 searxng* locale keys。
之後需要重新構建 web 產物並重啓 GUI。README 給出的命令:
pnpm run build:lib:host
pnpm run build:lib:client
pnpm run build:web
沒有這些改動時,搜索仍可用;配置只能通過環境變量或 cordis.patch.yml 完成。
適用場景與注意¶
適合:
- 已有自託管 SearXNG,希望 DSH 的
web_search走自己的實例。 - 想要純 ESM、無構建步驟的插件包。
- 習慣通過環境變量或
cordis.patch.yml做配置。
注意:
- 插件會以當前
dsh進程權限運行。安裝前應檢查源碼、package.json、依賴和許可證。 package.json聲明license爲MIT,version爲0.2.0。SEARXNG_API_KEY是可選配置;僅適用於需要 key 的 SearXNG 實例。- Settings 卡片不是插件單獨提供的;需要 harness 側改動、重新構建並重啓 GUI。
鏈接¶
GitHub:https://github.com/d3cker/dsh-web-search-searxng