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

  1. Event-Driven Crystallization
    The plugin listens for the turn/end event instead of relying on simple frequency counting. When the conditions are met, an LLM review is triggered.

  2. 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.

  3. 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.

  4. 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 the generated/ directory and are automatically registered after restart.

Installation and Configuration

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

  1. Clone the repository:
   git clone https://github.com/VanadisGithub/dsh-skill-evolution.git ~/Code/dsh-skill-evolution
  1. Modify ~/.dsh/profiles/web/package.json and add the dependency:
   "dsh-skill-evolution": "link:/Users/<you>/Code/dsh-skill-evolution"
  1. Run pnpm install in the ~/.dsh/profiles/web directory.

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.