chinng-inta/dsh-web-search-searxng0

dsh-web-search-searxng

SearXNG-backed web search provider for the DeepSeek Harness web capability seam (ctx.web) — self-hosted metasearch, no API key, no model turn per search

AI Analysis

核心用途是为 DSH 提供免 API 密钥的网页搜索能力。适合注重隐私、希望自建搜索源的用户,必要条件是拥有可用的 SearXNG 实例且该实例需开启 JSON 格式输出。

Package
dsh-web-search-searxng
Version
0.1.0
License
MIT
Last updated
Aug 14, 2026

Install

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

Configuration

All keys are optional.

KeyDefaultMeaning
baseURL$SEARXNG_URLInstance root; /search is appended. Missing or non-http(s) makes the provider report unavailable rather than fail every search.
categoriesinstance defaultcategories= filter, e.g. ['news'].
enginesinstance defaultengines= filter, e.g. ['duckduckgo', 'brave'].
languageinstance defaultlanguage= filter, e.g. ja, en-US.
timeRangeunsettime_range= filter: day / week / month / year.
safesearchinstance defaultsafesearch=: 0 off, 1 moderate, 2 strict.
timeoutMs10000Resource backstop for one search.
maxSnippetChars500Per-source snippet cap.
headersnoneExtra request headers, e.g. for an instance behind an authenticating proxy.
- id: web-search-searxng
  name: 'dsh-web-search-searxng'
  config:
    baseURL: http://searxng.internal:8888
    language: ja
    categories:
      - general
      - news

Every search-shaping knob is a deployment setting, not a model argument. The seam's WebSearchRequest is deliberately just query + maxResults; provider-neutral controls (recency, domain filters, search depth) are named deferred work upstream. Keeping them in config is what makes this provider substitutable for the shipped ones.

timeoutMs is a resource backstop, not the model-facing tool-call budget — @deepseek-ai/dsh-tool-call-timeout-policy owns that via tool-web's searchTimeoutMs. Leave this below the tool budget so a slow instance surfaces as a provider failure rather than a tool timeout.