chendefine/dsh-web-search-aggregation0

dsh-web-search-aggregation

Aggregated web-search provider for DeepSeek Harness: one prioritized queue over AnySearch / TinyFish / Tavily, multiple API keys per entry, ordered fallback per request.

包名
dsh-web-search-aggregation
版本
0.1.1
许可证
MIT
最近更新
2026年8月23日

安装

$npx -p @deepseek-ai/dsh dsh plugin --profile web add github:chendefine/dsh-web-search-aggregation

Configuration

The settings card (设置 → 插件 → 插件配置 → Aggregated web search) edits the web-search-aggregation settings section live:

FieldDefaultDescription
providersanysearch → tavily → tinyfishThe prioritized queue. Each entry: provider kind (each kind at most once), enabled toggle (a disabled entry stays configured but is skipped), and an optional endpoint base URL overriding the adapter's default.
attemptTimeoutMs15000Per-attempt deadline in ms (1000–60000). One attempt is cut off after this long and the queue moves to the next key or entry.

API keys are managed on each entry as masked tags: add one key at a time (+ or Enter), reorder by dragging tags off/on — tag order is the order a save writes and the runtime reads. Stored keys are never read back; a save replaces the whole pool, and closing every tag before saving clears the credential. Each provider's keys live in one fixed credential:

CredentialProviderRequiredValue format
ANYSEARCH_API_KEYAnySearchno — anonymous access worksone key bare, or several joined by ,
TAVILY_API_KEYTavilyyes, for the entry to servesame pool format
TINYFISH_API_KEYTinyFishyes, for the entry to servesame pool format

Combining with other provider plugins

A bundle patch replaces the web seam row's whole config, so the layer applied last determines the final searchProvider / fetchProvider pair. This plugin's patch states only searchProvider: aggregated — it owns the search selection and nothing else. Two consequences:

  • With dsh-web-fetch-playwright installed before this plugin (or without it entirely), nothing needs adjusting: an unconfigured fetchProvider resolves to the single registered fetch provider automatically.

  • If another plugin's layer is applied after this one and resets searchProvider, pin the combined selection in your profile's own profiles/web/cordis.patch.yml — the user layer wins over every bundle layer:

    - id: web
      config:
        searchProvider: aggregated
        fetchProvider: playwright