DSH Plugins Marketplace

DSH Plugins

Plugins

/

dsh-rule-evolve

d

dsh-rule-evolve

Identified

Verification-driven self-evolution loop: failure logs become verified AGENTS.md rules; in-session plugin (evolve_learn / evolve_apply / evolve_touch / evolve_recall), tool-verify gate, rule lifecycle,

dsh-rule-evolve

Verification-driven self-evolution loop for DeepSeek Harness.

Renamed from dsh-evolve (old URL redirects). Reason: another community project (william-jin-cmu/dsh-evolve) already uses that name for in-session plugin hot-mounting. Different focus: that project evolves which plugins are mounted; this project evolves which rules are trusted, with verification gates. The CLI command stays dsh-evolve for compatibility (dsh-rule-evolve is also available).

Agents keep repeating the same expensive lessons: a crash fixed last week gets re-debugged today, a Windows quirk gets rediscovered, an install trap gets re-hit. dsh-evolve turns that loop into a traceable pipeline:

experience (markdown)  →  learn  →  rules (AGENTS.md)  →  verify (real checks)

Every rule carries its source and its last verification result — evolution is auditable, and nothing is ever "learned" without being checked.

Quick start

node scripts/dsh-evolve.mjs learn --from docs/troubleshooting.md --out experience.jsonl
node scripts/dsh-evolve.mjs rules --experience experience.jsonl --out AGENTS.md
node scripts/dsh-evolve.mjs verify --experience experience.jsonl --dir ./my-plugin

verify runs the real check pipeline (dsh-plugin-doctor check <dir> by default, override with --cmd) and stamps every entry verified: true/false.

Self-improvement loop (v0.2.0)

Full evolution with reflection, profile installation and an evolution log:

# 1. reflect on a completed task/retrospective
node scripts/dsh-evolve.mjs reflect --task "make my plugin pass its own checks" --result retro.md --out experience.jsonl

# 2. evolve: verify rules against the real repo, install them into a dsh profile,
#    and append one round to EVOLUTION.md
node scripts/dsh-evolve.mjs evolve --experience experience.jsonl --dir ./my-plugin --profile web --log EVOLUTION.md

The rules land in <DSH_HOME>/profiles/web/AGENTS.md (previous file backed up), so the next session actually starts with the lessons. Every round is logged:

## Round 1 — 2026-08-15T…
- New rules: 5
- Verified: yes ✅
- Sources: examples/doctor-experience.md
- Command: dsh-evolve evolve --experience … --dir … --profile web

Dogfood: our doctor repo now passes its own check with 5 verified rules installed into a profile (see examples/demo/EVOLUTION.md).

Learning from failure logs (v0.3.0)

extract turns raw failure logs into conditional rules automatically — no manual retrospective needed:

node scripts/dsh-evolve.mjs extract --task "publish to npm" --from install.log \
  --out experience.jsonl --hint "configure the credential and retry"

Every ERROR/failed/ERR_ line becomes a rule: When "<error>" occurs, <hint>. Noise lines (progress/warnings/success) are skipped; rules are deduplicated and tagged.

audit keeps the rule library healthy:

node scripts/dsh-evolve.mjs audit --experience experience.jsonl

It reports totals, verified/unverified counts, tag and source distribution, and near-duplicate rule pairs (Jaccard ≥ 0.7) so overlapping lessons can be merged. Dogfood: extracted 6 rules from our real npm ENEEDAUTH failure log.

Tool learning (v0.5.0)

tool-verify is the "agent wrote a tool → is it ready?" gate:

node scripts/dsh-evolve.mjs tool-verify --dir ./my-plugin --out readiness.md \
  --experience experience.jsonl

It runs the real readiness pipeline (dsh-plugin-doctor check by default), renders a readiness report (checks table, pass/warn/fail, overall READY/ISSUES), and learns: every failing/warning check becomes an experience entry (stamped with the verification result). A tool that ships with failures therefore teaches the next tool how not to ship.

Dogfood: our doctor repo reports 8/8 PASS → READY ✅; before v1.10.1 this same gate caught its own lint bug.

Rule lifecycle (v0.6.0)

Rules get a health score and the library self-maintains — no manual cleanup:

node scripts/dsh-evolve.mjs score --experience experience.jsonl        # score + lifecycle table
node scripts/dsh-evolve.mjs prune --experience experience.jsonl --min-score 3 [--dry-run]
node scripts/dsh-evolve.mjs merge-duplicates --experience experience.jsonl [--threshold 0.7] [--dry-run]
  • score: verified count, usage count, recency → active / stale
  • prune: soft-retires low-score rules (retired: true, reason kept — auditable, never deleted)
  • merge-duplicates: near-duplicate pairs merge into the higher-scoring rule (mergedInto kept)

The library tells you what to keep, what to merge, and what to retire — that is the "memory that forgets usefully" half of long-term agent learning.

Cross-session reinforcement (v0.7.0)

Rules now carry usage and verification history:

node scripts/dsh-evolve.mjs touch --experience experience.jsonl --id EXP-001

Every successful verify/evolve/tool-verify increments verifiedCount; every touch (or the plugin's evolve_touch tool) increments usageCount. The health score already rewards both — so rules that are repeatedly verified and repeatedly used survive pruning, while stale rules fade. That is cross-session reinforcement: the library remembers what works.

Local recall (v0.8.0)

recall is a zero-dependency BM25-lite retrieval over the rule library — the retrieval half of #1881's Layer 2 without needing an embedding model:

node scripts/dsh-evolve.mjs recall --experience experience.jsonl --query "windows bash" --limit 5
# [3.28] EXP-003 ✅ — Never rely on /bin/bash as a default shellPath on Windows…

Verified and frequently used rules rank higher. Works offline, no model, no network — and it is the seam where a real embedding provider can plug in later.

Agent Growth Dashboard (v0.10.0)

Turn the rule library into something you can see and share:

node scripts/dsh-evolve.mjs dash --experience experience.jsonl --evolution EVOLUTION.md --out agent-growth.html

One self-contained HTML page (no dependencies, opens offline): rule growth curve, library health, what the agent learned, most-used rules, evolution timeline, and a shareable Agent Growth Report card. Bilingual.

Live example: examples/marathon/agent-growth.html — the actual growth diary from the self-evolution marathon.

One command for the whole loop:

node scripts/dsh-evolve.mjs loop --from docs/troubleshooting.md --out experience.jsonl --dir ./my-plugin

Evolution badge (v0.11.0)

One command turns the rule library into a README-ready SVG badge:

dsh-evolve badge --experience experience.jsonl --evolution EVOLUTION.md --out badge.svg

agent rules

Tiers by verified-rule count: starting (0) · learning (1-4) · building (5-9) · growing (10-19) · legend (20+). Add --json for the machine-readable summary plus the SVG payload.

How rules get into the agent

The generated block is plain AGENTS.md — drop it into your repo root or dsh profile rules, and every future session sees it:

## Self-evolution rules

> Auto-generated by dsh-evolve. Rules are traceable to their source and to the last verification run.

- [EXP-001] Never run recursive directory listings through node_modules; prefer Glob/Grep. _(source: docs/troubleshooting.md · ✅ verified)_
- [EXP-002] allowBuilds entries are required before git installs can run prepare scripts. _(source: docs/troubleshooting.md · ○ unverified)_

Design

  • Zero runtime dependencies, Node ≥ 18.
  • Experience entries are JSONL: { id, rule, source, tags, addedAt, verified, lastVerifiedAt }.
  • Dedup by rule hash; tags are inferred heuristics (install/crash/windows/test/memory/security/performance).
  • The verify step is pluggable: point --cmd at any command that exits 0 on success.

Why this fits dsh

Official discussion #1881 proposes triple-layer persistent memory; its Layer 1 is Git-tracked Markdown rules. dsh-evolve is the production and validation half of that layer — where rules come from, and how they stay honest. The ecosystem already has plenty of memory engines; it has no verification-driven rule evolution loop.

License

MIT

中文说明

面向 DeepSeek Harness 的、带验证的智能体自我进化循环。

项目已从 dsh-evolve 改名 dsh-rule-evolve(旧地址会跳转)。CLI 命令仍保留 dsh-evolve 以兼容。

智能体会反复踩同一个坑:上周修好的崩溃这周又 debug 一遍,Windows 的怪癖被重新发现,安装陷阱被再次触发。这个项目把这个循环变成一条可追踪的流水线:

经验(markdown)→ learn → 规则(AGENTS.md)→ verify(真实检查)

每条规则都带着来源和最近一次验证结果——进化全程可审计,没有经过检查的东西永远不会被「学到」。

快速上手

node scripts/dsh-evolve.mjs learn --from docs/troubleshooting.md --out experience.jsonl
node scripts/dsh-evolve.mjs rules --experience experience.jsonl --out AGENTS.md
node scripts/dsh-evolve.mjs verify --experience experience.jsonl --dir ./my-plugin

verify 会跑真实的检查流水线(默认是 dsh-plugin-doctor check <dir>,可用 --cmd 覆盖),并把每条经验盖上 verified: true/false

核心命令一览

| 命令 | 作用 | | --- | --- | | learn | 从 markdown 经验文档提取规则 | | rules | 把规则库渲染成 AGENTS.md | | verify | 用真实检查验证每条规则 | | reflect | 对完成的任务/复盘做反思 | | evolve | 验证规则 + 装进 dsh profile + 追加进化日志 | | extract | 从失败日志自动提取「当 X 出错时做 Y」的条件规则 | | audit | 规则库健康报告(去重、来源分布、近重复)| | tool-verify | 「agent 写了个工具 → 它能用吗?」就绪门禁 | | score / prune / merge-duplicates | 规则打分、软淘汰、合并近重复 | | touch | 记录规则被使用(跨会话强化)| | recall | 零依赖 BM25 检索规则库 | | dash | 生成可分享的 Agent 成长报告 HTML(双语)| | badge | 把规则库生成 README 用 SVG 徽章 | | loop | 一条命令跑完整循环 |

规则怎么进入 agent

生成的是纯文本 AGENTS.md,放到仓库根目录或 dsh profile 规则里,以后每个会话都能看到:

## Self-evolution rules
- [EXP-001] Never run recursive directory listings through node_modules; prefer Glob/Grep. _(source: docs/troubleshooting.md · ✅ verified)_

设计要点

  • 零运行时依赖,Node ≥ 18。
  • 经验条目是 JSONL:{ id, rule, source, tags, addedAt, verified, lastVerifiedAt }
  • 按规则哈希去重;标签是启发式推断(install/crash/windows/test/memory/security/performance)。
  • 验证步骤可插拔:用 --cmd 指向任意「成功即退出 0」的命令。

为什么契合 dsh

官方讨论 #1881 提出了三层持久记忆;其中第一层是 Git 托管的 Markdown 规则。dsh-rule-evolve 就是这一层的生产和验证半边——规则从哪来,以及它们如何保持诚实。生态里已经有很多记忆引擎,但还没有一个带验证驱动的规则进化循环。

许可

MIT

Similar plugins

dsh-continual-evolve

by ZK-Andy

Continual self-evolution plugin for DeepSeek Harness: versioned, auditable, rollback-safe harness state refined from session trajectories, with a benchmark-driven validation loop.

Tools & CapabilitiesDevelopment & InfrastructureManifest valid

19

MIT

TypeScript

Sep 4, 2026

dsh plugin --profile web add dsh-continual-evolve

by lispking

A self-evolving plugin for DeepSeek Harness (dsh). It observes how the agent runs, proposes improvements to its own assets via the LLM, validates each proposal inside a sandboxed trial agent, and appl

Workflow & AutomationManifest valid

3

MIT

TypeScript

Aug 25, 2026

dsh plugin --profile web add dsh-auto-evolve

by GraySilver

让 Agent 的工作方式可组合、可审查、可持续改进,最终实现 Agent Self Evoling。 DeepSeek Harness Web plugin with composable task controls and isolated, human-reviewed self-evolution.

Tools & CapabilitiesManifest valid

206

117/wk

MIT

TypeScript

Sep 1, 2026

dsh plugin --profile web add @graysilver/dsh-evolve-modes

by klarkxy

发现、探索、审查、升级。DSH,进化永不停歇!

Tools & CapabilitiesManifest valid

3

TypeScript

Sep 4, 2026

dsh plugin --profile web add dsh-plugin-autoevo

Watches agent execution traces and fires an LLM review at every successful turn end when signals trip, crystallizing reusable workflows into registered skills that improve progressively with later run

Tools & CapabilitiesManifest valid

0

dsh plugin --profile web add dsh-skill-evolution

by AaronandWork

Evidence-first conclusion gate that cross-checks first-hand claims against a durable per-session tool-activity index, blocks unverified guesses and tracks blocked-versus-converted metrics.

Development & InfrastructureManifest valid

3

MIT

JavaScript

Sep 12, 2026

dsh plugin --profile web add @aaronandwork/dsh-evidence-gate