dsh-workspace-recollection
给 DeepSeek Harness 的跨会话记忆:按工作区隔离、跨会话共享的长期记忆。默认只往 system prompt 里注入一行提示(告诉模型「你有其他会话的记忆」并指向 memory_index / memory_recall),并且带一道工具层守卫 —— 新会话的第一个探索型动作(pwsh / read / glob …)若还没查过记忆就先拦一次(只拦一次,不会卡死),目录、要点、原文全部走工具按需取;长文用段级引索定位到段、只取那一段,深层原文(当时的思考、命令、结论)留在本地向量库里按需取回。检索自带噪音过滤与时间通道(时间轴按首次安装检测到的时区显示),零联网(本地嵌入模型),不改动官方内核。另带一块自包含的记忆管理台(GET /api/session-memory/page,可在客户端全屏内嵌,也能用系统浏览器开成独立窗口):按工作区浏览、新增、编辑、删除、置顶、锁定、改归属、重载数据、重建向量。工作区目录改名之后,按工作区身份指纹(git remote / 包名 / 文件名特征)自动认领旧记忆,不用手动搬。
What it is
给 DeepSeek Harness 的跨会话记忆:按工作区隔离、跨会话共享的长期记忆。默认只往 system prompt 里注入一行提示(告诉模型「你有其他会话的记忆」并指向 memory_index / memory_recall),并且带一道工具层守卫 —— 新会话的第一个探索型动作(pwsh / read / glob …)若还没查过记忆就先拦一次(只拦一次,不会卡死),目录、要点、原文全部走工具按需取;长文用段级引索定位到段、只取那一段,深层原文(当时的思考、命令、结论)留在本地向量库里按需取回…
How to install
Run this in the DSH web profile, then refresh the page.
$ dsh plugin --profile web add dsh-workspace-recollection@2.5.0
DSH versions accepted
>=0.2.0-rc.1 <0.3.0-0
Author and traction
reaxlll · ★ 25 · Updated 2026-10-24
About this plugin
dsh-workspace-recollection 🧠
给 [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness) 的跨会话长期记忆:按工作区隔离、跨会话共享。
DSH 的会话一关,上下文就散了。这个插件把「做过什么、当时怎么决定的、那个坑是什么」沉淀下来,
需要时再分层、按需地取回 —— 会话开始时只注入一行提示(告诉模型「你有记忆、去查」),用哪层取哪层。
核心是分层检索:想先看「大概有什么」就调 memory_index 拿目录(浅层要点,置顶在最前);条目很长时,中间还有一层
段级引索 —— 先定位到「哪一段」,只把那一段取回来;深层原文(当时的思考、命令、结论)
留在本地向量库里,真要细节时才取。实测一条 1.5 万字的记忆取回一段约 1200 字,省 92%~97%。
---
快速开始(安装插件)
> 以下命令都在你的命令行终端(PowerShell / CMD / bash 等)中运行。
# ① 前置要求:确认 Node.js 已安装 node -v # ② 安装 DSH 启动器与 pnpm(已装可跳过;装完请重新打开终端) npm install -g @deepseek-ai/dsh pnpm dsh --version # 验证 dsh 命令可用 # ③ 安装本插件:--profile 填你实际在用的那个 # 桌面应用(Electron 版)→ desktop;dsh web → web dsh plugin --profile desktop add dsh-workspace-recollection
装完重开桌面应用(dsh web 用户则重启 dsh web)才生效 —— 运行中的进程持有内存里的旧插件。
之后点会话头部的「🧠 记忆」(或设置页里的「记忆」)就能打开记忆面板。
> 兼容性:本插件在 dsh 0.2.0-rc.2 下开发并测试(dsh --version 可查看你的版本)。
> 建议使用相同版本;其他版本如遇问题欢迎反馈。
从源码安装(clone 本仓库后)
本插件是纯 JavaScript、无构建步骤 —— clone 下来就能直接挂载:
git clone https://github.com/reaxlll/dsh-workspace-recollection.git dsh plugin --profile desktop add file:/path/to/dsh-workspace-recollection
改源码后重开应用即可(宿主半侧改动必须重启;浏览器半侧刷新页面即可)。
首次启动会自动装好嵌入模型
语义检索需要一个本地嵌入模型(Xenova/bge-small-zh-v1.5,512 维,ONNX 量化版约 23MB)。
不用你动手:插件启动时会检查它是否在位,缺了就自己从镜像(hf-mirror.com,失败自动回退
huggingface.co)逐个文件拉下来,下完自动加载 —— 实测 24MB 约 18 秒。
之后运行时零联网,也不调任何云端 API。
网络不通或下载失败也不会影响使用:memory_recall 自动退回关键词检索,其他功能照常;
面板状态条上的「加载模型」可随时重试。
💬 反馈与发版节奏
欢迎提 [issue](https://github.com/reaxlll/dsh-workspace-recollection/issues) 与 PR —— bug、体验问题、优化想法都行。
可以随意对插件进行修改因为作者很可能没空维护,也对应了dsh那句,想要啥自己做(^_^)
但动手前请先翻一眼 [提交记录](https://github.com/reaxlll/dsh-workspace-recollection/commits/main),
确认不是已经修掉的同款问题。
- 小修不单独发版:不影响使用的小 bug 与优化会累计到下一个版本一起发。
所以「main 上已经修了」不等于「你装的这版已经包含」—— latest 没更新时,以 main 的提交记录为准。
- 报 bug 时请带上:插件版本、
dsh版本、操作系统、复现步骤(有日志或截图更好)——
直接用 [issue 模板](https://github.com/reaxlll/dsh-workspace-recollection/issues/new/choose) 会把这些列好。
- 想改代码?先看 [CONTRIBUTING.md](CONTRIBUTING.md):代码地图、三条硬规矩(纯函数要配单测 / 阈值必须用真实回放来定 /
约束行为要用代码而不是提示词)、常见改动配方,以及一份提 PR 前的检查清单。
插件功能
- 跨会话记忆:记忆按会话 header 的
cwd分桶 —— 一个工作区一份,这个工作区里的所有会话共享同一份记忆 - 分层检索:浅层要点目录(
memory_index,按需)→ 段级引索(定位到段)→ 深层原文(按需取整条),三层都有工具,够用就停 - 一行提示:默认只往 system prompt 里放一行「你有其他会话的记忆,通过 memory_index 查看目录,详细善用 memory_recall」—— 40 字换回「存在感」(旧数据升级时自动从零注入改过来);目录、要点、原文全部走工具按需取
- 时间轴按你的时区显示:首次安装时检测一次本机时区并记下来,会话时间、记忆日期、时间通道都按它格式化
- 噪音过滤:
memory_recall的结果自动过四路信号(绝对底线 / 硬特征 / 相对长尾 / 平局),跑题的别冒充「找到了」;被筛掉的永不静默丢弃,折成一行id + 分数留着你复查 - 时间通道:问「10月6日」「九天前」「昨天」这类问题时,按本地日历日直接筛出那天的条目,并给出涉及到的会话 id(可顺着读会话原文)
- 排序分层:深层分是靠正文块「撞」出来的,容易虚高 —— 只有要点分够高、或命中 query 的硬特征、或能被段级引索复核出「实词」的,才承认它的深层分
- 本地嵌入 · 零联网:
bge-small-zh-v1.5(512 维,ONNX q8)跑在本机,不调任何 API;加载约 35ms、编码约 2ms/条 - 模型自己装:启动时检测嵌入模型是否在位,缺了就自动从镜像拉取(约 23MB,实测 18 秒),下完自动加载
- AI 压要点:写完记忆直接走人,后台队列用
ctx.llm.stream把长正文压成一句话要点(也可自己给,或手写) - 会话导入:把本工作区的历史会话一键收进长期记忆(一条记忆 = 你当时说的话 + 思考原文 + 用到的工具 + 结论)
- 管理台:会话头「🧠 记忆」与设置页「记忆」两个入口打开同一块全屏面板 —— 状态条 / 按工作区浏览记忆 / 新增编辑删除置顶锁定 / 预览注入 / 检索测试 / Memory.md(预览 + 编辑手记区块) / 改工作区归属 / 重载数据 / 重建向量;面板本体是自包含页面
/api/session-memory/page,也能用系统浏览器开成独立窗口(拖到第二块屏) - 工作区改名自动认领:记忆按路径分桶,目录一改名就认不上了 —— 所以每个工作区另存一份跟路径无关的身份(
git remote+ 包名 作强指纹,顶层条目名作弱指纹),新旧匹配且旧路径已不存在时自动认领,连带搬向量、重写Memory.md;判不准就不搬(宁可视而不见,也不把两个工作区的记忆混在一起) - 不碰内核:只用官方插件 API(
systemPrompt.section/tools.register/webServer.register),前后端走/api/session-memory/*
分层结构
| 层 | 位置 | 角色 |
| --- | --- | --- |
| 事实源 | $DSH_HOME/session-memory/memory.json | 每条 = text(深层原文,可长)+ summary(浅层一句话) |
| 索引 | <工作区>/Memory.md | 工作区里的镜像文件,写的是浅层要点;默认只注入一行提示(面板可切 hint / index / full / off);底部「手记」区块原样保留 |
| 向量 | $DSH_HOME/session-memory/vectors.json | 每条两份向量:s(浅层,检索定位)/ d(深层,兜底补齐) |
| 段索引 | 不落盘,运行时现算(lib/segments.js) | 把正文按 ## 切成段,用纯 CPU 的 BM25 关键词定位到段号 |
Compare in this category
The five most-starred plugins in the same category.
| Plugin | Author | Stars | Version | Updated |
|---|---|---|---|---|
| dsh-purge | kingcharleslzy-ai | 6.3K | 1.6.86 | 2026-11-08 |
| dsh-unrestricted | yexi-by | 1.1K | 0.2.8 | 2026-11-05 |
| dsh-univer-office | dream-num | 707 | 0.4.0 | 2026-11-03 |
| dsh-synapse | liangmianya | 697 | 0.5.7 | 2026-11-04 |
| dsh-qqbot | tencent-connect | 570 | 0.5.5 | 2026-11-08 |