In the DeepSeek Harness development workflow, Agents often get stuck in repeated failures on certain tasks, or we need to extract experience from successful Sessions to guide subsequent work. Existing workflows often lack local accumulation and retrieval capabilities for execution traces. dsh-evolve is an in-process plugin designed to address these issues.

Core Functions

dsh-evolve identifies repeated errors, repeated tool calls, and non-progressing traces through deterministic signals. It primarily provides the following capabilities:

  • Recording and Accumulation: Logs repeated failures, user corrections, and successful paths.
  • Local Distillation: Distills local Experience after a Session ends, providing bounded, temporary experience summaries for similar future tasks.
  • Background Mining: Optionally runs an experience sidecar to mine correction, successful-procedure, and failure-pattern entries in the background.
  • Retrieval Filtering: Filters experience retrieval by relevance, confidence, and compatibility, returning up to 3 entries.

Installation and Enablement

Ensure the environment meets the prerequisites: Node.js >= 22.19 and pnpm 10.

Build the project first in the dsh-evolve root directory, then add the local checkout to the target profile:

dsh plugin --profile <profile-name> add .

To uninstall, run:

dsh plugin --profile <profile-name> remove dsh-evolve

Configuration

The default bundle uses reset-v1: when a clear stuck trace is detected, it injects generic strategy resets, bounded by the recipe’s cooldown and total limits. If you only want observation without injection, override it in a subsequent Cordis patch for the profile:

- id: dsh-evolve
  config:
    recipe: baseline

The Experience mining sidecar is only enabled when an explicit evolution configuration is provided. The following is a minimal local Experience configuration:

- id: dsh-evolve
  config:
    evolution:
      enabled: true
      mining: true
      routing: true
      skillInjection: false
      commons:
        enabled: false

Common switches:

Configuration Default Value Purpose
recipe reset-v1 baseline only records; reset-v1 can inject strategy resets.
evolution.enabled true Enables or disables the Experience sidecar.
evolution.mining true Mines local Experience after a Session ends.
evolution.routing true Records task matching results for activated Skills.
evolution.skillInjection false Allows injecting a Skill description only in activated Skill scenarios.
evolution.commons.enabled false Enables Commons cache synchronization; does not automatically trust or activate remote content.

Daily Usage and Diagnostics

After the plugin is loaded, no per-task manual operation is required. After a Session ends, it writes data to the DSH evolve root directory (resolved by default from DSH_HOME/ the user directory; can also be overridden with storageRoot). You can inspect local state with the CLI:

dsh-evolve status
dsh-evolve experience list
dsh-evolve mutations list
dsh-evolve audit --all
dsh-evolve benchmark

Applicable Scenarios and Notes

  • Runtime Environment: The plugin runs in the same process as DSH and is not a secure sandbox. Install only trusted plugins.
  • Permission Boundaries: It does not automatically read credentials, disable the Sandbox, bypass Approval, install third-party plugins, execute community code, or upload raw Sessions.
  • Data Security: Ordinary Experience entries are stored, retrieved, and temporarily provided by default. Only explicit Skill distillation and user confirmation can create or activate a Skill. After a task ends, they are not retained as persistent context. Raw Sessions, Prompts, tool outputs, and local data are not uploaded automatically.

Summary

dsh-evolve is a DSH plugin focused on local execution experience accumulation and retrieval. It identifies problems through deterministic signals and provides bounded, temporary experience summaries after a Session ends, helping developers optimize Agent execution strategies.

This plugin is licensed under the MIT License. The source code is available on GitHub. For related details, see the SkillHub plugin directory.