n0pe-sled/web-search-searxng ↗★ 0

dsh-web-search-searxng

SEARXNG-backed web search provider for the dsh web capability seam 适合使用自建或内网搜索后端的用户;需在web能力配置中选定 provider,否则仅默认行为生效。

パッケージ
dsh-web-search-searxng
互換性
未検証
Harness ピア範囲
0.1.1-rc.2
Cordis ピア範囲
4.0.1
バージョン
0.1.0
最終更新
2026/09/13

同名パッケージの別リポジトリ

インストール

$npx -p @deepseek-ai/dsh dsh plugin --profile web add github:n0pe-sled/web-search-searxng

ドキュメント

README 全文を読む ↗

dsh-web-search-searxng

A host-only DeepSeek Harness plugin that registers a SEARXNG-backed search provider with the web capability seam (ctx.web). It sits beside the shipped web-search-deepseek, web-search-exa, and web-search-perplexity providers; the model-facing web_search tool stays owned by @deepseek-ai/dsh-tool-web.

How it fits

  • The seam (@deepseek-ai/dsh-web) owns provider selection via the web row's searchProvider config (or $DSH_WEB_SEARCH_PROVIDER, or auto-select when exactly one usable provider is registered).
  • This provider registers under the id searxng and calls your instance's JSON API: GET {baseURL}/search?q=&format=json.
  • web_search errors route through the seam's WebError taxonomy: WEB_ABORTED on caller cancellation, WEB_PROVIDER_ERROR for request, timeout, HTTP, or unparseable-response failures.

Install

Add the bundle to the profile and point the seam at it. From the profile's patch layer (for example $DSH_HOME/cordis.patch.yml on the web profile):

- insert:
    - id: web-search-searxng
      name: dsh-web-search-searxng

# Point the seam's search at the SEARXNG provider (replaces the base row's config).
- id: web
  name: '@deepseek-ai/dsh-web'
  config:
    searchProvider: searxng

then restart the GUI. On the web surface the web_search tool itself is mounted per-session by the agent preset, so no tool enablement is needed.

Config (plugin row)

KeyDefaultMeaning
baseURLhttps://search.catrambone.orgInstance base URL; /search is appended.
enginesunsetComma-separated SEARXNG engine filter (engines=).
categoriesunsetSEARXNG category filter (categories=).
languageunsetSEARXNG language hint (language=).
timeoutMs15000Whole-request timeout in ms.
- id: web-search-searxng
  name: dsh-web-search-searxng
  config:
    baseURL: https://search.catrambone.org
    engines: google,duckduckgo

Mapping

Each results[] entry maps to a WebSearchSource: url (required, else the entry is dropped), title, snippet from content, and publishedAt from publishedDate when the instance returns one. Results are deduplicated by URL (one page can appear under several engines). SEARXNG returns no generated answer, so content is omitted; maxResults truncation is the seam's job.

Verify

node tests/smoke.mjs   # mapping, availability, apply registration, local round trip

The provider's search() has also been exercised directly against a live instance: deepseek harness returns ~28 mapped sources with titles and snippets.