DeepSeek Harness 的跨会话记忆插件:七层 SQLite 存储(soul/user/project/fact/lesson/topic/rules)、BM25 检索、按窗口做梦境整合。
66.3/100
综合分
351
GitHub 星标
12,946
npm 周下载
—/5
用户评分
数据截至 2026/11/3 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add meow-memorynpm 源 · meow-memory 的发布者账号已校验与本仓库一致
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:已验证
是什么
dsh 原生插件 · market
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 0 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查✓ 自动检查通过展开查看检查明细 ↓
以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。
✓npm 包meow-memory @ 0.32.1
✓Node 引擎未声明 engines.node
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明
验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/29 15:34:04
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
读写/删除本地文件写入剪贴板(不计风险)发起外部网络请求
查看扫描证据(共 110 处,展示前 21 条)
- 读取本地文件lib/index.js:37
const parsed = JSON.parse(readFileSync(homePointerFile(), "utf8")); - 读取本地文件lib/index.js:40
if (!isAbsolute(r) || r === dirname(r) || r === resolve(homedir()) || !existsSync(r)) return void 0; - 读取本地文件lib/index.js:82
for (const e of readdirSync(dir, { withFileTypes: true })) { - 读取本地文件lib/index.js:93
if (existsSync(to) && readdirSync(to).length > 0) { - 读取本地文件lib/index.js:93
if (existsSync(to) && readdirSync(to).length > 0) { - 读取本地文件lib/index.js:102
if (existsSync(to)) { - 删除本地文件lib/index.js:104
rmdirSync(to); - 写入本地文件lib/index.js:110
mkdirSync(dirname(to), { recursive: true }); - 写入本地文件lib/index.js:112
renameSync(from, to); - 写入本地文件lib/index.js:118
mkdirSync(to, { recursive: true }); - 写入本地文件lib/index.js:125
mkdirSync(dirname(ptr), { recursive: true }); - 写入本地文件lib/index.js:126
writeFileSync( - 写入本地文件lib/index.js:135
writeFileSync( - 删除本地文件lib/index.js:4062
unlinkSync(file); - 发起网络请求lib/client.js:1055
fetch("/meow-memory/dreamed-sessions", { cache: "no-store" }), - 发起网络请求lib/client.js:1056
fetch("/meow-memory/skip-dreams", { cache: "no-store" }) - 发起网络请求lib/client.js:1307
const response = await fetch("/meow-memory/dreamed-sessions", { cache: "no-store" }); - 发起网络请求lib/client.js:1446
const response = await fetch("/meow-memory/skip-dreams", { cache: "no-store" }); - 发起网络请求lib/client.js:1465
const response = await fetch("/meow-memory/dreamed-sessions", { cache: "no-store" }); - 发起网络请求lib/client.js:1767
const resp = await fetch("/meow-memory/skip-dreams", { - 写入剪贴板lib/client.js:2872
await navigator.clipboard.writeText(text);
扫描于 2026/11/3(0 天前) · 范围 入口闭包 + 全包扫描 · 来源 npm 发布包
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
依赖的 DSH / Cordis 模块
@deepseek-ai/schemastery@deepseek-ai/dsh-llm给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 跨会话长期记忆
- 七层SQLite存储
- BM25检索
最近更新
在 GitHub 查看全部 →v0.32.32026-10-31
· 修复
· #98 — delegate.model 未处理 reasoningEffort:换模型覆盖 provider/model 时主会话的思考档位被原样透传,目标模型不声明思考档位就在请求发出前被 UNSUPPORTED_REASONING_EFFORT 拒掉——模型其实答完了也被判失败,dream 同组反复投递直到预算耗尽。新增 delegate.effort 配置:留空(默认)= 剥离主会话档位(fail-safe,推荐);inherit = 沿用主会话档位(旧行为);显式值 = 原样下发。轮次结束还原主模型时档位一并还原。
· #91 — 使用信号接在错误事件上:bumpHit 只在 memory_search 一处调用,每消息自动注入这条主路径从不计数;衰减读 updated_at(=多久没被编辑)而非使用时间——"长期在用但没人改"的记忆被误判过期。现在:命中注入即计数(首轮快照注入刻意不计:全量一过没有区分度);search/keywordHitScore 衰减按 last_accessed_at(从未被用回退 updated_at)。#96(体检报告)的地基。
· #89(PR #90,作者 g-yixuan)— 多会话并列时折叠横条互相删除:折叠/注入/delegate 提示/导航隐藏全部改为按视图作用域(每 dock 只查询、更新、观察自己所属的 [data-conversation-scroll]),嵌套 data-chat-flow(#93 的 PTC 两级容器重复插条,实测一份内容 7 份)同批覆盖。附 20 项 jsdom 多视图回归。
· #86 后续 / #88(PR,作者 specetator)— 打包:dsh-llm 从 bundle 内联改为 external(运行时由宿主解析,消除双实例;已在 vanilla 0.2.0-rc.1 真宿主上通过隔离 profile 集成测试);设置页 slot 未就绪不再抢注册(每次加载刷 error 的问题消失);toolCallDetail 参数兜底容错 + fillBody 逐行 catch(形状异常降级为未增强行,不再炸掉整个折叠 dock——#92 症状同链路)。
· 工程
· link-workspace.ps1:修 -Depth 扫不到两层包布局 + 管道静默不创建的问题;缺 workspace 降级警告不挡干净安装。
· 测试基线 624+11+28+69+71+24+31 + client-fold/multiview 全绿。
v0.32.22026-10-31
· 修复
· #85 — PTC 会话反思守卫失效 + 折叠卡片计数恒 0:scanTurn 下钻 tool/ptc-dispatch 子调用落定事件(宿主保证 turn 收尾前全部落流),lastToolName 恢复真实最后工具名;consecutiveToolSteps 子调用不计数但 memory_* 子调用照旧中断连续段(防止几十个子调用瞬间打满反思阈值);客户端折叠计数递归遍历 root.subCalls,按 callId 去重。非 PTC 路径行为不变。
· #99 — remember 去重吞掉新记忆:去重候选只认 active——archived/stale 是被有意降档的条目,相似新内容合进去会继承隐藏状态、注入与检索都不可见。想复活归档条目走 memory_update 显式操作。
· #86 — 两个客户端 bug:① 设置页 slot 未就绪时的语言订阅同步回调不再抢注册(每次界面加载刷 slot "settings.section" is not declared error 的问题消失);② toolCallDetail 参数改兜底链解析(argsRaw/arguments/args/input,对象参数兼容),任何形状偏差降级为只显示工具名,且 fillBody 逐行 catch——单行增强失败不再把整个折叠 dock 从 conversation.composer.dock 槽位炸掉。感谢 #86 附件里完整的根因分析与已验证的修法建议。
v0.32.12026-10-26
· delegate 轮后还原主模型(#71,感谢 @Nyarlathoteppppp,PR #82)
· 宿主把请求实际路由写进 request/header,反思/dream 轮结束后下一条普通请求没有 pending 可回落就沿用 delegate 并自我固化。现在覆盖时记下被替换的主模型,下一条普通请求仅当解析结果仍是我们写下的 delegate 路由(= 纯 header 回落)时还原主模型
· 用户在 dream 期间亲手选过模型(model/selection 事件)→ 绝不覆盖用户选择;选中 delegate 本身同样放行
· 同一反思轮多步只记第一次;进程内 512 会话上限;宿主侧问题已在 deepseek-harness Discussions #10933 反馈
· file:/link: 安装不再带入旧版宿主包(#84)
· @deepseek-ai/dsh-llm/dsh-settings 此前在 devDependencies:pnpm 以 file:/link: 安装本插件时会把 0.1.x 旧版实体包装进 profile node_modules,0.2.1-rc.3 宿主版本门禁随即禁用 llm/settings 行
· dsh-llm 改为 peerDependencies + optional(运行时由宿主提供,装包器不自动装);dsh-settings 零引用,删除。已实测 pnpm file: 安装后 node_modules 无任何新增 @deepseek-ai/* 条目
数据来自仓库的 GitHub Release,可能与插件实际版本不一致。
README
由 DeepSeek 最新模型翻译生成meow-memory 🐱📝
| | English | Português (BR) | MIT License |
跨会话记忆插件,为 DeepSeek Harness(DSH)打造。
当前版本 0.31.0 | 版本变更见 CHANGELOG.md | 兼容 dsh 0.1.5
✨ 功能特性
- 七层记忆:soul(AI 自身)/ user(用户信息与偏好)/ project(项目信息,含 subcategory)/ fact(原子事实)/ lesson(教训与纠正)/ topic(进行中的话题,带目标句)/ rules(设计原则与行为准则)。每层一张 SQLite 表,UUID 带时间前缀,id 顺序即创建顺序。
- 首轮注入(长期记忆块):第一条用户消息前注入 soul / user / 设计原则 / 记忆导引。记忆作为独立 plugin snapshot 消息放在真实 user 消息之前,不改写用户 prompt;首轮不跑关键词命中(命中从第二轮起)。
- 每消息关键词命中:从第二条用户消息起,每条真实用户消息检索 fact/lesson/rules/topic(全局 + 当前 project 锚定),top-2 命中注入。命中基于条目关键词而非全文。
展开完整文档(README 剩余 1 节)
meow-memory 🐱📝 | | English | Português (BR) | MIT License | 跨会话记忆插件,为 DeepSeek Harness(DSH)打造。 当前版本 0.31.0 | 版本变更见 CHANGELOG.md | 兼容 dsh 0.1.5 ✨ 功能特性 - 七层记忆:soul(AI 自身)/ user(用户信息与偏好)/ project(项目信息,含 subcategory)/ fact(原子事实)/ lesson(教训与纠正)/ topic(进行中的话题,带目标句)/ rules(设计原则与行为准则)。每层一张 SQLite 表,UUID 带时间前缀,id 顺序即创建顺序。 - 首轮注入(长期记忆块):第一条用户消息前注入 soul / user / 设计原则 / 记忆导引。记忆作为独立 plugin snapshot 消息放在真实 user 消息之前,不改写用户 prompt;首轮不跑关键词命中(命中从第二轮起)。 - 每消息关键词命中:从第二条用户消息起,每条真实用户消息检索 fact/lesson/rules/topic(全局 + 当前 project 锚定),top-2 命中注入。命中基于条目关键词而非全文。 - 当前 project 锚定:带 project 参数即锚定该会话的当前项目;未锚定时命中只搜全局(用户闲聊不误伤)。 - 缓存友好设计:静态 meow-memory:guide section 在 system prompt 中注册一次——文本恒定,破坏不了 provider 的 KV 缓存。 - 压缩后重注入:会话压缩后,下一轮自动重新注入长期记忆快照 + 本会话查阅过的项目全景 + 本会话写入过的记忆原文,AI 不会因为压缩突然失忆。 - 七层之上的三件事:写入自动去重合并、按 updated_at 展示记忆时间戳、全局信息用全局标记(区别于留空)。 - 按窗口 dream:窗口空闲 ≥3 小时即允许整理,由该窗口自己的主 agent 分三轮处理(原子记忆 / topic / 项目总结),峰时抑制(默认北京时间 09:00–12:00、14:00–18:00,API 峰谷电价峰时)不触发。也可敲 /dream 立刻手动整理。 - 反思:单次任务内连续 ≥7 个工具 step 后,插件询问模型自上次整理以来是否有值得记忆的内容。最后工具是 memory_ 视为已主动记忆、不重复反思。 - 外部记忆库信任门:工作区自带的 .dsh-meow 若非本机创建(如 clone 的外部仓库),默认暂停注入/检索/整理——首轮提示一次,/meow-trust 一键信任、即刻生效;本机创建与升级前打开过的工作区自动信任,正常使用零感知。 - 客户端 UI:注入文本折叠成横条、反思/dream 轮折叠成一条可展开的卡片、会话列表显示 dream 状态图标(🌙 已整理 / 呼吸灯 进行中 / 灰月牙斜杠 已跳过)。 - 无需另装运行时依赖:node:sqlite + esbuild 产物(lib/index.js);schemastery 和 dsh-llm 由 DSH 宿主解析提供。无原生模块。 📦 安装 一键安装(推荐) dsh plugin --profile web add github:Phant0Meow/dsh-meow-memory 一条命令装完即生效:安装时自动编译(包内含 prepare 脚本),自动挂载,重启 dsh web 后新会话自动加载插件。 pnpm ≥10 默认会阻止安装期的构建脚本:首次 add 可能失败并提示 allowBuilds,按提示把输出的键加进 profile 的 pnpm-workspace.yaml 后重跑即可。 卸载 dsh plugin --profile web remove meow-memory PT-BR Fork 想要巴西葡语打包版本的仓库:coutogilson 的 fork: dsh plugin --profile web add github:coutogilson/dsh-meow-memory 手动安装(开发者,任意 DSH 安装,无需 npm) 1. 把本包复制(或软链)到 profile 的 node_modules: mkdir -p ~/.dsh/profiles/web/node_modules ln -s /path/to/meow-memory ~/.dsh/profiles/web/node_modules/meow-memory (Windows:New-Item -ItemType Junction ... —— NTFS junction,无需管理员权限。) 2. 把 meow-memory 加进 profile package.json 的 dsh.profile.bundles。 3. 重启 dsh web。新会话自动加载插件。 🔌 兼容性 支持 dsh 0.1.5(含最新的 0.1.5-rc.1),同时向下兼容旧版本——升级 dsh 不需要改本插件,也不需要改任何配置。 插件不写死版本号,而是运行时探测宿主能力,因此新旧版走各自正确的分支。已实测两代:0.1.5-rc.1 上首次注入、记忆工具调用、客户端渲染全部正常;0.1.1-rc.2 上行为与历史版本完全一致。 ⚙️ 配置 所有字段均可选(profile patch 或 cordis.patch.yml)。也可以不手编文件:DSH 设置页里有本插件的「喵记忆」标签页(与「通用」「模型」平级),下面这些项全部图形化可改、字段级保存、可单项恢复默认(恢复默认 = 回到插件出厂默认,不受 patch 基线影响);保存后热重载/重启 meow-memory 插件生效。 - id: meow-memory name: 'meow-memory' config: enabled: true # 总开关 projectDir: '.dsh-meow' # 记忆目录(相对工作区) promptLang: 'zh' # ⚠️ 首次使用建议显式配置(见下方说明) hitTopK: 2 # 每条用户消息关键词命中的条目数上限 dream: enabled: true idleMinutes: 180 # 窗口空闲 ≥180 分钟(3 小时)允许 dream 完整字段、类型与默认值见 docs/配置参考.md,含 titleMax / autoMigrate / homeDir / disabledWorkspaces / backup / delegate 等全部配置项。 ⚠️ promptLang 首次使用建议显式配置。 它决定注入/反思/dream 文案与工具描述的语言,同时影响模型写记忆条目用的语言——关键词按条目语言提取。内置 zh / en / pt-br 三套语言包。配置值就是 src/prompts/ 的子目录名,逐字匹配:填一个不存在的名字(例如 pt)不会报错,而是静默落回中文包。详见 docs/配置参考.md。 界面语言 插件界面文案跟随 DSH 的「设置 → 通用 → 语言」(内置中文 / English / Português (Brasil)),与 promptLang 是两层、互不影响。详见 docs/配置参考.md。 🧠 工作原理 第一条用户消息(首轮) 第二条起的每条消息 空闲≥3h 且非峰时 ┌────────────────────┐ ┌────────────────────┐ ┌──────────────────────┐ │ ===== 长期记忆 ===== │ │ 可能相关的记忆,仅供 │ │ 按窗口 dream: │ │ 【关于你】(soul) │ │ 参考:keywords 命中 │ │ 三轮(含项目总结) │ │ 【关于user】 │ │ top-2(全局+当前 │ │ 七层+提取过的, │ │ 【设计原则】(rules) │ │ project 锚定) │ │ updated_at 以 T 封存 │ │ 【记忆导引】 │ └────────────────────┘ └──────────────────────┘ └────────────────────┘ 已见 id 按会话记录独立 plugin snapshot (sessions/<id>.json) ↓ 原样 user prompt 压缩信号 → 释放已见每会话只注入一次,首轮不做命中 工具 | 工具 | 用途 | | memory_remember | 写入一条记忆(必填 content/project/keywords/importance,自动去重合并) | | memory_search | 关键词检索(BM25 × 近期权重,支持 level/project/status/days 过滤) | | memory_project | 取回某项目的完整注入段落(project 参数必填) | | memory_find_similar | 查重与冲突检测 | | memory_read | 按 id 读取单条完整元数据 | | memory_update | 修正 status / importance / goal / keywords | | memory_dream | 手动触发本窗口的记忆整理 | | memory_home | 查看 / 切换全局数据目录 | 另有 /dream 命令:在输入框敲 /dream 立即手动唤起本窗口的记忆整理,不受峰时抑制。 参数、返回与副作用见 docs/工具参考.md(含 memory_project 的项目锚定副作用与 memory_home 的三个预设目录标记)。 🛠 开发 npm install npm run build # esbuild 打包 → lib/index.js(宿主 peer 保持 external) npm run test # 228 项逻辑测试:db / bm25 / migrate / inject / reflect / dream / tools / apply @deepseek-ai/ 包位于 dsh-meow pnpm workspace 中,不在本包的 node_modules 里。 在 Windows 上,npm run link-workspace(或 scripts/link-workspace.ps1)创建 workspace 包的 junction 镜像,使 esbuild 能解析它们;build.mjs 通过 nodePaths 引用。 构建不需要安装可选的 dsh-llm peer。直接用 Node 运行测试时,仍需从匹配的 DSH workspace 链接 @deepseek-ai/dsh-llm;正常插件运行由 DSH 的 profile loader 解析宿主提供的 peer。不要把它加回 devDependencies,否则 file: / link: 安装可能再次向 profile 引入宿主核心包的另一份副本(#84)。 node tests/build-host-peers.mjs 单独验证无宿主 peer 的干净构建(#87)。 node tests/host-peers.mjs /path/to/node_modules/@deepseek-ai/dsh 使用另行安装的官方 DSH,验证隔离 profile 的真实 Host 装载和消息契约,不调用模型。 📚 文档 | 想了解 | 看这里 | | 七个工具的参数、返回与副作用 | docs/工具参考.md | | 全部配置项、类型与默认值 | docs/配置参考.md | | 为什么这样设计(缓存、命中、dream、踩过的坑) | docs/设计说明.md | | 装不上、检索不准、报错怎么读 | docs/常见问题.md | | 版本变更历史 | CHANGELOG.md | | 加界面语言 | src/i18n/README.md | | 加 prompt 语言包 | src/prompts/README.md | 🙏 致谢 感谢每一位贡献者,让 meow-memory 越来越好: - daveycodez — 英文语言包与英文分词(PR #6,v0.22.0 发布) - chenmzh — 记忆注入改为独立 plugin snapshot 消息,根治会话标题污染(PR #10) - cuddly-guacamole — dsh 0.1.2-alpha.4 双版本 Session events 兼容(PR #11) - coutogilson — 巴西葡语 prompt 语言包(src/prompts/pt-br/)与跟随 DSH 语言设置的界面文案层 📄 License MIT —— 见 LICENSE。
预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
Phant0Meow/dsh-meow-memory
DeepSeek Harness 的跨会话记忆插件:七层 SQLite 存储(soul/user/project/fact/lesson/topic/rules)、BM25 检索、按窗口做梦境整合。
相关插件 · 市场 / 管理
插件精选列表awesome-dsh-plugin/awesome-dsh-plugin
DeepSeek Harness(dsh)插件精选列表
★ 22,025未汉化DSH
73.6
新词雷达zhuyansen/new-term-radar
new-term-radar新词雷达
★ 2,049已汉化MCP
72.8
插件生态导航0xsline/awesome-deepseek-harness
安装 贡献指南 DeepSeek Docs 公开插件目录 Issues
★ 1,188已汉化DSH
72.6
技能注册中心iflytek/skillhub
企业级开源智能体技能注册中心——发布、发现并管理组织内可复用的技能包。
★ 5,358已汉化DSH
71.9
插件市场目录imsai-sh/awesome-deepseek-harness-plugins
面向 DeepSeek Harnessdsh生态的社区插件目录,共收录 13938 个插件含 PR 收录与…
★ 350已汉化DSH
71.8
插件精选清单Anil-matcha/awesome-dsh-plugin
DeepSeek Harnessdsh精选指南——DeepSeek…
★ 1,013已汉化DSH
71.7