Introduction¶
In the DeepSeek Harness (DSH) plugin ecosystem, managing agent memory and skills is key to improving reuse efficiency. Developers usually have to manually distill reusable skills from a large volume of execution trajectories, which is time-consuming and prone to oversights. The dsh-skill-evolution plugin aims to address this issue by using an event-driven mechanism to automatically monitor and crystallize the agent’s experiences in successful turns.
Plugin Overview¶
dsh-skill-evolution is a DeepSeek Harness (DSH) plugin developed by maintainer VanadisGithub. Its core logic is: after the agent successfully completes a turn, specific signals trigger an LLM review to crystallize reusable workflows into standalone skills.
Core Capabilities¶
-
Event-Driven Crystallization
The plugin listens for theturn/endevent instead of relying on simple frequency counting. When the conditions are met, an LLM review is triggered. -
LLM Review Gating
The reviewing LLM decides whether to crystallize a new skill, merge into an existing skill, or skip. Along with a hard no-capture list, this prevents garbage content such as environment dependencies and transient errors from being crystallized. -
Continuous Skill Evolution
New experiences are merged into existing skills, and the version number is updated. It supports semantic deduplication (FOLD_INTO), so the same experience can be merged even if reproduced through different tool sequences. -
Management and Persistence
The plugin provides a complete management UI in the settings panel, where users can view skill cards, versions, call counts, and more. Skills are persistently stored in thegenerated/directory and are automatically registered after restart.
Installation and Configuration¶
Official Installation (Recommended)¶
If the plugin has been published to npm, you can install it with the CLI:
dsh plugin --profile web add dsh-skill-evolution
Local Development Installation¶
- Clone the repository:
git clone https://github.com/VanadisGithub/dsh-skill-evolution.git ~/Code/dsh-skill-evolution
- Modify
~/.dsh/profiles/web/package.jsonand add the dependency:
"dsh-skill-evolution": "link:/Users/<you>/Code/dsh-skill-evolution"
- Run
pnpm installin the~/.dsh/profiles/webdirectory.
Manual Mounting (for Debugging)¶
Place the plugin files in the specified directory and modify ~/.dsh/cordis.patch.yml:
- insert:
- id: 'skill-evolution'
name: file:///Users/<you>/.dsh/plugins/skill-evolution/plugin.mjs?v=1
config:
minToolCalls: 5
minPatternOccurrences: 3
autoRegister: true
llmProvider: deepseek
llmModel: deepseek-chat
Note: Choose only one of the above three methods; duplicate mounting will result in dual instances.
How It Works¶
Signal Detection¶
The plugin checks three signals at the end of each turn:
* complex: The turn is successful and the number of tool calls is ≥ minToolCalls (default: 5).
* recovered: The turn is successful but includes recovery after failed steps.
* repeated: The same tool sequence appears ≥ minPatternOccurrences times (default: 3), and the success rate is ≥ minSuccessRate (default: 0.7).
* Corroboration Gating: By default, a single complex signal is blocked until recovered or repeated corroboration appears.
Review and Decision¶
The reviewing LLM receives information such as signals, intent, and tool sequences, and returns one of the following:
* SAVE: Crystallize a new skill.
* FOLD_INTO: Merge into an existing skill (semantic deduplication).
* NOTHING_TO_SAVE: Do not save (e.g., environment-dependent failures).
Output Format¶
Crystallized skills are stored in the SKILL.md format and include the title, use cases, steps, pitfalls, and validation methods.
Settings and Usage¶
After installation, the settings panel in DSH will include a “Skill Evolution” section. Here you can:
* View crystallized skill cards (including value ratings, versions, and call counts).
* Adjust the system prompts used for crystallization and improvement.
* Modify configuration parameters directly (e.g., minToolCalls, skillLanguage); changes in settings are persisted and override the mounted configuration.
Notes¶
- Hard No-Capture List: The plugin includes a built-in no-capture list to prevent negative statements such as “Tool X is broken” or environment-dependent errors from being crystallized.
- Dependency Constraint: The plugin host side depends only on Node.js built-in modules (
node:) and does not introduce external dependencies. - License: The plugin is released under the MIT License.
Summary¶
By combining a signal mechanism with LLM review, dsh-skill-evolution enables automated extraction and continuous evolution of agent skills. It is suitable for developers who want to reduce repetitive manual work and improve agent reuse rates. Full documentation and source code are available in the GitHub repository.