中文EN

@jayyuen66/dsh-lesson-loop

memorynpmMIT

把拦截拒绝、门禁失败与人工差评沉淀为项目教训,只把人工确认过的规则注入该项目之后的新会话;它不注册模型工具,通过设置卡评审规则。

下载量 / Downloads
419

安装

dsh plugin --profile web add @jayyuen66/dsh-lesson-loop

沙箱测试

这个插件还没测过。提交测试 →

README

<p align="center">

<img src="https://cdn.jsdelivr.net/gh/JayYuen666/dsh-lesson-loop@main/icon.svg" width="96" height="96" alt="dsh-lesson-loop logo" />

</p>

<h1 align="center">dsh-lesson-loop</h1>

<p align="center"><em>Guard denials, gate failures and human thumb-downs become project lessons; only a rule a human confirmed is injected back into the model at session start.</em></p>

<p align="center">

<a href="https://www.npmjs.com/package/@jayyuen66/dsh-lesson-loop"><img src="https://img.shields.io/npm/v/@jayyuen66/dsh-lesson-loop?style=flat-square&logo=npm&logoColor=white" alt="npm version" /></a>

<a href="https://www.npmjs.com/package/@jayyuen66/dsh-lesson-loop"><img src="https://img.shields.io/npm/d18m/@jayyuen66/dsh-lesson-loop?style=flat-square" alt="npm downloads (total)" /></a>

<a href="https://github.com/JayYuen666/dsh-lesson-loop/actions/workflows/ci.yml"><img src="https://img.shields.io/github/actions/workflow/status/JayYuen666/dsh-lesson-loop/ci.yml?branch=main&style=flat-square&label=ci" alt="ci" /></a>

<img src="https://img.shields.io/badge/license-MIT-4c1?style=flat-square" alt="MIT" />

<img src="https://img.shields.io/badge/node-%3E%3D24.9-4c1?style=flat-square&logo=nodedotjs&logoColor=white" alt="node" />

<img src="https://img.shields.io/badge/dsh-%5E0.2.1--rc.5-658EFF?style=flat-square" alt="dsh" />

<a href="https://github.com/deepseek-ai/deepseek-harness"><img src="https://img.shields.io/badge/powered_by_dsh-4D6BFE?style=flat-square&logo=deepseek&logoColor=white" alt="powered by dsh" /></a>

</p>

<p align="center">

<img src="https://skillicons.dev/icons?i=typescript,nodejs,react,vitest,githubactions" alt="tech stack" />

</p>

<p align="center">

<a href="https://github.com/JayYuen666"><img src="https://img.shields.io/badge/GitHub-JayYuen666-181717?style=flat-square&logo=github&logoColor=white" alt="GitHub" /></a>

<a href="mailto:cqwkkj@gmail.com"><img src="https://img.shields.io/badge/Email-cqwkkj@gmail.com-EA4335?style=flat-square&logo=gmail&logoColor=white" alt="Email" /></a>

<a href="https://twitter.com/JayYuen666"><img src="https://img.shields.io/badge/Twitter-X%2FJayYuen666-000000?style=flat-square&logo=x&logoColor=white" alt="Twitter/X" /></a>

<a href="./README.zh-CN.md"><img src="https://img.shields.io/badge/lang-简体中文-658EFF?style=flat-square" alt="简体中文" /></a>

</p>

A self-evolution loop for dsh: one lesson bus the guard plugins report to, one rule library a human curates, and armed rules injected into every new session of their project.

<img src="https://api.iconify.design/lucide/file-text.svg?color=%23658EFF&height=22" height="22" width="22" align="absmiddle" alt="" /> Contents

  • [What it does](#what-it-does)
  • [Install](#install)
  • [Verify it is live](#verify-it-is-live)
  • [What it does not provide](#what-it-does-not-provide)
  • [Enabling it in dsh](#enabling-it-in-dsh)
  • [The lesson bus](#the-lesson-bus)
  • [Settings](#settings)
  • [Public interface](#public-interface)
  • [Data and privacy](#data-and-privacy)
  • [Known boundaries](#known-boundaries)
  • [FAQ](#faq)
  • [Development](#development)
  • [License](#license)

<img src="https://api.iconify.design/lucide/shield.svg?color=%23658EFF&height=22" height="22" width="22" align="absmiddle" alt="" /> What it does

  • One bus, no coupling. Sibling plugins report through the optional lessonLoop service; a profile without this package only drops those reports. The host half provides the service, the client half renders a web card holding the switches and the rule review desk.
  • Sink. Each report appends one line to the event stream and merges into a candidate card keyed by (project, category, signature); at promoteThreshold that key is marked ready for review.
  • A machine never promotes a rule. Status armed is only ever a human decision — the card's arm action writes it, and the startup migration merely carries an existing armed state onto a merged card. reject / demote / archive / edit / revive are human actions too.
  • Remind. A project-agnostic standing section keeps the loop visible, and each root session receives the full text of its project's armed rules at agent/created. Subagent sessions are skipped.
  • Zero model tools, zero HTTP routes of its own. The card's data plane is the official Typert Remote namespace lessonLoopRules, reached through the host /api gateway.

How a rule is judged

  • Three counters answer three different questions: violation (the scenario fired and was broken), suppressed (the scenario fired and was followed, driven by pass), samples (the rule was present and not violated).
  • The only ratio is violation / (violation + suppressed); samples is exposure and never a denominator.
  • samples counts a durable session once even when it is resumed: duplicate disposal edges are deduplicated, so reopening a session does not inflate exposure.
  • Demotion needs a positive suppressed, violation at demoteThreshold, real evidence at demoteMinSamples, and the ratio at demoteRatio.
  • A rule with zero clean hits whose scenario keeps firing is undeterminable: neither the ratio nor the decay can retire it, so it stays armed for a human. One pass clears the flag.

<img src="https://api.iconify.design/lucide/package.svg?color=%23658EFF&height=22" height="22" width="22" align="absmiddle" alt="" /> Install

dsh plugin --profile web add @jayyuen66/dsh-lesson-loop

Remove with dsh plugin --profile web remove @jayyuen66/dsh-lesson-loop. The package is on the public npm registry, so installation needs no credentials.

  • Node.js >= 24.9, host dsh on the rolling ^0.2.1-rc.5 || ^0.2.2-alpha.3 window. The plugin's own floor is engines.node (>=24.9.0), which is the host's floor from 0.2.2-alpha.2 up: a host below it never starts, so a lower claim here would promise an environment nobody can install into. The requirement the host reads

…(truncated)

以上内容来自 npm 上的 README,我们只做格式化,不改内容。

版本

npm 上共发布:12,最后更新 2026-11-05

链接

GitHub · Homepage · npm

同类插件