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:
-
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. -
skill_categories tool
Provides a category tree structure containing 15 top-level categories, their subcategories, and skill counts, allowing users to browse by domain. -
bioinf-library skill provider
Registers 986 biomedical skills intoctx.skills, enabling the nativeskilltool to load skill content on demand. Skill names are standardized to kebab-case, and HTML provenance comments are filtered out to preserve description integrity. -
dsh-bioinf-anysearch
Registers aWebSearchProviderintoctx.web, providing support for the nativeweb_searchtool. This component exists separately because headless configuration profiles do not mount the web API. -
remote_exec tool (optional)
Supports executing SSH operations on configured GPU/training servers, including checking status withnvidia-smi, starting training withnohup, polling logs, and running prediction tasks. It is active only when theremote.hostandremote.userconfiguration entries are present. -
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.
- Configure tool skill
Ensure that the catalog is disabled in the@deepseek-ai/dsh-tool-skillconfiguration:
config:
catalog: off
- Edit cordis.patch.yml
Insert thebioinfandbioinf-anysearchplugins intocordis.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: '...'
- Build library files
Run the build command in the project root directory to generate thelib/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¶
- Catalog dependency: Ensure that
catalog: offis set in thetool-skillconfiguration. - Remote execution condition: The
remote_exectool is available only whenremote.hostandremote.userare configured. - File format: The file pointed to by
skillsIndexFilemust be a valid JSON array; otherwise, the plugin may not work correctly. - Testing environment: Running unit tests requires installing
vitest. Test files are located inpackages/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.