dsh-compound-memory
DeepSeek Harness bundle that launches the compound-memory stdio MCP server, mounts the bundled compound-memory skill, and injects a short once-per-session usage reminder.
Who this is for
- anyone who wants the agent to remember long-running context
Install
dsh plugin --profile web add dsh-compound-memory
Sandbox test results
| Stage | Result |
|---|---|
| T0 static check | — |
| T1 install | ✓ |
| T2 list | ✓ |
| T3 mount | ✓ |
| T4 boot | — |
Four stages run in an isolated sandbox: install (network on) → list → mount → boot (last three with no network).
README
dsh-compound-memory

English | [中文](#中文)
DeepSeek Harness bundle that launches the existing compound-memory MCP server (uvx --from compound-memory compound-memory-server), mounts the bundled skills/compound-memory skill, and injects a short once-per-session usage reminder. It does not reimplement memory, it does not add a sixth MCP tool, and the server still has no LLM (ADR-0001). This wrapper adds none. There are no install, lifecycle, or postinstall scripts.
package.json declares dsh.bundle.patch = ./cordis.patch.yml. That file inserts three rows: the in-box @deepseek-ai/dsh-mcp-client row (mcp-compound-memory), this package's own plugin (compound-memory-rules → dsh-compound-memory → index.js), and an in-box @deepseek-ai/dsh-skill-filesystem row (compound-memory-skill) whose only root is this package's skills/. Do not install that client yourself: DSH 0.2 already ships it, and a separately installed 0.1 client will not match (discussion #8202). This package declares no @deepseek-ai/* dependencies. The rules module does not import @deepseek-ai/cordis or the MCP client: Cordis calls apply(ctx), and the publish guide says to pin a peer only when the plugin must share that package's instance. engines.dsh is >=0.2.0-rc.1 <0.3.0-0 so current 0.2 prereleases match and 0.3 prereleases do not (publish guide, market index).
MCP tool · Name inside DSH
memory_search · mcp__compound-memory__memory_search
memory_get · mcp__compound-memory__memory_get
memory_write · mcp__compound-memory__memory_write
memory_link · mcp__compound-memory__memory_link
memory_feedback · mcp__compound-memory__memory_feedback
memory_search returns an object whose hits field is an array.
Install
Requires the dsh CLI and uv / uvx on the PATH of the process that starts dsh. The first uvx run needs network access to fetch compound-memory from PyPI. uv supplies the tool's Python; a system Python is not required.
Package version 0.1.8, published on npm as dsh-compound-memory:
dsh plugin --profile web add dsh-compound-memory
From GitHub:
dsh plugin --profile web add github:chinwe/dsh-compound-memory
From a checkout of this repository (the plugin root, not a subdirectory):
dsh plugin --profile web add /absolute/path/to/dsh-compound-memory
Git install does not need allowBuilds: the package has no prepare script. Restart dsh. dsh --profile web --dump-config should show a # == dsh-compound-memory layer and the mcp-compound-memory, compound-memory-rules, and compound-memory-skill rows.
If the store does not exist yet:
uvx --from compound-memory compound-memory init
Environment
Set these on the process that launches dsh. The patch reads them with !!js when config loads. Unset or blank uses the default. Nothing here is a secret. The stdio child starts from a scrubbed parent environment; configured env is merged on top.
Variable · Default when unset or blank
COMPOUND_MEMORY_AGENT_ID · agent-dsh
COMPOUND_MEMORY_ROOT · $HOME/.agents/memory (optional; the Python server expands a leading $HOME or ~)
agent-dsh is this host's stable id. Set COMPOUND_MEMORY_AGENT_ID before starting dsh when this process should be a different host. A later patch layer replaces the whole config. To point command at an absolute uvx, restate the row in ~/.dsh/profiles/web/cordis.patch.yml (same fields: serverName, transport, command, args, env, failOnStartupError).
Usage reminder
compound-memory-rules listens on agent/pre-step with { prepend: true }. On the first eligible enter of a live agent (the decision is enter and the step signal is not aborted) it appends one user-role message. Later steps of that agent do not append it again. A new agent object whose session log already contains the reminder (resume, or this process restarted) does not get a second copy. The listener does not read the memory store and does not call a model (ADR-0001).
The message text is RULES in [index.js](index.js) (356 characters, under the 400-character Claude SessionStart budget). It states:
COMPOUND_MEMORY_AGENT_IDdefaults toagent-dsh(overridable); pass that same id assourceandagentmemory_searchbefore non-trivial work;memory_feedbackafter an adopted hit compounds the store- in a repo, prefer project-scoped memories
- five MCP tools only, named
mcp__compound-memory__memory_*; this package does not reimplement them
The source is { kind: 'plugin:dsh-compound-memory', form: 'instructions' }, and the message has a fresh id. Session format v4 rejects the retired { kind: 'plugin', plugin } wrapper and fails the whole turn (discussion #8432). plugin:dsh-compound-memory is the producer-owned kind the v3→v4 rewriter would derive for this package. A static systemPrompt.section was not required: pre-step accepts the message, and injecting once keeps it out of every l
…(truncated)
Rendered from the README published on npm. Formatted only, not edited.
Embed the badge
Two badges, each using its own site's identity: left is the **standard** (published by DSHIO), right is the **testing organization** (deepseekbase, which ran the inspection). Each links to the standard text and the test report.
Markdown(推荐,两个一起)
[](https://dshio.org/10/) [](https://deepseekbase.com/zh/plugins/dsh-compound-memory/)
Note: this is not a certification. DSHIO/T 32 is not in effect.
Versions
Published on npm::10,最后更新 2026-10-30
Links
Frequently asked
dsh plugin --profile web add dsh-compound-memory in DSH, or paste the package name into the DSH Desktop plugin page.dsh --version), then look at the first error in the test-results section. If it still fails, open an issue on the repository.dsh plugin --profile web remove dsh-compound-memory.