Back to catalog

Amengclass /

dsh-memory

Manifest verified

Persistent, model-editable memory/notes store for DeepSeek Harness. Adds memory_set/get/delete/search tools backed by ctx.storageDomain so facts survive across sessions (dsh-plugin).

0 Stars0 Forks0 IssuesN/A Community rating0 Confirmed installs
READMESource: main@138979eb

dsh-memory

English | 中文

A persistent, model-editable memory/notes store for DeepSeek Harness. It gives the agent a first-class way to durably write, fetch, and search "facts it wants to remember" that survive across sessions — something conversation-history search, todo_write, settings, and static skill docs do not cover.

It is a community dsh-plugin: an installable Cordis bundle shipping as plain ESM JavaScript (index.js + index.d.ts), so it installs from a git host or npm with no build step.

Records live in one storage domain (dsh_memory) routed through the built-in ctx.storageDomain seam — not hand-rolled files — so they persist under the deployment's configured backend (json/sqlite) and emit domain/changed for live UIs.

Why it is not redundant

Existing capability Difference from dsh-memory
session_search / session_event_* Only read past conversation; cannot store durable facts
todo_write Task-status tracking, not knowledge
settings / credentials Operator config, not agent-mutable knowledge
skills Static docs; the model cannot write to them
goal / schedule Objectives / reminders, not a knowledge store
MCP memory server Requires an external server/account; this is a lightweight built-in

Tools

Tool Purpose
memory_set Durably upsert a fact/note under a stable key (with optional tags).
memory_get Read one entry by key, or list all when the key is omitted.
memory_delete Delete an entry by key (idempotent).
memory_search Case-insensitive substring search over key/value/tags, filterable by required tags.

Example

user:  From now on, don't touch public/ in this project.
model: memory_set key="project/convention" value="Do not modify public/" tags=["project","rule"]
      → [memory] saved "project/convention" (2 tags)

(next session)
user:  Continue on that project.
model: memory_get key="project/convention"  → "Do not modify public/" → works accordingly

Install

Install into a Harness profile. From a checkout:

dsh plugin --profile web add ./dsh-memory

or from this repository (no build step required — the package ships JavaScript):

dsh plugin --profile web add github:Amengclass/dsh-memory

The storage backend is provided by your deployment (web profiles mount @deepseek-ai/dsh-storage-json with backend: json by default). This plugin only declares a storage domain, so no backend changes are needed.

Configuration

Schemastery-validated config, overridable from your profile patch:

Key Default Meaning
domainName dsh_memory Name of the storage domain (must match /^[a-z][a-z0-9_]*$/).
maxItems 1000 Hard cap on stored entries.
maxKeyLength 120 Max key length; longer keys are rejected.
maxValueLength 10000 Max stored value length; longer values are rejected.
- insert:
    - id: dsh-memory
      config:
        maxItems: 500

Dependencies & license

  • Runtime peer dependencies (provided by the harness's own node_modules): @deepseek-ai/dsh-storage-domain, @deepseek-ai/dsh-tools, @deepseek-ai/schemastery, zod.
  • No runtime build toolchain; no Node addons.
  • MIT licensed — see LICENSE.

Contributing / topic

Published under the dsh-plugin GitHub topic. PRs and issues welcome.

COMMUNITY RATING

/ 5

No ratings yet

No sign-in required · one vote per visitor

COMMENTS

Community comments

No comments yet. Be the first to write one.