Skip to main content

dsh-deep-research

18Stars3Forks6Issues0Watchers

Registers a deep research tool for DeepSeek Harness. Uses cybernetics and information theory to design an adaptive closed loop: first defines the answer space, then conducts multi-round parallel research, and automatically fills information gaps. Includes optional adversarial review.

Evidence5/5methodologySourceInstallMaintenanceDSH versionSecurity scan
Machine-auditedInstall commandRepo verifieddsh-plugin topicLicenseREADMEAI wiki
Language
TypeScript
License
MIT
Branch
main
dsh-plugin

Install

cmdweb profile
$ dsh plugin --profile web add github:omdsh-dev/dsh-deep-research

Run the command above in your terminal to install this plugin via the dsh CLI. You can switch Profile in the top-right corner. New to dsh? Read the beginner tutorial

Install via your agent

Install the DeepSeek Harness plugin omdsh-dev/dsh-deep-research for me: review the repository at https://github.com/omdsh-dev/dsh-deep-research first, then run the install command and verify the plugin loads successfully.

Paste this instruction to the DSH Web GUI assistant — it will install and verify for you.

One-Line Positioning

Register a tool named deep_research with DeepSeek Harness. When the model receives requests for "research/comparison/literature collection," it automatically decomposes the topic, conducts parallel research, drafts the final report, and optionally performs adversarial review—all following a cybernetic and information-theoretic multi-round adaptive flow, running on the host's official workflow engine and reusing built-in web tools.

Core Capabilities

  • Register the deep_research tool, automatically triggered by the model based on the tool description. Calling it starts a complete research flow (src/index.ts:401-413)
  • Automatically define answer space and information dimensions: first, the planning agent declares what judgments the research should support, then decompose sub-questions by dimension and declare coverage blind spots (src/index.ts:207-240)
  • Multi-round adaptive research loop: first round researches all sub-questions in parallel, each round automatically dispatches high-priority information gaps to the next round for supplementary research, planned blind spots are proactively scouted and verified rather than silently accepted (src/index.ts:275-312)
  • The synthesis sub-agent compresses into a final report with confidence levels and sources following the "rate-distortion" principle, clearly preserving uncertainties and verified blind spots (src/index.ts:335-351)
  • Optional adversarial review: citation error-checking (whether URLs are reachable/support conclusions), coverage audit, contradiction and overconfidence labeling (src/index.ts:353-373)
  • Reuse official workflow engine and built-in web_search/web_fetch: zero self-developed orchestration, zero self-developed network logic, sub-agents inherit host's toolset (src/index.ts:483-516)

Technical Implementation

  • Language: TypeScript (ESM, native TS source, erasable-only syntax constraints, can be loaded by Node 22+ with native type stripping without build steps; compiled output in lib/types/, package.json#main also points there)
  • Key Dependencies: @deepseek-ai/dsh-tools (tool registration), @deepseek-ai/dsh-workflow (WorkflowMeta types and official engine), cordis ^4.0.0-rc.7 (plugin host framework)
  • Architecture Pattern: cordis plugin, export const inject = ['tools', 'workflows']; in apply, register the deep_research tool via ctx.tools.register. When the tool executes, submit a static workflow script (String.raw literal, containing planning/research/synthesis/review four stages) to the official engine running on worker threads via ctx.workflows.start; also inject the plugin line into profile's bundles via cordis.patch.yml
  • Entry File: src/index.ts (name/inject/apply exports at 67-70 / 386-539; loaded by host at runtime)

Use Cases

People who need to write a well-cited, cross-examination-resistant research report on complex topics—examples: "Research the current MCP ecosystem and compare several mainstream implementations," "Do a selection study based on this list of questions," "Give me an XX industry analysis with literature support." Just state your needs directly in the conversation; the model will decide whether to use deep_research, and generate more focused reports following the principle that "the clearer the purpose, the more accurate the answer space."

Prerequisites & Compatibility

DependencyMinimum VersionDescription
DeepSeek HarnessNot declaredInjected to any profile that lists this package in dsh.profile.bundles via dsh.bundle.patch (cordis.patch.yml); at runtime requires host to have loaded the ctx.workflows provider from @deepseek-ai/dsh-workflow
Node^22.19.0 || >=24.0.0package.json#engines; erasable-only TS depends on Node 22.19+ native type stripping and stable stripTypeScriptTypes
PlatformCross-platformPure TypeScript, no native modules; search/fetch handled by host's built-in tools, no platform-specific dependencies
Native ModulesNoneOnly depends on cordis and DSH official packages; no native bindings
Official Web ToolsBuilt-inMust be available with host (web_search/web_fetch inherited by sub-agents); @deepseek-ai/dsh-tools / @deepseek-ai/dsh-workflow provided by profile composition

Installation

dsh plugin --profile web add github:omdsh-dev/dsh-deep-research

If pnpm rewrites https URLs to git+ssh (due to local global git insteadof configuration), explicitly use the git+https://... form; if dsh plugin indicates allowBuilds is needed, add a line in $DSH_HOME/profiles/<name>/pnpm-workspace.yaml as prompted. The profile must list this package in dsh.profile.bundles to be injected.

Configuration Options

ConfigTypeDescriptionDefault
subagentProviderstringSub-agent provider override, passed to workflow runEngine default spawn
maxParallelpositive integerMaximum concurrent sub-questions per research round4
maxTotalAgentspositive integerMaximum total sub-agents for entire run; null/undefined means use engine defaultEngine limit
plannerModelstringModel for planning agent (recommend strong model)Inherit parent config
researcherModelstringModel for research agent (can use cheaper model for cost savings)Inherit parent config
synthesizerModelstringModel for synthesis agent (recommend strong model)Inherit parent config
reviewerModelstringModel for review agent; falls back to synthesizerModel when not configuredInherit parent config (falls back to synthesis model when missing)

Model tiering is designed per OpenAI guidelines: planning/synthesis/review require capable models, research agent is "high-frequency low-value" and can use cheaper models; this is role-based configuration rather than single-model, overriding original profile routing.

FAQ

Q: Is this plugin the same as the official .claude/skills/deep-research?

A: No. The former is a cordis plugin, runs on the official workflow engine, registers the model-visible deep_research tool; the latter is a skill system, triggered by the model based on skill description. Both README and source code clearly state they are independent and non-interchangeable; choose based on your needs.

Q: Do I need extra configuration after installation?

A: No. All configs are optional; it works with default values. The most common optimization is tiered models by role—strong models for planning/synthesis/review, cheaper models for research agents, which can significantly reduce costs.

Q: What exactly is the depth parameter in rounds?

A: depth equals the maximum research rounds minus one: 1=basic (up to 2 rounds), 2=in-depth (default, up to 3 rounds), 3=exhaustive (up to 4 rounds). Stops when limit is reached; the more common stopping condition is when a round has no new high-priority gaps (marginal information gain ≈ 0).

Q: What if some Web Profile doesn't work after installation?

A: This plugin depends on the official workflow provider (ctx.workflows) at runtime. If the profile doesn't declare that provider, the loader stays pending; either register the workflows provider relationship in DSH Hub, or use a profile composition that already provides that service.

Q: I've already listed my questions—how do I skip automatic decomposition?

A: Pass the question list as a string to questions (one per line, or 1./2./3. numbered), and the plugin will skip the planning phase and go directly to parallel research; if all evidence is obtained in the first round, it converges in one round.

Q: How to upgrade and uninstall?

A: Upgrade: dsh plugin --profile <profile> update; uninstall: dsh plugin --profile <profile> remove @dsh-external/dsh-deep-research, or remove the dependency from the profile's package.json then run update again.

Learning Curve

Beginner — one installation command and it's ready to use, all configs have default values; only need to look at depth/model configuration when you want to tier models by role for cost savings, or push research depth to exhaustive mode.

Known Issues & Limitations

  • Must rely on DSH official workflow provider and built-in web_search/web_fetch for runtime capabilities; if the target profile doesn't declare workflows provider (like some Web Profile combinations), the loader stays pending (README.md:117-122)
  • Tool input topic cannot be empty, depth only accepts 1/2/3, otherwise throws error before entering ctx.workflows.start (src/index.ts:464-472 / test/regression.test.mjs:516-569)
  • Tool internally checks result.stopReason !== 'completed' and throws error, passing maxTotalAgents as 0 is directly judged as INVALID_ARGUMENT by the engine—therefore null/undefined means use engine default, never write 0 (src/index.ts:394-396 / 521-531)
  • Source code must maintain erasable-only TS syntax (no enum/namespace/parameter properties), otherwise Node 22's native type stripping will throw a loud error (src/index.ts:53-58)

Read the usage guide →

Install steps, key points, FAQ and compatibility for this plugin — auto-derived from indexed fields.

Listing badge

Listed on deepseek-plugin.org
[![Listed on deepseek-plugin.org](https://img.shields.io/badge/listed_on-deepseek--plugin.org-007EC6)](https://deepseek-plugin.org/plugins/omdsh-dev/dsh-deep-research)

Paste this markdown into your GitHub README to link back to this listing. The badge only states the listing — not a security endorsement.

← Back to plugin directory