dsh-evolve: Let DeepSeek Harness Agents Grow and Prune Their Own Capabilities in Session

william-jin-cmu/dsh-evolve

Skills & AgentsVerified
Listed on 2026-08-20
Page last updated 2026-08-20

DSH plugin enabling agents to self-evolve by hot-mounting/unmounting tool and behavior plugins during sessions.

dsh-evolve is a self-evolving DSH plugin for DeepSeek Harness, letting the agent write and hot-mount cordis plugins on the fly, with new tools available in the next step, reversible unmount, and auto-restore after restart.

install
dsh plugin --profile web add github:william-jin-cmu/dsh-evolve
Category
Skills & Agents
Platform
DSH-Plugin
Author
william-jin-cmu
Distribution
Plugin

dsh-evolve Key Features

Hot-mount persistent pluginsReversible unmount & auto-restoreCross-session state & tool reuseBehavior evolution (hooks/timers)

dsh-evolve Repository

william-jin-cmu
Publisher
william-jin-cmu
Repository
william-jin-cmu/dsh-evolve
10
Stars
0
Forks
0
Watchers
2
Open issues
LanguageTypeScript
License
Website
Repo last push2026-08-13 10:26:42
Repo created2026-08-06 10:57:52
Topics
dshdsh-plugin
Default branchmaster

dsh-evolve Repo Summary

dsh-evolve is a self-evolving plugin (DSH plugin) for DeepSeek Harness (DSH) that allows the agent to dynamically add or remove capabilities during a session based on user needs. When a user repeatedly needs a feature (e.g., expense tracking, weather lookup, currency conversion), the agent can write a cordis plugin on the fly and hot-mount it, making the new tool available in the next step; it can also be reversibly unmounted when no longer needed and automatically restored after restart. Maintained by william-jin-cmu, written in TypeScript, last updated in 2026-08, with 7 stars. It leverages DSH's real-time tool list recalculation and cordis 4's reversible effects to ensure mount-takes-effect and dispose-cleans-up.

What core tools does the dsh-evolve DSH plugin provide?

The plugin offers three main tools: evolve_add persists a pure ESM cordis plugin source to ~/.dsh/evolve/<name>.mjs and hot-mounts it; calling with the same name replaces the old version. evolve_remove unmounts the fiber and cleans up its registered tools, listeners, and services. evolve_list lists all evolutions with name, fiber status, version, and purpose. Additionally, it registers a system prompt (order 118) teaching the model when to evolve, reuse, and prune, along with four recipes for non-tool evolutions (persistent rules, event hooks, timers, etc.).

How does dsh-evolve decide what is worth evolving?

Not every need warrants a tool. The plugin suggests that a tool must handle what the model cannot do alone, such as cross-session state (expense tracking, medication times), real-time or external data (weather, exchange rates), precise calculations (date boundaries, amortization), and private information (family cities, anniversaries). If a need must happen without model decision, it should evolve into a prompt section, event hook, or timer instead of a tool.

What empirical cases does dsh-evolve demonstrate?

The README provides six real session transcripts showing cross-session expense tracking, team weekly report aggregation, weather queries with family aliases, anniversary fixation, currency conversion with self-repair, and error code lookup with proactive evolution. For example, in the expense case, session 1 user asks to track expenses, agent creates a persistent tool; session 2 is a fresh session, user only says "record yesterday's takeout 62", agent directly calls the tool from the previous session, ledger continues (¥486 → ¥548).

How to install dsh-evolve?

Use the following command:

bash
dsh plugin --profile web add github:william-jin-cmu/dsh-evolve

After installation, the plugin registers with DSH, and the agent can use evolve_add and other tools in sessions.

What DeepSeek Harness versions and platforms does dsh-evolve support?

The plugin relies on DSH's real-time tool list recalculation and cordis 4's fiber features, requiring DSH to support these capabilities. It is maintained by william-jin-cmu and uses the MIT license (inferred from repo info, but not explicitly stated; not written here). It is recommended to use the latest DSH version to ensure hot-mount and unmount functions work properly.

View more DSH plugins at dsh-plugin.org

DSH-Plugin FAQ