Introduction

In DeepSeek Harness (DSH) plugin development, directly packaging a large skill library (for example, 986 biomedical skills) into a flat session catalog (about 230KB, 60k-80k tokens) can degrade performance. The dsh-bioinf plugin aims to solve this problem: it replaces a static catalog with a search-based routing mechanism and provides remote execution and scenario-driven guidance.

Feature Overview

The plugin provides the following core capabilities:

  1. skill_search tool
    Implements a BM25-style scoring algorithm (weights: name ×6, category ×2, whenToUse ×1.5, description ×1), with CJK bigram support. Querying the full library takes less than 10 milliseconds and returns matching skill names and categories.

  2. skill_categories tool
    Provides a category tree structure containing 15 top-level categories, their subcategories, and skill counts, allowing users to browse by domain.

  3. bioinf-library skill provider
    Registers 986 biomedical skills into ctx.skills, enabling the native skill tool to load skill content on demand. Skill names are standardized to kebab-case, and HTML provenance comments are filtered out to preserve description integrity.

  4. dsh-bioinf-anysearch
    Registers a WebSearchProvider into ctx.web, providing support for the native web_search tool. This component exists separately because headless configuration profiles do not mount the web API.

  5. remote_exec tool (optional)
    Supports executing SSH operations on configured GPU/training servers, including checking status with nvidia-smi, starting training with nohup, polling logs, and running prediction tasks. It is active only when the remote.host and remote.user configuration entries are present.

  6. Guidance prompt section
    Provides routing rules (for example, “never guess skill names”) and three scenario scripts: A. Deep literature review (generate falsifiable hypotheses), B. Biomedical data retrieval/analysis, C. Remote training/prediction.

Installation and Enablement

The plugin works as a Cordis patch plugin, and there is currently no single npm/pnpm install command. Enabling it requires manually editing configuration files and building the library files.

  1. Configure tool skill
    Ensure that the catalog is disabled in the @deepseek-ai/dsh-tool-skill configuration:
    config:
      catalog: off
  1. Edit cordis.patch.yml
    Insert the bioinf and bioinf-anysearch plugins into cordis.patch.yml:
    - insert:
        - id: bioinf
          name: 'file:///D:/projs/bioinf_agent/deepseek-harness/packages/examples/dsh-bioinf/lib/index.js'
          config:
            skillsIndexFile: 'D:/projs/bioinf_agent/skills_meta/_dsh_index.json'
        - id: bioinf-anysearch
          name: 'file:///D:/projs/bioinf_agent/deepseek-harness/packages/examples/dsh-bioinf/lib/anysearch-plugin.js'
          config:
            apiKey: '...'
  1. Build library files
    Run the build command in the project root directory to generate the lib/ directory:
    pnpm run build:lib:host

Index Format

skillsIndexFile must point to a valid JSON array. The index file defines skill metadata. An example format is shown below:

[
  {
    "name": "scanpy",
    "dir": "scanpy",
    "cat1": "细胞组学与组学整合场景",
    "cat2": "单细胞与转录组分析",
    "cat3": "scanpy",
    "description": "...",
    "whenToUse": "...",
    "requirements": ["pip install scanpy"],
    "hasScripts": false,
    "nScripts": 0,
    "bodyChars": 1234,
    "path": "D:/.../scanpy/SKILL.md"
  }
]

Notes

  1. Catalog dependency: Ensure that catalog: off is set in the tool-skill configuration.
  2. Remote execution condition: The remote_exec tool is available only when remote.host and remote.user are configured.
  3. File format: The file pointed to by skillsIndexFile must be a valid JSON array; otherwise, the plugin may not work correctly.
  4. Testing environment: Running unit tests requires installing vitest. Test files are located in packages/examples/dsh-bioinf/tests/.

Conclusion

Through search-based routing and on-demand loading, dsh-bioinf solves the maintenance challenge of large skill libraries in biomedical informatics scenarios. Combined with the remote execution tool, it can support end-to-end automation from literature analysis to server-side training.