Phant0Meow/dsh-meow-memory ↗★ 127

meow-memory

跨会话的七层SQLite项目记忆插件 适合需要长效项目记忆、自动反思和闲时记忆整理的复杂开发任务。

套件
meow-memory
相容性
待驗證
版本
0.29.0
授權
MIT
最近更新
2026年9月24日

同名套件的其他儲存庫

安裝

$npx -p @deepseek-ai/dsh dsh plugin --profile web add github:Phant0Meow/dsh-meow-memory

⚙️ 配置

所有字段均可选(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             # 每条用户消息关键词命中的条目数上限(fact/lesson/rules/topic)
    reflect: true          # 连续 ≥reflectTurns 轮工具调用后自动反思
    reflectTurns: 7        # 触发反思所需的连续工具轮数
    dream:
      enabled: true
      idleMinutes: 180      # 窗口空闲 ≥180 分钟(3 小时)允许 dream
      suppressWindows:      # 峰时抑制时段(按下方 timeZone 计算,"HH:MM" 起止)
        - start: '09:00'    #   API 峰谷电价峰时
          end: '12:00'
        - start: '14:00'
          end: '18:00'
      suppressLeadMinutes: 15  # 每个峰时开始前 15 分钟也不触发
      checkMinutes: 15
      timeZone: 'Asia/Shanghai'  # 用户机器时钟为美区时间;抑制时段必须
                                 # 按此固定时区计算
      rulesReviewDays: 2    # updated_at 距今超该天数的稳定准则不进 dream 第 1 轮
                            # 清单(防反复整理不变化的条目);0 = 不过滤
    delegate:
      model: ''            # 整理任务换模型(可选):填写后反思轮与梦境轮自动换用
                           # 该模型执行,轮次结束自动换回主模型;'provider/model'
                           # 指定 provider+model,'model' 只换模型(provider 继承
                           # 主会话);留空 = 全程主模型

整理任务换模型(可选)

反思轮和 dream 各组始终在主窗口执行(steer)——prompt、模型回应、工具调用落在主会话 log(折叠 UI 负责视觉收纳)。独立 fork 子代理执行方式已于 v0.24 移除,不再提供"独立执行"开关。

如果想让记忆整理换个(更便宜的)模型跑:配置 delegate.model 后,反思/梦境轮发起的每个 LLM 请求会经 dsh 的 agent/request waterfall 自动覆盖 provider/model,轮次结束自动换回主模型——正常对话、工具轮完全不受影响。实现是无状态的:按"当前 turn 是否携带反思/梦境指令标记"逐请求判定,用户中止、崩溃、热重载都不会留下"卡在换模型"的脏状态。

界面语言:跟随 DSH 语言设置(v0.27.0)

插件界面文案(折叠横条、打点气泡、会话菜单项、设置页)走独立的 UI 文案层,跟随 DSH 的「设置 → 通用 → 语言」:内置 中文 / English / Português (Brasil) 三套字典, 切换即时生效(设置页标签按官方契约重新注册,纯 DOM 节点经重放注册表刷新)。

它与 promptLang(模型文案)是两层,互不影响:界面可以跟随外壳语言,而注入给模型的 prompt 仍按 promptLang 走(promptLang 只选 src/prompts/ 里的模型文案包,目前内置 zh / en)。老宿主(无 locale 服务)自动降级为浏览器语言 + 内置字典,最终落 zh ——中文用户浏览器也是中文时界面不变,浏览器要英文的用户则拿到英文(这正是本次改动的目的)。

自定义 / 社区界面语言:加一个字典文件 + 在 SUPPORTED_UI_LOCALES 加一行(不改 UI 代码), 详见 src/i18n/README.md。

promptLang:prompt 与检索语言(重要)

promptLang 决定两件事:①注入/反思/dream 文案的语言;②工具描述的语言。它同时影响模型写记忆条目用的语言——关键词按条目语言提取,以你说话的语言为准。

因此首次使用时请显式配置它:promptLang: 'zh'(默认)、'en'(内置英文语言包)或 'pt-br'(内置巴西葡语语言包)。配置值就是子目录名,逐字匹配:填一个 src/prompts/ 里不存在的名字(例如 pt)不会报错,而是静默落回中文包。

检索侧说明:BM25 分词自 v0.20.0 起语言无关(类别路由),条目与查询语言不一致不再"杀检索";en 模式额外启用英语归一化(停用词过滤 + Porter 词干还原),屈折变化不影响命中(tokenizers 能命中存为 tokenizer 的条目)。

自定义 / 社区语言包:prompt 文案是数据文件(src/prompts/),一门语言一个子目录,改文件即生效、无需改代码——详见 src/prompts/README.md(含贡献指南与 npm run check-lang 自查)。实例级自定义:/.dsh-meow/prompts// 下放同名槽位文件即可覆盖(可只覆盖部分)。