DSH Hub

Yuuyuko-uu/dsh-fish-memory

dsh-fish-memory

UIMemory292 GitHub stars· updated 2026-10-27

dsh-fish-memory is a community DeepSeek Harness plugin. Read the repository README before installing.

Install

npx @deepseek-ai/dsh plugin --profile web add github:Yuuyuko-uu/dsh-fish-memory

Restart `dsh web` after install. Bundle APIs can change during the developer preview.

README badge

dsh-fish-memory DSH Hub badge
[![DSH Hub](https://dshhub.dev/badge/dsh-fish-memory.svg)](https://dshhub.dev/plugins/dsh-fish-memory)

Paste this into your README. The star count updates with every catalog sync.

From the README

Excerpt from Yuuyuko-uu/dsh-fish-memory, cleaned of badges and images.

🐋 鱼的记忆

给 DSH 里的会话一份会淡忘的长期记忆 —— 每条都带时间。

聊得越久,上下文越挤。压缩一次,前面的事就淡了。 这个插件替它记着:该记的记下来,想起来的时候自己会想起来,不重要的事慢慢淡掉。

名字里的「鱼」来自 DeepSeek 的鲸鱼 —— 鲸鱼也是鱼嘛。 另一半是「七秒记忆」那个梗:鱼的记性差,所以得替它记着。 但它不是硬盘 —— 它会淡忘,跟人一样。


它做什么

说明
会淡忘每条记忆有「鲜活度」,越久越淡。半衰期默认 30 天 —— 不删,只是越来越难被想起来
自己挑重点不是每句话都记。它按轮次判断哪句值得留下,每天还有配额,防止把上下文塞满
想起来靠证据你问什么,它按「命中的词够不够特别」找,再按鲜活度、重要度、情绪排序,最多注入几条。分词用的是一份通用中文词表,所以「车」不会撞进「车站」里
要记一辈子的不淡画像、喜好、约定这种标成「长期事实」,平着放着,不会过期
长期事实每轮都在它们按「重要度 → 时间」固定带前几条,不看这句话问了什么,也不占「最多注入几条」的位置 —— 剩下那几个位置才留给事件
带时间每条都记着「这是什么时候的事」。跨年了会写「去年 09-17」
能导入旧档案以前写过的 markdown / 纯文本档案,扫一遍出候选,你挑完它再改写成记忆
全都看得见记了什么、哪条被想起来了、为什么没被想起来、删掉的都还在

需要什么

  • DSH(DeepSeek Harness),带 Web 界面
  • 一个能用的模型 —— 它借用你 DSH 里正在用的那个,不用另外配 key、不额外花钱

「提炼」和「扩词」这两步会调用模型(走你现有的)。不点它们就不会调用。


适配哪个 DSH 版本(不用操心)

这个插件跟着 DSH 一起更新:作者这边跑的就是最新版的 DSH,最新版插件永远是给最新版 DSH 写的。

所以看到「不适配 / 不支持」之类的提示,基本都是装到了旧版本 —— 升级到最新版、重启一次 DSH 就好。 真遇到新版对不上(比如 DSH 刚升级、插件还没跟上),提个 issue,作者会跟着改。

当前实测对照:插件 1.3.1 ↔ DSH 0.2.1-rc.3(2026-10-26)

装法

在 DSH 里:设置 → 插件 → 安装,填下面这一行;或者命令行:

github:Yuuyuko-uu/dsh-fish-memory
dsh plugin --profile web add github:Yuuyuko-uu/dsh-fish-memory

(--profile 照你平时那个写:网页端一般 web,桌面端一般 desktop。)

装完重启一次 DSH。

重启后,打开 设置 → 鱼的记忆。

还没上 npm,所以要用上面那条 GitHub 的。 (以后要是上了 npm,dsh plugin add dsh-fish-memory 也能用。) ⭐ 最省事的一条:把仓库链接贴给你自己的 DSH,说「帮我装这个插件」。

装完起不来?先看这个

如果 DSH 弹「The application could not start」,错误里有 Unexpected token ''、is not valid JSON、 readProfileManifest —— 那是 profile 的 package.json 被存成了 UTF-8 带 BOM。 跟插件无关:内容都是对的,只是开头多了三个看不见的字节,DSH 读它就崩。

先找出来(不同装法位置不一样,别猜 —— 真正的 profile 目录里同时有 cordis.yml、cordis.patch.yml、package.json;机器上别处那些同名的都不算):

Get-ChildItem C:\,D:\,E:\ -Directory -Filter profiles -Recurse -Depth 4 -ErrorAction SilentlyContinue |
  ForEach-Object {
    Get-ChildItem $_.FullName -Directory -ErrorAction SilentlyContinue | ForEach-Object {
      $p = Join-Path $_.FullName 'package.json'
      if ((Test-Path (Join-Path $_.FullName 'cordis.patch.yml')) -and (Test-Path $p)) {
        $b = [System.IO.File]::ReadAllBytes($p)
        $bom = ($b.Length -ge 3 -and $b[0] -eq 0xEF -and $b[1] -eq 0xBB -and $b[2] -eq 0xBF)
        "{0}   BOM={1}" -f $p, $bom
      }
    }
  }

输出里 BOM=True 的那一行,就是要修的文件(标准安装在 C:\Users\<你>\.dsh\profiles\<档名>\package.json)。 去掉 BOM(路径换成上面那一行):

$p = "把上面 BOM=True 那一行的路径粘到这里"
[System.IO.File]::WriteAllText($p, [System.IO.File]::ReadAllText($p), (New-Object System.Text.UTF8Encoding($false)))

然后重启 DSH 就好,数据一点没丢。实在进不去时,那个错误框里的 「Disable third-party plugins, back up profile patch, and restart」 能先起来,再一个个开回去定位。

⚠️ 手动改 profile 里的文件,一律存 UTF-8 无 BOM。让 AI 帮你改时,别让它用 Set-Content -Encoding UTF8 或 Out-File -Encoding utf8(Windows 自带的这两个默认带 BOM)。


更新到最新版

最省事:把这个仓库的地址丢给你自己的 DSH,说「帮我更新这个插件」。装完重启一次 DSH。

也可以点 设置 → 鱼的记忆 最上面的「检查更新」 —— 有新版会提示,还能一键复制更新命令。

命令行(--profile 照你平时那个写,桌面端一般 desktop、网页端 web):

dsh plugin --profile desktop remove dsh-fish-memory
dsh plugin --profile desktop add github:Yuuyuko-uu/dsh-fish-memory

⚠️ 必须先卸再装:直接装可能拿到缓存里的旧副本,装完还是老的。 ⚠️ 装完重启一次 DSH才会用新代码。

我的设置会不会丢?

不会。 设置存在 DSH 家目录(%USERPROFILE%\.dsh\)里,不在插件代码里;卸载只删代码:

.dsh\fish-memory-config.json   (每条会话的记忆各一份)

所以卸载 → 重装,设置、记下来的所有记忆 都还在。

三件小事提醒:

…

Related plugins