Amengclass / dsh-memory

已收录

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).

main模型工具会话 查看源代码

安装

npx -y @deepseek-ai/dsh plugin --profile web add github:Amengclass/dsh-memory

此安装命令根据 GitHub 仓库地址生成,是未经验证的安装起点。

README

维护者编写的文档快照。

在 GitHub 查看 ↗
提交版本 138979e同步于 2026年8月18日

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 capabilityDifference from dsh-memory
session_search / session_event_*Only read past conversation; cannot store durable facts
todo_writeTask-status tracking, not knowledge
settings / credentialsOperator config, not agent-mutable knowledge
skillsStatic docs; the model cannot write to them
goal / scheduleObjectives / reminders, not a knowledge store
MCP memory serverRequires an external server/account; this is a lightweight built-in

Tools

ToolPurpose
memory_setDurably upsert a fact/note under a stable key (with optional tags).
memory_getRead one entry by key, or list all when the key is omitted.
memory_deleteDelete an entry by key (idempotent).
memory_searchCase-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:

KeyDefaultMeaning
domainNamedsh_memoryName of the storage domain (must match /^[a-z][a-z0-9_]*$/).
maxItems1000Hard cap on stored entries.
maxKeyLength120Max key length; longer keys are rejected.
maxValueLength10000Max 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.

仓库信息

开发语言
JavaScript
许可证
MIT
最后更新
2026年8月14日 01:41

谨慎安装

请检查源代码、权限、生命周期脚本、依赖与网络访问;不受信任的插件应先在隔离环境中测试。