自动沉淀对话记忆并可视化检索与审核
29.7/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/27 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add luckyunhao/dsh-memory-wbh该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:仅索引
是什么
dsh 原生插件 · chat
装得上吗
本站尚未做安装检查
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 11 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
可执行外部命令读写/删除本地文件写入剪贴板(不计风险)发起外部网络请求
查看扫描证据(共 40 处,展示前 32 条)
- 发起网络请求dsh-memory-kb/client-src/20-core.js:3
const response = await fetch(API + path, { - 写入剪贴板dsh-memory-kb/client-src/30-cards.js:103
h(Button, { onClick: () => { navigator.clipboard?.writeText(entry.path || ''); onCopyPath?.(); }, icon: 'copy' }, '复制路径'), - 写入剪贴板dsh-memory-kb/client-src/90-workbench.js:691
navigator.clipboard?.writeText(text); - 写入剪贴板dsh-memory-kb/client-src/90-workbench.js:712
navigator.clipboard?.writeText(text); - 写入剪贴板dsh-memory-kb/client-src/90-workbench.js:848
navigator.clipboard?.writeText(text); - 写入剪贴板dsh-memory-kb/client-src/90-workbench.js:853
navigator.clipboard?.writeText(text); - 发起网络请求dsh-memory-kb/client.js:167
const response = await fetch(API + path, { - 写入剪贴板dsh-memory-kb/client.js:610
h(Button, { onClick: () => { navigator.clipboard?.writeText(entry.path || ''); onCopyPath?.(); }, icon: 'copy' }, '复制路径'), - 读取本地文件dsh-memory-kb/index.js:729
isDirectory = statSync(abs).isDirectory(); - 执行外部命令固定命令dsh-memory-kb/index.js:733
const child = spawn('explorer.exe', isDirectory ? [abs] : [`/select,${abs}`], { - 读取本地文件dsh-memory-kb/lib/account.js:24
const data = JSON.parse(readFileSync(ledgerFile(), 'utf8')); - 写入本地文件dsh-memory-kb/lib/account.js:47
mkdirSync(dirname(lock), { recursive: true }); - 读取本地文件dsh-memory-kb/lib/account.js:55
if (Date.now() - statSync(lock).mtimeMs > 10000) { - 删除本地文件dsh-memory-kb/lib/account.js:56
unlinkSync(lock); - 写入本地文件dsh-memory-kb/lib/account.js:66
writeFileSync(fd, String(process.pid)); - 删除本地文件dsh-memory-kb/lib/account.js:70
try { unlinkSync(lock); } catch {} - 读取本地文件dsh-memory-kb/lib/server.js:604
for (const name of readdirSync(dir)) { - 读取本地文件dsh-memory-kb/lib/server.js:607
try { stat = statSync(file); } catch { continue; } - 读取本地文件dsh-memory-kb/lib/server.js:646
try { stat = statSync(file); } catch { - 读取本地文件dsh-memory-kb/lib/server.js:679
createReadStream(file, { start, end }).pipe(res); - 读取本地文件dsh-memory-kb/lib/store.js:60
return existsSync(join(dir, 'INDEX.md')) || existsSync(join(dir, 'entries')); - 读取本地文件dsh-memory-kb/lib/store.js:73
if (existsSync(candidate) && hasMemoryShape(candidate)) return candidate; - 读取本地文件dsh-memory-kb/lib/store.js:269
if (!isMemoryLike(item) || !item.path || !existsSync(item.path)) throw new Error('memory item not found on disk'); - 读取本地文件dsh-memory-kb/lib/store.js:291
if (!isMemoryLike(item) || !item.path || !existsSync(item.path)) throw new Error('memory item not found on disk'); - 读取本地文件dsh-memory-kb/lib/store.js:441
if (!isMemoryLike(keep) || !keep.path || !existsSync(keep.path)) throw new Error('keep item not found'); - 读取本地文件dsh-memory-kb/lib/store.js:513
if (existsSync(file)) file = join(dir, `${date}-${slug}-${shortHash(safeTitle, 6)}.md`); - 删除本地文件dsh-memory-kb/lib/store.js:640
unlinkSync(item.path); - 写入本地文件dsh-memory-kb/lib/util.js:47
mkdirSync(dir, { recursive: true }); - 读取本地文件dsh-memory-kb/lib/util.js:53
return readFileSync(file, 'utf8'); - 读取本地文件dsh-memory-kb/lib/util.js:61
return JSON.parse(readFileSync(file, 'utf8')); - 写入本地文件dsh-memory-kb/lib/util.js:71
writeFileSync(tmp, content, 'utf8'); - 写入本地文件dsh-memory-kb/lib/util.js:72
renameSync(tmp, file);
扫描于 2026/11/4(0 天前) · 范围 全包扫描 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
DeepSeek Harness 记忆库 + Workbench 插件:自动沉淀/召回、技能、新闻、记忆审核、RAG 问答、成本估算、会话导出与代码文件预览。
README
由 DeepSeek 最新模型翻译生成DSH Memory KB · Workbench
给 DeepSeek Harness 的长期记忆与可视化工作台插件:对话自动沉淀、自动召回、技能生成、RSS 新闻、记忆审核、问记忆库、成本估算、会话导出和代码文件预览。
这是一个本地优先的 DSH 插件。记忆、技能、新闻和状态都保存在你自己的机器上;插件不会把记忆上传到第三方服务。模型调用仍走你当前 DSH 会话配置的 DeepSeek 账号。
⚠️ 这是社区插件,不是 DeepSeek 官方项目。它依赖 DSH 的插件/客户端内部接口,DSH 大版本升级后可能需要适配。
功能
| 模块 | 能做什么 |
| 自动沉淀 | 每轮对话结束后,用当前模型提炼稳定事实、决策、偏好、项目进展,写入 Markdown 记忆并更新 INDEX.md |
| 自动召回 | 新消息到达时检索相关记忆,把 [记忆召回] 背景块注入当前步骤;无关内容可忽略 |
| 技能生成 | 从对话中识别可重复流程,生成 SKILL.md,DSH 会自动发现 |
| 实时新闻 | 定时抓取 RSS/Atom,生成中文简报;支持缩略图、双栏阅读 |
| Workbench | 全屏工作台:会话、记忆库、调用状态、输出模型、运行状态、实时新闻、进度与计划、关系网络、总览、设置 |
展开完整文档(README 剩余 1 节)
DSH Memory KB · Workbench
给 DeepSeek Harness 的长期记忆与可视化工作台插件:对话自动沉淀、自动召回、技能生成、RSS 新闻、记忆审核、问记忆库、成本估算、会话导出和代码文件预览。
这是一个本地优先的 DSH 插件。记忆、技能、新闻和状态都保存在你自己的机器上;插件不会把记忆上传到第三方服务。模型调用仍走你当前 DSH 会话配置的 DeepSeek 账号。
⚠️ 这是社区插件,不是 DeepSeek 官方项目。它依赖 DSH 的插件/客户端内部接口,DSH 大版本升级后可能需要适配。
功能
| 模块 | 能做什么 |
| 自动沉淀 | 每轮对话结束后,用当前模型提炼稳定事实、决策、偏好、项目进展,写入 Markdown 记忆并更新 INDEX.md |
| 自动召回 | 新消息到达时检索相关记忆,把 [记忆召回] 背景块注入当前步骤;无关内容可忽略 |
| 技能生成 | 从对话中识别可重复流程,生成 SKILL.md,DSH 会自动发现 |
| 实时新闻 | 定时抓取 RSS/Atom,生成中文简报;支持缩略图、双栏阅读 |
| Workbench | 全屏工作台:会话、记忆库、调用状态、输出模型、运行状态、实时新闻、进度与计划、关系网络、总览、设置 |
| AGENT | 项目带 + 会话导航 + 工作台内聊天;附件(选择/粘贴/拖拽)、@ 文件、/ 指令、流式输出、可展开工具结果 |
| 审批/提问 | 当前会话出现审批或 ask_user_question 时,底部直接显示审批卡/提问卡,无需退出工作台 |
| 记忆审核 | 待复核队列:单条/批量确认、编辑标题与结论、删除;按相似度找近重复并合并 |
| 问记忆库 | 检索 Top N 记忆/知识/技能/新闻,由当前模型基于资料回答,并给出 [n] 引用 |
| 成本估算 | 本会话、每轮、今日实际(独立账本)金额;单价和日预算可配置 |
| 会话导出 | 把当前/历史会话导出为 Markdown(用户、助手、工具调用、工具结果、命令) |
| 代码视图 | 工作区文件树、工作过程时间线、文件只读预览、git diff、资源管理器定位 |
| 独立记账 | 每 60 秒观测余额,记录今日消费;不依赖小鲸鱼账本 |
环境要求
- Windows 10/11(桌面版验证环境)
- DeepSeek Harness 桌面版:v44.7.0 / @deepseek-ai/dsh-desktop 0.2.1-rc.2 实测通过
- Node.js 22+(仅开发/运行测试需要;桌面版使用自带的 Electron Node)
- 一个可用的 DeepSeek 账号或 API 配置(用于沉淀、新闻摘要、问记忆库)
插件使用 DSH 的 clientSession、uiSession、workspaceFiles、remote.fileReferences、remote.commands、ctx.llm 等接口。其他 DSH 版本可能正常,也可能需要小改。
安装
方式 A:用 DSH 的 Plugin Manager(推荐)
1. 克隆本仓库到本地,例如:
git clone https://github.com/luckyunhao/dsh-memory-wbh.git D:\dsh-memory-kb
不想用 git:在 GitHub 仓库页点 Code → Download ZIP,解压后把下面的 <本仓库路径> 换成解压目录即可。
2. 在 DSH 里对 Agent 说:
用 plugin_manager 的 install_bundle 安装 D:\dsh-memory-kb\dsh-memory-kb
或直接调用 Plugin Manager:
plugin_manager install_bundle
target: D:\dsh-memory-kb\dsh-memory-kb
3. 重启 DeepSeek Harness。
方式 B:手动装到 profile
适合想自己控制安装位置的情况。以 desktop profile 为例:
1. 关闭 DSH,备份 %USERPROFILE%\.dsh\profiles\desktop\package.json。
2. 克隆仓库到 D:\dsh-memory-kb。
3. 在 profile 的 package.json 里加依赖和 bundle:
{
"dependencies": {
"dsh-memory-kb": "link:D:/dsh-memory-kb/dsh-memory-kb"
},
"dsh": {
"profile": {
"bundles": [
"@deepseek-ai/dsh-base",
"@deepseek-ai/dsh-web-app",
"dsh-memory-kb"
]
}
}
}
保留你原来的其它依赖和 bundles,只追加 dsh-memory-kb。
4. 建立 junction(Windows PowerShell):
New-Item -ItemType Junction
-Path "$env:USERPROFILE\.dsh\profiles\desktop\node_modules\dsh-memory-kb"
-Target "D:\dsh-memory-kb\dsh-memory-kb"
5. 重启 DSH。左侧栏底部会出现「记忆库」,工作台默认铺满窗口。
link: + junction 是开发/本地安装的推荐组合;file: 在 pnpm 下可能复制源码,改代码后不会自动生效。
第一次使用
1. 打开 DSH 后,点左侧栏底部「记忆库」进入 Workbench。
2. 先发几轮对话,让插件自动沉淀记忆;也可以在「记忆库 → 待复核」里确认自动生成的条目。
3. 右侧栏可切换模型、权限、查看用量和账户;「运行状态」里能看到成本估算。
4. 工作台默认全屏,左下角「退出 Workbench」会先弹确认框,再回到原生界面。
设置
在「设置」页可以调整:
- 自动沉淀 / 自动召回开关、召回条数、每轮最多沉淀条数
- 新闻抓取开关、间隔、每个源最多条数、RSS 源
- 模型路由(留空 = 跟随当前会话)
- 成本单价(元/百万 token)和日预算(0 = 不提醒)
- 记忆/技能/插件状态目录
也可以直接改配置档的 cordis.patch.yml:
- id: dsh-memory-kb
config:
autoDistill: true
autoRecall: true
recallLimit: 3
maxMemoriesPerTurn: 3
newsEnabled: true
newsIntervalHours: 6
newsMaxItemsPerSource: 15
provider: ''
model: ''
数据与隐私
- 记忆根目录自动探测:工作区 memory/(存在 INDEX.md/entries 时)→ D:/DeepSeekHarness/memory → $DSH_HOME/memory
- 技能:$DSH_HOME/skills
- 插件状态:$DSH_HOME/memory-kb(设置、账本、回收站、新闻缓存)
- 素材目录默认:$DSH_HOME/memory-kb/media
- 写入记忆前会做凭据脱敏(API Key、token、密码等模式)
- 本机 HTTP API 只监听 loopback,并带 CSRF/Origin 校验;工作台通过同源页面访问
- 删除记忆是移到 .trash,不会物理删除
- 文件预览/资源管理器定位限制在当前会话工作区内
已知限制
- 自动沉淀在 turn/end 后约 2.5 秒触发;DSH 退出时未完成的队列会丢失(已沉淀的游标不会倒退)。
- 子代理会话不单独沉淀。
- 恢复出来但被原生写句柄占用的会话会返回 session/writer-held;请用「+ 新会话」继续。
- 成本面板是估算:默认单价按 DeepSeek V3.2(输入 ¥2 / 缓存命中 ¥0.2 / 输出 ¥3 每百万 token),模型不同请在设置里改;「今日实际」来自余额账本,不等于本会话估算。
- 文件 diff 只对 git 工作区有效;资源管理器定位目前只支持 Windows。
- 新闻摘要依赖模型路由和网络;失败时会回退为原始条目列表。
- 素材墙只扫描一层目录,支持常见图片/视频/音频扩展名。
- Workbench 依赖 DSH 的客户端服务接口;DSH 升级后如果页面打不开,先检查插件是否仍需适配。
开发
无需安装运行时依赖
npm test # 6 套测试(news 测试会访问真实 RSS)
npm run build:client # 修改 client-src 后重新生成 client.js
npm run check:client # 校验 client.js 是否最新
目录:
dsh-memory-kb/
index.js Host 入口:apply / 工具 / 命令 / 召回 / 沉淀调度 / HTTP API lib/ store、distill、news、llm、http、account、server client-src/ Client 源码(按功能拆分,构建时拼接) client.js 构建产物(不要直接手改) scripts/build-client.mjs test/ 6 套 Node 脚本(store/pipeline/apply/news/api/regressions) cordis.patch.yml DSH bundle 配置
开发时修改 client-src/.js,然后:
cd dsh-memory-kb
node scripts/build-client.mjs
重启桌面版加载 Host 改动;纯 Client 改动有时可由 HMR 重载。
常见问题
看不到「记忆库」按钮? 确认配置档的 package.json 里有 dsh-memory-kb 依赖和 bundle,node_modules/dsh-memory-kb 指向源码目录,然后重启 DSH。
插件服务未连接? 访问 http://127.0.0.1:<端口>/dsh-memory-kb/api/health 需要 DSH 的鉴权 Cookie;从工作台右上角状态灯看更直接。检查 DSH 主进程是否正常。
桌面版卡在 Loading plugins…? 先确认不装本插件时 DSH 能否启动;这是 DSH 桌面壳自身的问题。若你反复启动桌面版,可清理 %APPDATA%\@deepseek-ai\dsh-desktop\Network\Cookies 里 127.0.0.1 的旧 dsh-auth- Cookie(先备份)。
发送时提示 session/writer-held? 该会话被原生写句柄占用,点「+ 新会话」继续;原会话内容不会丢。
client.js is stale? 运行 npm run build:client,再重启 DSH。
License
MIT。详见 LICENSE。预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
luckyunhao/dsh-memory-wbh
自动沉淀对话记忆并可视化检索与审核
相关插件 · 对话 / 记忆
上下文中枢oceanbase/powercontext
上下文跟着工作走 —— 跨会话、跨智能体、跨人。
★ 1,489已汉化DSH
73.1
智能体记忆库plastic-labs/honcho
Honcho 是记忆基础设施,用来构建有状态的智能体。这些智能体能理解不断变化的人、智能体、群组、项目和想法。
★ 7,918已汉化DSH
71.7
长程智能体控制面loopx-project/loopx
给 Agent 一个目标,让工作持续向前。
★ 6,358已汉化DSH
71.3
智能体上下文数据库volcengine/OpenViking
给 AI 智能体用的上下文数据库
★ 41,453已汉化DSH
71.3
长效机器人团队Fei2411/DS-Bot
Download DS Bot for Windows 10/11 64-bit / 下载 Windows…
★ 5,293已汉化DSH
71.2
可携带记忆层EverMind-AI/EverOS
为什么选择 EverOS
★ 13,797已汉化DSH
71.1
这是你的仓库?认领条目