umineko987/dsh-search-enhance

KKKneko/dsh-search-enhance

提供 Grok-compatible 网页搜索、保留来源分页、Context7 与 Exa 文档检索、有界网页提取、站点映射、离线研究计划和只读诊断。

浏览器与网页deepseek-harnessdshdsh-plugins

Search Enhance for DeepSeek Harness

English | 简体中文

dsh-search-enhance is a search extension for DeepSeek Harness. It uses a Grok-compatible Search API for primary web answers and can optionally use Context7, Exa, Tavily, Firecrawl, Parallel, and DeepSeek for documentation lookup, supplementary discovery, page extraction, and site mapping.

The plugin presents search results, sources, and page content separately. Searches return an answer or documentation snippets with source links; you can ask for more sources when needed. To check important details, ask it to read the original page. Search snippets remain distinct from fetched page content.

Bring your own service addresses and keys; none are included. Ordinary web search needs a Grok-compatible service. Other services are optional.

Key characteristics

  • web_search uses the Grok-compatible endpoint for the main answer and runs all user-selected supplemental Providers (Exa, Tavily, Firecrawl, Parallel, DeepSeek) in parallel, with an independent per-Provider source limit.
  • Sources are normalized, de-duplicated, and reordered using source category, requested version, and publication-time signals before they are shown.
  • web_research uses a separate research Agent for comparisons and source checks, keeping the current model. It returns conclusions, links, excerpts, and limitations, not the full investigation history.
  • In DSH Web, open research records from the original conversation's subagent entry. With history saving enabled, completed, cancelled, and failed research remains readable after restart. Records are read-only, without word-by-word updates, a running indicator, or continuation.
  • source_ref stores complete source records separately, allowing pagination beyond the links shown initially.
  • Documentation search defaults to Context7 for a named software product or documentation library, and Exa otherwise.
  • web_extract reads through one enabled service: Tavily, Firecrawl, Parallel, DeepSeek Fetch, smart direct reading, or direct reading. It reports the reading route, evidence level, and page details; failure does not switch services.
  • Source pagination becomes available automatically after a successful search retains readable sources. Website mapping is available to the research Agent, not the main Agent; no manual tool loader is needed.
  • Supplemental search defaults to no Providers selected. Unselected Providers are never requested; missing credentials and failures of selected Providers remain visible as warnings.

For implementation details, see Search workflow architecture.

Quick start

1. Install

Supports DSH 0.2.1-rc.2. DSH dependencies are pinned to this exact release; upgrade the DSH CLI first if you are running an older version.

Install the published npm bundle into the DSH web profile:

dsh plugin --profile web add dsh-search-enhance@latest

Research requires a configured, working official DeepSeek service or DeepSeek account. Other connections fail explicitly without switching services. DSH must be runnable locally for research to start.

2. Start DSH Web

dsh web

3. Configure search

Open:

Settings → Plugins → Plugin configuration → dsh-search-enhance

In the settings card:

  1. Set the xAI endpoint or an explicit Grok-compatible gateway and its key under Credentials → Grok search.
  2. Choose the matching completions or responses protocol and model under Grok search backend.
  3. Use the Supplemental search providers and Available extraction providers dropdowns to select multiple services. Each service's endpoint, timeout, and credential reference are grouped in its credential card.

Save configuration, then restart DSH to apply it. Saving does not restart the running plugin. A successful run shows a Search tool row, an answer, and source links.

Example requests

Use normal language; the plugin gives the Agent routing guidance.

  • “Find the most important React 19 user-visible changes. Prefer official release notes and include source links.”
  • “Look up the current FastAPI JWT authentication API and show a minimal example from the official documentation.”
  • “Read and summarize https://example.com/article, separating what the page states from your inference.”
  • “Research these three competing solutions, corroborate the important claims, and return source excerpts and unresolved limitations.”

Ask explicitly when you need more sources or pages from a specific website. Check the plugin settings for service configuration status.

Providers

Configure only the routes you need.

Provider · Used for · Default credential reference · Required? Grok-compatible Search API · Main web_search answer and sources · SEARCH_API_KEY · For web_search Context7 · Documentation lookup for an explicit library · CONTEXT7_API_KEY · No Exa · Broad documentation and supplementary discovery · EXA_API_KEY · No Tavily · Supplementary search, page extraction, and site mapping · TAVILY_API_KEY · No Firecrawl · Supplementary search and page extraction · FIRECRAWL_API_KEY · No Parallel · Supplementary search and Markdown page extraction · PARALLEL_API_KEY · No DeepSeek · Supplementary search and Markdown page extraction; API Key only · DEEPSEEK_API_KEY · No

Select any combination of supplemental search services in the plugin settings. Selected services run alongside the main search. Each collects up to 5 sources by default, adjustable to 100; unselected services are not requested.

Select available extraction services to limit which ones the assistant may use. Each page read uses one service. Disabled services, missing keys, unsupported formats, and reading failures are reported without switching services automatically. Parallel and DeepSeek Fetch support Markdown only and start disabled; other reading services start enabled and can be deselected.

DeepSeek Search and Fetch have separate switches, both off by default, and share one API Key in Credentials → DeepSeek. Account login alone does not configure them. These plugin switches are independent of DSH's own Web search settings; Grok remains required for web_search. DeepSeek Search returns at most 50 sources per request.

Changing a shared DEEPSEEK_API_KEY also affects the official model or other services using that reference. Saved keys take precedence over environment variables; deleting a saved key may restore an environment-supplied key.

Context7 needs a software name or documentation-library identifier. Without one, the default is Exa rather than guessing a software name from the whole question.

Update and uninstall

To update, run the installation command above again. To remove the plugin:

dsh plugin --profile web remove dsh-search-enhance

Restart DSH after updating or removing the bundle.