dsh-behuman
Manifest valid★ 3Long-term memory and self-evolving skills for the DeepSeek Harness · DeepSeek Harness's Long-Term Memory and Self-Evolving Capabilities —— Plain Markdown on disk, no vector store
dsh-behuman
English | 中文
Long-term memory and self-evolving skills for the DeepSeek Harness.
People who work together for a month know things about each other — what the other cares about, what they have already ruled out. dsh does not: tell it your project uses PostgreSQL and it asks again next session.
This plugin fills that gap.
What it does
- Remembers you. Your preferences, your corrections, your project's state — carried across sessions.
- Gets better on its own. A working approach gets written down as a skill, so the next similar task starts already knowing.
- Nothing to operate. No commands to type, no memory to manage. Install it and it works.
How it works
Two things run once it is installed.
1. While you are talking, the agent writes things down
It is already in the conversation, so noticing something worth keeping costs it nothing — it just writes a file. No extra model call.
When it writes:
| A memory, when | A skill, when |
|---|---|
| you mention a preference, a habit, or a project convention | it finishes something involved (5+ tool calls) |
| you correct it and it then does it your way | it fixes a tricky error |
| it works out an environment fact worth keeping | it discovers a workflow worth reusing |
Both columns sit on one condition: it has to have actually worked. An error that is still broken, or a correction it has not yet applied successfully, is not written down. A "method" summarised from an unsolved problem usually does not survive being used the next time either.
One more rule: write facts, not commands. "The user prefers short answers" gets written; "always answer briefly" does not. The second one gets re-read as an instruction in a later session and can override what you actually want then.
2. When it did not write anything, it goes back and looks
Models forget. There is no way around that. So after 10 tool calls with nothing written (the count is configurable), it runs a review pass over that stretch of conversation to see what was missed.
This is the only part of the plugin that costs an extra model call, and it only runs while you are not working.
Both writers go through the same checks
Whether it can be written at all, whether it duplicates something, what the file is called, whether the catalog needs rebuilding — no step is skipped. The review pass gets no privileges.
The whole flow
WRITE
├─ as you talk: written on the spot
└─ catch-up: a later pass fills the gaps
│
▼ same checks either way
STORE
├─ memories/ one .md per fact
└─ skills/ one SKILL.md per class of task
│
▼
RECALL
└─ the catalog rides in the prompt; the agent opens a file when a line earns it
There is no retrieval. Nothing is searched and your question is never used as a query — the catalog is simply part of the context, and opening a file is the agent's own call. So remembering costs no extra time.
The catalog does take up room, though, and it keeps growing. One line per memory, in front of the agent every turn. A few dozen is nothing; a few hundred is real money. That is the known ceiling of this design — the way past it is a searchable index generated from these Markdown files, not a database that replaces them.
Two more things
- Saying the same thing twice strengthens a memory. When a new memory closely overlaps an existing one, it updates that one instead of adding a second. Something you keep bringing up is evidence that it matters.
- Nothing is hidden from you. Memories are ordinary Markdown files. Open them, read them, edit them, delete them.
Install
dsh runs one profile at a time — a named set of plugins and settings that you choose when you
launch it. The ones that ship with dsh are web, tui, and headless. Install into the one you
actually launch with:
dsh plugin --profile web add @goodddgrades/dsh-behuman # if you run `dsh web`
dsh plugin --profile tui add @goodddgrades/dsh-behuman # if you run `dsh tui`
That is the whole install, and there is nothing to enable afterwards. The profile is created the first time you use it, so this works even if you have never launched it before.
If you use more than one profile, install into each of them.
Or hand it to your agent
If you are already in a dsh session, you do not have to type any of that:
Install the dsh-behuman plugin — https://github.com/goodddGrades/dsh-behuman
Your agent can read that page and run the install itself.
Installing straight from GitHub builds the plugin on your machine, so dsh will stop and ask you to
authorize that once. It tells you exactly what to add — the build is this package's own prepare
script, and nothing runs it until you say so.
Where your memories live
<your working directory>/.dsh/memory/
├── MEMORY.md the catalog — one line per memory
└── memories/ the memories themselves, one Markdown file each
Plain text, yours to read and edit. Each project directory gets its own memory, so switching projects switches what the agent remembers.
Skills are written to .agents/skills/ — the same place hand-written skills live, in the format
dsh already reads.
Auto-written skills are marked. Each one carries this in its frontmatter:
metadata:
generated-by: dsh-behuman
So you can tell at a glance which skills the agent wrote and which ones you did. It updates its own; it never touches yours — a hand-written skill in the way is a refusal, not an overwrite.
Configuration
Every option has a default; you only need this if you want to change something.
| Option | Default | What it does |
|---|---|---|
dir | .dsh/memory | Where memories are kept. |
skillsDir | .agents/skills | Where skills are written. |
nudgeInterval | 10 | Tool calls without a write before the agent double-checks itself. 0 turns that off. |
reviewBackend | spawn | Subagent used for that double-check. Leave it alone. |
reviewTimeoutMs | 60000 | How long that double-check may take. |
reviewMaxTokens | 2048 | Its output limit. |
License
MIT — see LICENSE.
Comments
Loading…
Similar plugins
by menotbobbybrown
Persistent long-term memory for DeepSeek Harness: a JSON store of typed entries (fact, preference, entity, rule, episodic) exposed as the memory_remember and memory_recall agent tools, with recall ran
★ 0
MIT
TypeScript
Sep 8, 2026
dsh plugin --profile web add @modelnorth/dsh-plugin-memoryby chenzheshushi-commits
Self-evolving memory + skill lifecycle for DeepSeek Harness — durable cross-session memory with zero-token deterministic recall, tiered approval, reinforcement learning from repetition, and anti-bloat
★ 10
↓ 29/wk
MIT
JavaScript
Nov 9, 2026
dsh plugin --profile web add dsh-evolveby ilaomianyang
Long-term associative memory for DeepSeek Harness: raw episodes, typed memory cards and entity pages in a plain-text vault you own. No auto-injection, no embeddings, no binary store.
★ 0
MIT
JavaScript
Nov 3, 2026
dsh plugin --profile web add @ilaomianyang/dsh-memory-graphby madage
DeepSeek Harness long-term memory & self-evolving plugin: L0 capture -> L1 memory extraction -> L2 scene grouping -> L3 user persona, auto recall injection + skill synthesis, fully local.
★ 8
↓ 205/wk
MIT
TypeScript
Aug 15, 2026
dsh plugin --profile web add dsh-self-improvedby tluoluo
Persistent memory for DeepSeek Harness: per-conversation notes, selective injection, project memory, semantic Vault search + automatic retrieval.
★ 4
↓ 168/wk
MIT
TypeScript
Aug 16, 2026
dsh plugin --profile web add dsh-persistby guyuefangyuanl
Cross-session persistent memory for the DeepSeek Harness: a model-facing memory tool, an always-on index section, and a bundled maintenance skill.
★ 3
↓ 1.5k/wk
MIT
JavaScript
Aug 21, 2026
dsh plugin --profile web add dsh-memory