dsh-fish-memory: setup, recall test and limits

Concepts & ArchitecturePublished 2026-11-01Author: DeepSeek Plugin Market
dsh-fish-memorymemory pluginlong-term memoryrecallDeepSeek Harness
dsh-fish-memory adds fading long-term memory to DeepSeek Harness: each entry carries time and freshness, while long-term facts never expire.

The distinctive part of dsh-fish-memory is not how much it remembers, but that it forgets. Each memory carries time and freshness; frequently used entries stay, unused ones fade. Personas, preferences, and agreements can be marked as long-term facts that skip decay.

The problem: compaction erases the beginning

Long sessions lose early content the moment they are compacted. Context windows are finite and compaction is unavoidable; ordinary memory plugins store content but do not decide what is still worth keeping.

dsh-fish-memory gives memory a lifecycle. It selects worthwhile content by turn, recalls by evidence and freshness when needed, and lets low-value entries fade so the store does not become a landfill (source).

It solves continuity between sessions, not team knowledge management. The boundary matters: one is personal long-term conversation, the other requires permissions, audit, and consistency.

Three concepts: entry, freshness, long-term fact

Understand three concepts and the configuration makes sense.

ConceptRoleWhat it affects
Memory entryOne recallable itemRecall scope and answer detail
FreshnessCurrent validity of an entrySelection and fading
Long-term factNon-expiring memoryPersona, preferences, agreements

The memory entry is the unit, and freshness is the decay mechanism. Each entry carries time and source; recall ranks by relevance and freshness. Older, less-used entries score lower; recall or confirmation can raise freshness. It is not simply "newer is better" but "more used is more important."

Long-term facts are manual exemptions. Personas, preferences, and agreements do not decay; but exemption is not permanent correctness, and stale agreements still need manual updates.

Install and enable

Installation is the normal plugin flow; enabling is per session.

  1. Open Settings, Plugin Market, search dsh-fish-memory, verify owner and source, then install; or use dsh plugin --profile web add.
  2. Restart so the plugin registers during startup.
  3. Open a new session and enable memory there; an old session does not reload.
  4. Open the memory list and confirm the panel is visible and the session is enabled.
  5. Send a message with a personal preference as the first recallable entry.

Enabling is per session, not global. Different sessions can have different memory states; assuming otherwise leads to "no memory in the new session."

Verify with one session first. Multiple sessions at once mix recall results and make it harder to tell whether the plugin works.

Parameters: decay, recall, selection

The goal is to remember longer or forget faster, not to maximize every value.

  1. Decay speed: faster fades old memories quickly for short projects; slower keeps more history for long companionship.
  2. Recall count: more entries crowd the context; start small and adjust by answer quality.
  3. Selection cadence: how often to pick content worth keeping; too frequent stores noise, too sparse misses key details.
  4. Long-term facts: mark only genuinely stable content, or temporary decisions become permanent.

Tune recall count before decay. Recall affects answer quality directly, while decay affects long-term retention; the reverse order makes attribution hard.

Change one parameter at a time. Changing decay and recall together makes results unattributable; keep a change record for rollback.

Recall test: did it really remember?

A correct answer is not proof of recall. The model may infer from current context or guess; check evidence.

  1. Pick a detail that appeared only in an earlier session. A naming decision, a preference, or an agreement.
  2. Ask a related question in a new session without mentioning the old session; see whether the detail appears.
  3. Check the last recall record. The corresponding entry should appear; without it, the model inferred or guessed.
  4. Run a control: disable memory and ask again; a clear drop proves the plugin mattered.

The recall record is the hardest evidence. Answer and record must both match; the answer alone can be misled by common knowledge.

Use low-common-knowledge details. A fact the model already knows cannot distinguish memory from knowledge; choose something only you and the model share.

Delete, backup, migrate

Memory data is plain JSON with automatic backups before changes. That makes it readable and portable, and also means no trash bin.

  1. Delete one entry: remove it from the memory list and confirm the deletion record; fading is not deletion.
  2. Back up: the plugin backs up before changes, but copy important milestones elsewhere manually.
  3. Migrate: copy the JSON file to the new machine and confirm paths before starting.
  4. Import an old archive: back up the current store first to avoid overwriting it.

Fading and deletion are different. A faded entry may still be recalled; deletion removes it. Decide which one you want before cleaning.

Plain text is auditable. You can open the JSON and inspect entries and timestamps; the downside is that manual edits can break the structure, so back up first.

Compared with dsh-memory and mnemon

All three remember across sessions, with different priorities.

PluginFocusBest for
dsh-fish-memoryLong-term memory with decayPersonal long conversations
dsh-memoryGeneral memory storageStable basic memory needs
mnemonMemory agent and organizationStructured organization and retrieval

The advantage of fish-memory is forgetting, so do not install all three. The store does not grow without bound and recall quality holds over time; the cost is parameter tuning and unsuitability for strong consistency. Multiple memory plugins inject at once and interfere; choose one as the primary store and disable the rest.

Poor fits

dsh-fish-memory is for personal sessions, not a team knowledge base.

  1. Multi-user sharing and permission isolation: memory must be isolated per user, and the plugin does not provide an account system.
  2. Compliance retention and audit: it needs immutable, traceable storage; local JSON does not qualify. Strongly consistent knowledge bases with versions and conflict handling also need a dedicated solution.

Clear boundaries prevent misuse. Treating session memory as a knowledge base ends in "it forgets" or "it remembers wrong," which blames the tool for the wrong job.

Next steps

Enable memory in one session and verify recall before adopting it. To compare memory plugins, read What dsh memory plugins exist. For the division between memory and session history, read Memory plugin vs session history. For the second round of plugins, read Memory plugins round two.

Sources: dsh-fish-memory plugin page, DeepSeek Harness docs, dsh CLI README

FAQ

What makes dsh-fish-memory different from a normal memory plugin, and why do memories fade?

dsh-fish-memory adds a timestamp and freshness to each memory, so entries fade with time and use. Personas, preferences, and agreements can be marked as long-term facts that never expire.

Where does dsh-fish-memory store memory data, and does it upload anything to a remote server?

dsh-fish-memory stores data locally as plain JSON and backs it up before changes; the plugin description mentions no remote upload. Use local files for backup and migration.

How do I verify that dsh-fish-memory actually recalled something instead of guessing?

Ask about a detail that only appeared in an earlier session, then compare the answer with the plugin memory list and the last recall record. The two must agree before you call it a real recall.

When is dsh-fish-memory a poor fit, and what should I use instead?

dsh-fish-memory is a poor fit for a strongly consistent, auditable team knowledge base. It is built for session-level personal memory with decay, so shared, permissioned, or compliance-bound use needs a dedicated store.

Related Terms

dsh-fish-memory
dsh-fish-memory is a long-term memory plugin for DeepSeek Harness whose entries carry time and freshness, with long-term facts that never expire.— dsh-fish-memory plugin page
freshness
Freshness measures how valid a memory currently is in dsh-fish-memory; it decays over time and may rise when a memory is recalled or used.— dsh-fish-memory plugin page
long-term fact
A long-term fact is a memory marked as non-expiring, used for personas, preferences, and agreements, and excluded from normal decay.— dsh-fish-memory plugin page
recall
Recall is the process of selecting relevant entries from the memory store before answering, ranked by evidence and freshness, then injected into context.— dsh-fish-memory plugin page

Sources