Bundle
@max-null/dsh-habit
Self-learning habit engine for the DeepSeek Harness — detects user-correction signals, judges habits with a low-cost model on threshold, settles candidates behind a two-level human gate
- Source
- Max-Null
- stars
- 2 stars
- License
- MIT
- Updated
- Updated 11 days ago
Readme
# @max-null/dsh-habit
本插件属于 **`@max-null/*` 插件系列**——这一系列共同构成 **[SSID(思灵 · Seek Soul in Darkness)](https://github.com/Max-Null/seek-soul-in-darkness)** 桌面体验。SSID 是整合它们的盒:`dsh-capture` · `dsh-chat-rail` · `dsh-chinese-thinking` · `dsh-draft-polish` · `dsh-guardian` · `dsh-habit` · `dsh-memory` · `dsh-node-appearance` · `dsh-plugin-center` · `dsh-quick-toolbar` · `dsh-skill-mcp-center` · `dsh-ssid-panels` · `dsh-ssid-zh-ui` · `dsh-achievements`。
This plugin belongs to the **`@max-null/*` family** — a set of plugins that together form the **[SSID (思灵 · Seek Soul in Darkness)](https://github.com/Max-Null/seek-soul-in-darkness)** desktop experience.
Self-learning habit engine for the DeepSeek Harness — observes user-correction
signals from session events, judges habits with a low-cost model on threshold,
and settles candidates behind a two-level human gate. No new agent role: the
judgment is an event-driven plugin, immune to context decay.
## The loop
```
① observe session/event → correction-signal detection (deterministic, zero-token)
② judge >=3 signals in one session → one flash call (evidence slices + existing habits)
③ settle candidate zone → user confirms → dsh-memory remember() (suggested)
→ user confirms again → auto → recall injection
```
## Compose
```yaml
- id: habit
name: '@max-null/dsh-habit'
```
Requires `storage` and `llm` in the host composition (dsh-base ships both).
Installs as a bundle: `dsh plugin --profile <name> add @max-null/dsh-habit`.
## Service
- `ctx.habit` — the engine:
- `snapshot()` → candidates (newest first)
- `confirm(id)` / `discard(id)` → first-level human gate
- (the second gate is dsh-memory's own suggested→auto confirmation)
## Config
| Field | Default | Meaning |
|---|---|---|
| `signalThreshold` | `3` | Correction signals before one judgment call |
| `provider` | `deepseek-official` | Judgment model provider |
| `model` | `deepseek-v4-flash` | Judgment model (cheap, deterministic) |
| `storageRoot` | `$DSH_HOME/storages/habit` | JSON storage root |
## Design notes
- **Deterministic observation, LLM on demand**: correction detection is a
fixed phrase list + length cap (task descriptions are not corrections);
the LLM only runs when a session accumulates enough signals.
- **Two-level human gate**: candidates must be confirmed in the UI AND then
pass dsh-memory's own suggested→auto gate. The model can never promote its
own habits.
- **Narrow input for quality**: the judgment call gets at most 5 evidence
texts plus the existing habit list — judgment quality comes from precise
context, not volume.
## Develop
```sh
npm install --legacy-peer-deps
npm test
npm run typecheck
npm run build
```
## SSID 系列
Install
dsh plugin --profile web add github:Max-Null/dsh-habit
Profile: web
With the hub plugin installed, ask your agent to install it by name — it resolves the same plan shown here.
dsh plugin --profile web add github:stvlynn/dsh.fish#path:packages/dsh-plugin-hub
install max-null-dsh-habit from the hub
- This package builds from source on install. pnpm will ask you to allow its build script — that is permission to run the package’s code on your machine, outside the agent sandbox. Only allow sources you trust.
- This source has no pinned commit, so a later push upstream changes what installs. Prefer pinning a commit.