跳到主内容

dsh-auto-memory

26Star1Fork1Issue0Watching

为 DSH Web GUI 提供三层自动记忆引擎:每轮对话自动沉淀、关键词检索与跨工具记忆继承,含可视化面板与日历视图。

机审证据5/5方法论数据来源安装命令持续维护DSH 版本风险扫描
机审证据安装命令仓库已核验dsh-plugin Topic许可证READMEAI 百科
语言
JavaScript
License
BSD-3-Clause
分支
main
deepseek-harnessdshdsh-plugindsh-pluginsmemorynpmplugin

安装

命令web profile
$ dsh plugin --profile web add @a9i5k4/dsh-auto-memory

在终端中运行以上命令,通过 dsh CLI 安装此插件。可在右上角切换 Profile。 第一次用 dsh?看这篇新手教程

对话式安装

帮我安装 DeepSeek Harness 插件 Aik358/dsh-auto-memory:先查看仓库 https://github.com/Aik358/dsh-auto-memory 确认安全性,然后执行安装命令并验证插件加载成功。

把这段指令粘贴给 DSH Web GUI 里的助手,由它代你完成安装与验证。

一句话定位

为 DeepSeek Harness (DSH) Web GUI 提供集中式三层自动记忆:用户级规则、项目笔记与每日日志都由插件自动写入、自动注入、自动检索,并能继承 CodeBuddy / Claude Code / Codex 等其他 AI 工具留下的记忆。

核心能力

  • 自动注入记忆上下文:每次组装系统提示词时,把用户规则、项目笔记、最近一天日志、反思精华与未完成日历事项按需拼到末尾,让模型在回复前最后读到记忆纪律
  • 每轮对话自动沉淀:每轮对话结束后由子代理判断本轮价值,写入今日日志(标记 [自动沉淀]),长期决策升格到项目笔记、跨项目规则升格到用户级记忆,寒暄轮自动跳过
  • 主动日历与提醒:AI 从对话中自动提取 deadline、约定、任务节点写入日历,区分重要/紧急四象限颜色,并在之后会话中赶在时间到达前提醒
  • 跨工具记忆继承:自动检测并接入 WorkBuddy / CodeBuddy / Claude Code / Codex 等其他 AI 工具的记忆(只记路径不复制内容,按需读取)
  • 可视化与设置:侧边栏「记忆」入口提供 Overview / Logs / Notes / Reflections / Connect / Calendar / Search 七个面板,AI 写时段问候、三级抽屉总结、液态玻璃视觉、记忆地图(v0.1.24)
  • 卫生闸门与一键升级:写入端拦截乱码/复读/外部 AI profile 原始 JSON 污染;设置页提供版本检查、npm registry 对比、一键升级命令

技术实现

  • 语言: JavaScript(ESM,type: module,源码是 lib/index.js 与 lib/client.js 编译产物,未提供 .ts 源)
  • 关键依赖: 零运行时第三方依赖(仅 Node 内置 node:fs/promises、node:fs、node:child_process、node:zlib、node:os、node:path、node:url);宿主 peer 依赖 @deepseek-ai/cordis ^4.0.1;前端通过 require('react') 与 DSH 客户端运行时共用 React
  • 架构模式: 双面(dual-face)cordis 插件——lib/index.js(host 半)注册路由、工具、系统提示词注入、生命周期钩子;lib/client.js(browser 半)通过 cordis.patch.yml 与 package.json#dsh.client.inject 注入到 DSH Web GUI;平台固定为 web
  • 入口文件: lib/index.js(导出 apply(ctx, config) 在宿主进程挂载;导出 name = 'auto-memory' 作为稳定 cordis 插件标识),对应 lib/client.js 注入浏览器侧边栏面板

适用场景

日常在 DSH 里持续做项目、跨工作区切换、跨会话回访的开发者。痛点是 DSH 默认不持久化项目记忆、模型每次都从零开始、之前做的决策要靠用户主动复述——这个插件让模型自己记得之前做过什么,并把 deadline、约定、用户偏好沉淀为可检索的本地笔记。还适合同时用 CodeBuddy / Claude Code / Codex 的用户,跨工具复用历史记忆而无需手动搬运。

前置依赖与兼容性

依赖最低版本说明
DeepSeek Harness (DSH)未声明插件市场收录,未声明最低 DSH 版本;要求 DSH web GUI 可启动(web profile 存在)
Node.js>= 22.19.0(建议)zstd 解压需要 node:zlib.zstdDecompressSync;Node <22 时会话索引回退明文读,仍可运行但工作区总览可能漏掉压缩会话帧
@deepseek-ai/cordis^4.0.1peer 依赖,由宿主 DSH 提供
平台跨平台宿主为 Node.js 进程,仅在 DSH web profile 下运行;客户端面板为浏览器端 React
原生模块无第三方原生依赖全部使用 Node 内置模块(fs/child_process/zlib/os/path/url),无 node-gyp 编译产物
pnpmv9 或 v10(v11 需额外配置)pnpm v11 默认限制安装发布不足 1 天的版本,同日发版需要在 pnpm-workspace.yaml 加 minimumReleaseAge: 0 或指定显式版本号

安装方式

dsh plugin --profile web add @a9i5k4/dsh-auto-memory

实际等价步骤:在 DSH 的 web profile 目录 ~/.dsh/profiles/web 下安装包,并把 @a9i5k4/dsh-auto-memory 追加到该目录 package.json 的 dsh.profile.bundles 数组,最后重启 dsh web 才会出现侧边栏「记忆」入口。

配置项

配置文件位于 ~/.dsh/dsh-auto-memory.json(首次启动自动创建),完整默认值由源码 lib/index.js 的 DEFAULT_CONFIG 决定:

配置类型说明默认值
userMemoryDir路径用户级记忆目录(绝对路径或 ~ 开头)~/.dsh/memory
projectMemoryDir字符串项目级记忆目录名(相对工作区).dsh-memory
memoryRoot路径集中式记忆根目录,每工作区一个子目录~/.dsh/memory/workspaces
injectEnabled布尔是否向系统提示词注入记忆上下文true
injectBudgetChars数字注入的总字符预算(动态部分上限)2400
recentDaysInjected数字注入的最近日志天数1
autoConsolidate布尔每轮对话结束是否自动评估并写入今日日志true
autoConsolidateMinChars数字触发自动沉淀的本轮最小字符数(低于则视为寒暄跳过)240
autoConsolidateCooldownMinutes数字自动沉淀的冷却分钟数(非工作时间 22:00–08:00 自动翻倍)30
autoConsolidateDailyMax数字自动沉淀每日最大调用次数(限频)8
awayMinutes数字离开多久算「暂离」,回归时弹记忆窗口并问候60
autoPopupEnabled布尔暂离回来是否自动弹出记忆窗口true
autoSummaryTimes字符串数组自动生成时段总结的时刻表(24h HH:MM),空数组=关闭[]
dayBoundaryMinutes数字日界(分钟,0 点起算),此前的工作归到前一天日志450(早上 7:30)
reflectEnabled布尔是否启用每日反思true
reflectStyle枚举反思风格:auto / life / professionalauto
locale枚举界面语言:system(跟随 DSH 系统语言) / zh / ensystem
externalInjectionChars数字外部记忆注入预算(字符)1400
externalSources对象外部记忆源开关(WorkBuddy/CodeBuddy/Claude Code/Codex/项目约定)全部 true

修改后无需重启 dsh:设置 → 自动记忆 页面保存即生效;面板字体大小(小/正常/大/特大)实时切换不需保存。

常见问题

Q: 安装后没看到「记忆」侧边栏入口怎么办?

A: 必须三步齐全:在 ~/.dsh/profiles/web 下安装包、把 @a9i5k4/dsh-auto-memory 追加到该目录 package.json 的 dsh.profile.bundles 数组、然后重启 dsh web。只装包不重启或没追加 bundle 行都不显示。

Q: 记忆文件存在哪里?重装 DSH 会丢吗?

A: 记忆以纯文本 Markdown 集中在用户主目录,与 DSH 安装目录隔离:用户级在 ~/.dsh/memory/MEMORY.md,项目记忆统一在 ~/.dsh/memory/workspaces/{workspace}/。重装 DSH 不影响;旧版分散在工作区里的 .dsh-memory 在首次运行时会自动迁移到集中根目录,旧文件保留不删。

Q: 自动沉淀会不会消耗很多 token?

A: 默认开启且每天最多调用 8 次、冷却默认 30 分钟(非工作时间自动翻倍),可在设置页调整。静态规则挂在系统提示词里保持字节级稳定,动态记忆走运行时快照,让 DeepSeek 前缀缓存全程命中以减少重复编码开销。

Q: 能继承 CodeBuddy / Claude Code / Codex 的记忆吗?

A: 能。插件会扫描 ~/.workbuddy、~/.codebuddy、~/.claude、~/.codex 等目录。memory_external 的 import 动作以「纯链接模式」接入,只在本地记忆里记录源文件路径指针,不复制内容,需要时按需读取——这样既能用上外部历史,又不会被其他 AI 工具 profile 的原始 JSON / 乱码污染本地记忆。

Q: 记忆里会泄露密钥吗?

A: 注入到 prompt 的内容会过滤掉疑似令牌 / 密钥 / 凭据的段落,文件本身完整保留;外部会话检索为关键词级(非语义)。但密钥本身仍属敏感信息,建议不要主动写入或粘贴到对话里。

Q: 怎么升级这个插件?

A: 在 ~/.dsh/profiles/web 目录执行 pnpm up @a9i5k4/dsh-auto-memory(或 npm install @a9i5k4/dsh-auto-memory@latest),然后重启 dsh web;设置 → 自动记忆 页面提供「检查更新」按钮,会对比你当前版本与 npm registry 最新版并显示更新命令。注意 pnpm v11 默认限制安装发布不足 1 天的版本,当天发版需要在 pnpm-workspace.yaml 加 minimumReleaseAge: 0 或指定显式版本号。

Q: 卸载后记忆还在吗?

A: 记忆文件保存在用户主目录(~/.dsh/memory/),不在 DSH 安装目录;从 web profile 移除 bundle 并卸载包不会删除这些 Markdown 文件,下次再装可继续使用。

上手难度

入门 — 安装后无需任何配置即可获得默认三层记忆 + 自动沉淀 + 主动日历能力;所有偏好都能在 GUI 的设置 → 自动记忆 页面调整并实时生效,不需要碰 JSON。

已知问题与限制

  • 记忆检索是关键词级(非语义):memory_recall 按空白/中文标点分词后做 OR 匹配,按命中词数排序,源码未提供向量检索或语义匹配
  • memory_recall 跨历史 DSH 会话检索依赖宿主部署的 session-query 索引;未启用该索引时只能搜本地记忆文件(README 原文限制)
  • 插件增删需要重启 dsh web 才会生效(README 原文限制)
  • Node.js < 22.19.0 缺少 zstdDecompressSync,DSH 新版会话持久化的 session.jsonl.zstd 压缩帧无法解压,工作区总览会扫不到压缩会话(v0.1.16 已修复读取逻辑,但旧 Node 仍只能回退明文读)
  • pnpm v11 默认不允许安装发布不足 1 天的版本:同一天发布想立刻装新版,需要在 pnpm-workspace.yaml 加 minimumReleaseAge: 0 或使用 pnpm add @a9i5k4/dsh-auto-memory@<version> 显式版本号
  • 系统文件夹选择器依赖 DSH 主机的 directory-picker-auto 原生后端;不可用时设置页自动回退到内嵌文件夹浏览
  • 0.1.14 及以下版本会击穿 DeepSeek 前缀缓存(旧版把秒级时间戳注入系统提示词),大量消耗 token;如仍在运行老版本,建议升级到 0.1.16+ 解决
  • 外部记忆接入(memory_external import)只记录路径指针,不复制内容:好处是抗污染,代价是其他 AI 工具里的内容需要时按需读取,导入后不立即可全文搜索

查看使用指南 →

该插件的安装步骤、关键要点、FAQ 与兼容性说明(基于已收录字段派生)。

收录徽章

Listed on deepseek-plugin.org
[![Listed on deepseek-plugin.org](https://img.shields.io/badge/listed_on-deepseek--plugin.org-007EC6)](https://deepseek-plugin.org/plugins/Aik358/dsh-auto-memory)

把这段 markdown 粘贴到你的 GitHub README,链接回本插件详情页。徽章只声明已被本站收录,不代表安全认证。

返回插件目录