DeepSeek Harness Plugin · 记忆宫殿
Cross-session long-term memory on plain local SQLite. No external service, no API key, no Docker — one command and it works. Hybrid FTS5 + local-vector retrieval, an evidence gate, full provenance audit, and SM-2 spaced repetition, behind 23 narrow-parameter tools and a zh / en / ru panel.
dsh plugin --profile web add @kenz1117/dsh-engram
Most memory plugins want you to stand up infrastructure first. Three mainstream shapes, side by side.
| dsh-engram | Server-based (Postgres / pgvector / Milvus / Python service) | File-based (plain Markdown memory) | |
|---|---|---|---|
| Setup | One npm command, works immediately | Docker + database + vector store + migrations | One npm command |
| External deps | None — offline embeddings, degrades to keyword-only | Required, usually plus an LLM API key | None |
| Agent tools | 23 — save, search, facts, timelines, audit, export, distill, beliefs, review | Usually 1–3 (search only) | Usually 0–1 |
| Evidence gate | Yes — enforced in code, three conditions required | Generally none | Generally none |
| Audit | Session/turn/seq provenance, supersede chains, contradiction edges, full op_log | Usually logs only | None |
| Spaced repetition | SM-2 — cues only, never the body | None | None |
| Injection safety | Protocol tags, redaction on write, capture placeholders | None | None |
| Portability | Markdown / JSON export + Obsidian / Logseq mirror | Varies | It is already files |
Capture, retrieval, adjudication, consolidation — all local, all auditable.
Six things no other memory plugin in the store does at once.
Search hits only mean “relevant”, not “enough to answer”. engram_assess is enforced in code: the claim, a valid ref from the same batch, and nextStrategy=answer must all hold.
engram_review_queue hands out coordinates and placard cues but never the body — recall first, reveal later, then self-grade to drive the SM-2 schedule.
Every memory records its source session, turn and event seq. Supersede chains, contradiction edges and a complete op_log are queryable.
user.db follows you; project-<hash>.db follows the repository. Preferences travel with the person, conventions travel with the repo.
Protocol tags on every recall, redaction of keys and PII before write, and capture placeholders that break the self-reinforcement echo loop.
Export Markdown or JSON, with a redacted view safe to share — or mirror to an Obsidian / Logseq friendly directory of linked notes.
Nine views in the sidebar: today, library, corridor, spiral, episodes, entities, beliefs, log, ops.
Today — KPI hero, six-month activity heatmap, room directory, refurb list.
Refurb — every suggestion shows its full reasoning and the complete memory text, read and acted on in place.
Library — the whole store: filter by room, state and content; sort by time or by tour route.