Phant0Meow/dsh-meow-memory
Cross-session memory plugin for DeepSeek Harness: seven-layer SQLite store (soul/user/project/fact/lesson/topic/rules), BM25 retrieval, per-window dream consolidation. 跨会话七层长期记忆插件。
Project Overview项目介绍
This is a native DSH plugin built exclusively for DeepSeek Harness, designed to add persistent cross-session memory functionality. It maintains a structured SQLite database per workspace, stored at .dsh-meow/memory.db, and organizes memory into seven distinct layers, each stored as a separate table in the database. Its cache-friendly design places static memory documentation in the system prompt as a fixed section, so it never disrupts the LLM provider's KV context caching. It follows DSH native plugin conventions and includes a valid bundle manifest for straightforward installation through the DSH plugin manager.
For typical workflow, long-term memory blocks are injected as a snapshot before the first user message in a new session, and keyword matching plus relevant memory injection starts from the second message onward. When a session window has been idle for 180 minutes by default, and is not during configured API peak hours, the main agent will automatically organize any memory created or extracted in that window. Users can also manually trigger memory organization by entering the /dream command directly in the DSH input box, even during peak hours when automatic triggers are suppressed. This tool is ideal for DSH users who maintain multiple long-term projects and need to retain consistent cross-session contextual knowledge.
The plugin is open-source under the permissive MIT license, requires a Node.js environment to build from source, and is free for all personal and commercial use cases. First-time users must explicitly configure the promptLang setting to match their conversation language, with built-in support for both Chinese and English, plus support for custom and community-contributed third-party language packs. It includes quality-of-life UI features like injected memory folding, session status icons, and peak-hour suppression to reduce unnecessary API usage during busy windows. All core configuration settings can be adjusted by users to fit their individual workflow preferences.
这是专为DeepSeek Harness(DSH)打造的原生跨会话记忆插件,会为每个工作区维护一份基于node:sqlite的结构化记忆数据库,存储路径为.dsh-meow/memory.db。它将记忆分为七层:soul(AI自身信息)、user(用户信息偏好)、project(项目信息)、fact(原子事实)、lesson(经验教训)、topic(讨论话题)、rules(设计行为准则),每层对应一张独立SQLite表。它采用缓存友好的设计,静态记忆说明固定在system prompt中,不会破坏LLM的KV上下文缓存。
在工作流程上,首轮对话就会将长期记忆块(soul、user、设计规则、记忆导引)作为快照注入到第一条用户消息之前,不会改写原用户prompt。从第二轮开始,每条用户消息会基于关键词提取top-2相关记忆注入上下文。当窗口空闲达到默认3小时,且不在API峰时,主agent会自动整理本窗口新建和提取过的记忆,也支持用户手动输入/dream命令立即触发整理,适合需要长期维护多项目、保留会话上下文知识的DSH用户使用。
本插件基于Node.js环境开发,使用MIT许可协议,完全免费开源。首次使用需要用户显式配置promptLang参数,指定对话和注入文案的语言,支持中文和英文内置语言包,也支持用户自定义或社区贡献第三方语言包。它支持峰时抑制自动整理避免高峰API占用,还提供UI层面的注入折叠、会话状态图标提示,所有配置都支持自定义调整,适配不同用户使用习惯。
请帮我安装这个 DSH 插件。安装前先完成【兼容性检查 + 安全性检查】,检查通过再动手。
插件:dsh-meow-memory(Phant0Meow/dsh-meow-memory)
仓库:https://github.com/Phant0Meow/dsh-meow-memory
本站详情页:https://www.yhbd.top/plugins/phant0meow-dsh-meow-memory/
本站登记:类型 plugin · 归类 原生 DSH 插件 · 许可证 MIT · ⭐ 141 · 最近提交 2026-09-24 · 主语言 TypeScript
按下面顺序执行,每步先把结论告诉我,再进入下一步:
【1 兼容性检查】
① 我这边:DSH 版本、Node 版本、操作系统、当前 profile(web / desktop)。
② 读它的 README、package.json、插件 manifest,列出它要求的 DSH 版本 / Node 版本 / 操作系统 / 外部依赖 / 需要另外先装的运行时。
③ 逐条比对,结论只写「满足 / 不满足 / 未知」三种;不满足的给出可行替代方案。
④ 检查是否和我已装的插件冲突:命令名重复、skill / tool 重名、端口占用、重复注册的 MCP server。
【2 安全性检查】
① 仓库可信度:和上面「本站登记」是否一致;star / fork 数、创建时间、最近提交,是否归档或长期停更。
② 安装脚本:逐行看 package.json 的 preinstall / install / postinstall,以及 install.sh、setup.ps1 之类脚本。出现 curl|bash、下载后直接执行、混淆代码、访问与插件功能无关的域名,立刻停下来告诉我,不要继续装。
③ 依赖:列出新增依赖,标出无人维护、或与知名包拼写近似的可疑包(typosquatting)。
④ 权限与副作用:它会读写哪些目录、访问哪些域名、需要哪些 DSH 权限(filesystem / network / shell / clipboard 等),以及怎么卸载和回滚。
⑤ 如果它要求 sudo / 管理员权限,或权限明显超出功能所需,先停下来问我。
【3 安装】
上面两步没有「不满足」和「高危项」时才执行;用官方推荐方式安装,不要自行提权。
【4 汇报】
用表格输出:检查项 / 结论 / 依据 / 是否需要我决策。拿不准的一律写「未知」并说明要我怎么确认——不要猜,也不要替我决定。
Send this message to DSH in your current session: it verifies compatibility and security first (answering met / not met / unknown item by item) and only installs once everything checks out — it will stop and ask you if it finds a high-risk item. The box scrolls; the copy is the full prompt. CLI install commands may not be accurate across systems, so DSH is the safer route.把上面这条消息直接发给当前会话里的 DSH:它会先核对兼容性与安全性(逐条给「满足 / 不满足 / 未知」),确认没问题再安装,有高危项会停下来问你。框内可滚动,复制到的是完整提示词;安装命令不一定准确,发给 DSH 更稳。
- This site's static screen found no obvious risk signal (stars, license, activity, manifest)本站静态筛查没发现明显风险信号(星标、许可证、更新活跃度、清单完整度)
DSH walks through these 9 checksDSH 会逐条核对这 9 项
Compatibility兼容性
- DSH, Node, OS and profile requirementsDSH 版本 / Node 版本 / 操作系统 / profile 是否满足要求
- External dependencies and runtimes (Electron / Python / Docker, ...)外部依赖与运行时(Electron / Python / Docker 等)是否齐备
- Conflicts with installed plugins: command names, skill / tool names, ports, duplicate MCP registration与已装插件是否冲突:命令名、skill / tool 重名、端口占用、重复 MCP 注册
Security安全性
- Repo matches the facts registered here; archived or abandoned?仓库是否与页面登记一致,是否归档或长期停更
- Safety of preinstall / install / postinstall and install.sh / setup.ps1preinstall / install / postinstall 与 install.sh、setup.ps1 是否安全
- curl|bash, download-then-execute, obfuscation, unrelated domains → stop immediatelycurl|bash、下载即执行、混淆代码、无关域名 → 立刻停止
- Typosquatting or unmaintained packages among the new dependencies新增依赖里有没有 typosquatting 或无人维护的包
- Requested permissions vs. what the feature actually needs申请了哪些权限、是否超出功能所需(filesystem / network / shell / clipboard)
- Any sudo / admin requirement, plus uninstall and rollback是否要求 sudo / 管理员权限,以及卸载与回滚方式
Anything uncertain must be marked unknown with a note on how to confirm it. This site's signal screen is a static snapshot, not a security audit.拿不准的必须标「未知」并说明要我怎么确认。本站的信号筛查是静态快照,不能替代安全审计。
Or use CLI install (for developers)或使用命令行安装(适合开发者)
CLI Install命令行安装
dsh plugin --profile web add github:Phant0Meow/dsh-meow-memory
把 Phant0Meow/dsh-meow-memory 加入你的 DSH 配置(web profile)即可启用。
READMEREADME
meow-memory 🐱📝
| 中文 | English | Português (BR) | MIT License |
|---|
为 DeepSeek Harness(DSH)打造的跨会话记忆插件。
核心理念:每个工作区维护一份结构化记忆数据库(.dsh-meow/memory.db,基于 node:sqlite)。
静态记忆手册(数据总览 + 工具用法 + 写作准则)以固定 section 的形式放在 system prompt 里——
文本恒定,因此不会破坏 LLM provider 的 KV/上下文缓存。动态内容(soul/user 全量、设计原则、
记忆导引)作为第一条用户消息的前缀注入,且首轮只注入长期记忆、不做关键词命中;
从第二轮起每条用户消息做关键词命中(top-2)。模型按需用 memory_search /
memory_project 深入检索。每个窗口由自己的主 agent 在空闲时("dream")整理记忆
(本窗口建立 + 提取过的记忆),以窗口最后一次对话时间戳冻结其知识。
✨ 功能特性
- 七层记忆(
soul= AI 自身 /user= 用户基本信息与偏好 /project= 项目信息, 含subcategory(overview/structure/decisions/quotes/ops/todo)/fact= 原子事实 /lesson= 教训与纠正 /topic= 进行中的讨论话题,带目标句 /rules= 设计原则与行为准则)。 每层一张 SQLite 表,UUID 带时间前缀,id 顺序即创建顺序。 - 首轮注入(长期记忆块):第一条用户消息前注入固定格式
===== 长期记忆 =====→【关于你】(soul 全量)→【关于user】(user 全量)→【设计原则】(全局 rules 且 importance≥2,少而精的命令式准则)→【记忆导引】(用法说明 + 「用户的所有 project」动态列表,供memory_project选用)。 记忆作为独立 plugin snapshot 消息放在真实 user 消息之前,不改写用户 prompt。 首轮不跑关键词命中(命中从第二轮起)。即使首条用户消息与插件通知消息同批到达 (如 approval policy 变更通知),快照仍会紧贴插入到真实用户消息之前、命中绝不提前。 - 每消息关键词命中:从第二条用户消息起,每条真实用户消息都检索 fact/lesson/rules/topic(范围 = 全局 + 当前 project 锚定),top-2 命中以 「可能相关的记忆,仅供参考:」前缀注入。命中基于条目关键词(LLM 提取或自动 bigram)而非全文——全文匹配噪音大。打分 = 交集分 × idf × 覆盖率 × 艾宾浩斯衰减 (按记忆时间戳)× importance 权重 × title 加成。
- 当前 project 锚定:
memory_remember/search/update/project带 project 参数即锚定 该会话的当前项目;未锚定时命中只搜全局(用户闲聊不误伤)。 - 缓存友好设计:静态
meow-memory:guidesection(order 130,紧随各tool:*说明之后) 在 system prompt 中注册一次——文本恒定,KV 缓存友好。已见记忆(injected+searched) 按会话记录(.dsh-meow/sessions/<id>.json):注入绝不重复;memory_search前 5 条按相关度 无脑取(不排除已见/本 session 建立的记忆),其余从排名后续绕开已见补齐;收到会话压缩 信号(compaction/*)时释放已见记录,允许压缩后被再次命中提取。 - 压缩后重注入:会话被压缩(手动
/compact或 token 压力自动触发)后,下一个用户 消息轮自动重新注入长期记忆快照 + 本会话此前用memory_project查阅过的项目全景 + 本会话自己写入/更新过的记忆原文(均按最新数据重新整理)——压缩甩掉的"记性"一个回合 就补回来,AI 不会因为压缩突然失忆。 - 工具集:
memory_remember(写入,必填 content/project/keywords/importance 且缺失报错引导重填, 自动去重合并,返回读回确认:关键词/项目归属)/memory_search(BM25 × 近期权重,支持 level/project/status/days 过滤,默认 top10 = 前 5 条 最相关不排除已见 + 后 5 条绕开已见补齐,按记忆时间戳排序;返回检索元数据视图: 归属 + 完整 id + 相对时间 + 关键词列表,不含原文)/memory_project(项目全景注入段落:project 参数必填——你要看哪个项目的信息?按子标签分组、未过时条目全给、每条带完整 id 与 最后更新时间戳、todo 输出「已完成:」最近 5 条 +「To do list:」,末尾附记忆库与 会话历史定位说明)/memory_find_similar(查重与冲突检测)/memory_read/memory_update(含 status active/archived/stale、importance、goal、keywords 手动修正)/memory_dream(手动触发; 用户也可以直接在输入框敲/dream命令)。 - 记忆时间戳(
updated_at= 最后更新时间):dream 封存或memory_update刷新时更新。 展示的时间戳一律是updated_at;search(工作视图)带相对时间戳,命中注入/memory_project (原文视图)带相对 + 绝对时间戳(如「2026-08-15 10:58 [2 天前]」)。 - project 归属:全局适用的信息 project 填
"全局"(与留空=未标记区分);同时适用于 多个项目时用英文逗号分隔(如"dsh, femo")——检索/命中按"包含当前项目名 或 全局"判定。 - 按窗口 dream:窗口空闲 ≥
idleMinutes(默认 180 分钟 = 3 小时)即进入允许 触发状态(替代原夜间窗口),每个最后发言晚于上次 dream 的窗口由自己的主 agent 整理——分轮处理(第 1 轮原子记忆 project/fact/lesson/rules/soul/user,第 2 轮 topic 记忆,第 3 轮项目总结——本窗口涉及具体项目时追加:调 memory_project 复查并精简成 新的项目长期记忆,被取代的旧条目归档),project 小标题分段,每条记忆附关键词行 (AI 核查/重写关键词用),范围=本窗口 建立 + 提取过(注入/检索/查阅 memory_read)的记忆,使用其完整会话上下文; 长期稳定的 rules 不反复重审(dream.rulesReviewDays默认 2 天内有更新才进清单, 防"没话找话"式更新)。峰时抑制(按timeZone计算,默认 北京时间):suppressWindows(默认 09:00–12:00、14:00–18:00,API 峰谷电价峰时) 及各自开始前suppressLeadMinutes(默认 15)分钟内不触发,峰时结束后下一个检查 周期自动触发;进行中的 dream 不打断。无 live agent 且超过 24h 的旧窗口、以及已归档 的会话,均不处理。 /dream命令:不想等空闲触发?在输入框敲/dream立即手动唤起本窗口的记忆整理 (与memory_dream工具同语义,不受峰时抑制)。dsh 命令平面执行、不发给模型,输入/的补全菜单里直接可见;已有整理在进行中会明确提示,不会重复启动。- 跳过梦境整理(client 端):某个窗口的记忆不想被自动整理?左侧边栏该会话行的「…」
菜单里点一下**「跳过梦境整理记忆」即可,再点「取消跳过梦境整理记忆」恢复。被跳过
的窗口不再被空闲定时器自动 dream(
/dream与memory_dream手动触发不受影响), 会话列表里显示静音灰「月牙+斜杠」**图标、一眼可辨。跳过状态持久保存、重启不丢; 双实例共享同一记忆库,状态天然一致。 - 反思:单次任务内连续 ≥7 个工具 step 后,插件询问模型自上次整理以来是否有值得记忆的内容。
最后工具是
memory_*视为已主动记忆、不重复反思;被取消的轮次绝不触发。 - 注入折叠 UI(client 端):首轮长期记忆 / 每消息关键词命中的注入文本在前端 折叠成「▸ 已注入记忆(长期记忆/关键词命中)」横条(与用户气泡同宽),点开可查看 注入全文;用户 prompt 以气泡形式直接显示,消息流干净不被注入刷屏。纯文本消息才折叠 (带附件的保持原样)。
- 反思轮折叠 UI(client 端):记忆反思/dream 轮的 prompt 与后续 think/tool call/汇报 折叠成一条横条(默认折叠,显示「新增记忆 N 条」/「记忆梦境任务」),点击向下展开成 卡片查看完整记录——卡片内 Think / tool call / 上下文注入均可点开查看细节。
- 会话列表 dream 图标(client 端):左侧会话列表中,"dream 整理过记忆且之后无新对话
新信息"的会话行显示淡黄色小月牙 🌙;dream 轮进行中显示白→金呼吸灯月牙(与 dsh
状态点并存、月牙居左,不与正常工作混淆);被跳过梦境整理的会话显示静音灰「月牙+斜杠」
(取消跳过自动回落;优先级:呼吸灯 > 跳过 > 月牙);有新活动即移除。图标放进 dsh 会话行的
状态槽位、状态点左侧——只追加/只移除自有节点,不改写 React 拥有的子节点(整槽替换会令
React 虚拟 DOM 失同步,commit 抛 removeChild NotFoundError 把侧边栏整树卸载)。
数据走全页共享的 60s 轮询 diff(v0.23.0 连接池修复,替代原 SSE 长连接):
/meow-memory/dreamed-sessions与/meow-memory/skip-dreams各一次 GET,事件语义不变—— dream 开始推state:'dreaming'、完成推state:'dreamed'、有新活动推state:'active'、 跳过翻转推state:'skip'/'unskip';client 挂载时全量对账一次。 行定位零 dsh 改动:读 React 18 fiber(__reactFiber$内部属性)拿会话行渲染 key = session id,不依赖标题匹配。 - dream 防重复:check 门(DB 原子 60s 检查节流)+ start 幂等抢占(
dream_pending)+ 中断自愈(未收尾的 dream 自动补收尾)+ 孤儿收尾(跨实例/热重载后 turn 结束也能收尾); 插件注入轮的事件不刷新窗口活跃度——已 dream 的窗口不会反复被 dream。 - 零运行时依赖:
node:sqlite(Node ≥22.13 默认可用;22.5–22.12 需--experimental-sqlite)+ 自包含 esbuild 产物(lib/index.js)。 无原生模块。
Showing the opening section of the README — the full document lives in the repository以上为 README 开头摘要,完整文档在仓库内 · View the full README on GitHub →在 GitHub 查看完整 README →
vshulcz/deja-vu
adoresever/graph-memory
mnemon-dev/mnemon
slow-stack/mneme
Aik358/dsh-auto-memory
JingxuanC/causal-memory