Introduction¶
DeepSeek Harness (DSH) enables models to load skills on demand. However, installing a large number of related skills (such as tool chains or phased workflows) as a flat directory can cause context pollution and waste prompt budget. Every installed skill contributes its name and description to the <available_skills> directory; even when the current task does not require those skills, they still occupy context window space.
The dsh-skill-bundle plugin introduces the “Bundle Box” concept to encapsulate a group of related skills in a package. Only the root skill is exposed in the directory, while subskills are loaded through metadata on demand and enter the context only when explicitly requested. This helps reduce interference from irrelevant information and improve reasoning efficiency.
Core Features¶
- Bundle Box structure: Contains one root
SKILL.mdand any number of subskill directories. - On-demand loading control: Loads subskills through the
loadSubskillsfield in frontmatter or model decisions. - Model tools: Provides the
skill_browse(list subskill names) andskill_load(load a specified subskill) tools. - Non-invasive architecture: As a pure Cordis plugin, it requires no framework modifications and supports a precompiled
lib/directory. - Resource isolation: Subskills retain independent identities, and their resource directory relative path resolution remains correct.
Installation and Configuration¶
Before installing the plugin, ensure that DeepSeek Harness (dsh) is correctly installed.
- Install the plugin package:
dsh plugin --profile web add @lihuu/dsh-skill-bundle
- Verify that the configuration is in effect:
dsh --profile web --dump-config
The configuration output should include the `dsh-skill-bundle` layer.
- Restart configuration: After installing or modifying the configuration, you must restart the process for the corresponding Profile.
Custom Boxes Path¶
By default, the plugin looks in the boxes/ directory of the installed package. To point to a custom directory, add a patch line to the configuration to replace the existing boxesDir:
- insert:
- id: dsh-skill-bundle
name: '@lihuu/dsh-skill-bundle'
config:
boxesDir: /absolute/path/to/your/boxes
Usage Examples¶
Directory Structure Example¶
Place related skills in one directory; that directory becomes a Bundle Box. For example, a deployment workflow:
boxes/deploy/
SKILL.md # 根技能
build/SKILL.md
push/SKILL.md
rollback/SKILL.md
Frontmatter Configuration Example¶
Define the loading policy in the frontmatter of the root SKILL.md:
---
name: deploy
description: "部署相关技能集"
loadSubskills: # 仅加载指定的子技能
- build
- push
- rollback
---
Loading rules:
* loadSubskills: true: Loads all subskills (in directory order).
* loadSubskills: [a, b]: Loads only the subskills listed.
* loadSubskills is not set: Returns only the root skill content, and the model decides after reading it.
Notes¶
- YAML 1.2 limitation: Field values containing commas must be wrapped in double quotes, for example:
description: "a, b, c: 需要引号"
- Dependencies: Dependencies such as
@deepseek-ai/dsh-skilland@deepseek-ai/dsh-toolsmust be installed. - Configuration activation: After modifying the configuration, you must restart the configuration file for the changes to take effect.
Summary¶
By grouping skills and implementing on-demand loading, dsh-skill-bundle addresses context expansion in multi-skill scenarios. Developers can configure loadSubskills to precisely control the scope of a skill set’s loading, thereby optimizing model invocation costs while preserving functional integrity.