跳到主要内容

dsh-iwiw-memory

已验证

dsh-iwiw-memory · v0.2.0 · MIT · Web 界面

IwIw 记忆插件:跨会话记忆,模型自主调用记忆工具(桥接 memory_agent MCP 内核)

安装

dsh plugin add dsh-iwiw-memory

用 dsh --profile default --dump-config 确认 layer 已生效 —— 参见安装指南。

源码

标签

作者

说明文档

dsh-iwiw-memory

IwIw 记忆插件:iwiw-memory 记忆内核的 DSH 接入端。让 DSH agent 拥有跨会话记忆、自动学习、自动反省能力——内核(Python)经 MCP 子进程挂载,本插件(TypeScript)负责工具注册、上下文注入与设置页。

能力

  • 4 个记忆工具:memory_remember / memory_search / memory_read / memory_list,模型自主调用写入与检索(与内核 CLI 同源)
  • 常驻注入:core 层画像 + rules 准则段每轮注入 system prompt,写入后自动刷新
  • 命中注入:每条用户消息触发检索,命中记忆以快照消息插入上下文(会话内去重、压缩后自动补回)
  • reflect steering:连续多步未写入记忆时注入一次性回顾提示
  • 记忆巩固:空闲期自动调内核巩固记忆(峰时抑制),结果下次对话一次性告知
  • 设置页:行为参数在 DSH 设置页可调,大部分热生效

前置要求

  1. DSH 桌面版(desktop profile)——插件走 desktop bundle 契约加载

  2. Python 3.10+ 与本仓库(记忆内核 memory_agent/ 就在本仓库根目录):

    git clone https://github.com/1w1w11w1/iwiw-memory.git
    cd iwiw-memory
    python -m venv .venv
    .venv\Scripts\pip install -r requirements.txt
    

安装(desktop profile)

插件包位于本仓库 dsh-iwiw-memory/ 子目录,lib/ 为预构建产物,无需本地编译。

1. junction 到 profile 的 node_modules:

New-Item -ItemType Junction -Path "<profile>\node_modules\@iwiw\dsh-iwiw-memory" -Target "<仓库根>\dsh-iwiw-memory"

2. profile 的 cordis.patch.yml 部署配置(python 缺省取 PATH 上的 python,cwd 必填且必须指向仓库根):

- id: 'dsh-iwiw-memory'
  config:
    enabled: true
    python: '<仓库根>/.venv/Scripts/python.exe'
    cwd: '<仓库根>'

desktop bundle 契约(缺一即启动崩溃):包内 package.json 声明 dsh.bundle.patch 指向 cordis.patch.yml;包内 patch 用 - insert: 行装载插件(name 必须是 npm 包名 dsh-iwiw-memory);profile patch 的 id 与 insert 行 id 一致。写入 profile 配置文件须无 BOM(UTF-8 无 BOM,否则 DSH 解析失败)。

重启 DSH 生效。启动日志出现 applied: 4 tools + 2 prompt sections + pre-step hook + consolidation scheduler 即挂载成功。

配置

部署级(仅 profile patch config,不进设置页):

字段 默认 说明
python PATH 上的 python Python 解释器路径(含 mcp/jieba 依赖的 venv 或系统 Python)
cwd 必填 仓库根目录(内核以 python -m memory_agent.mcp_server 在此目录拉起)
env — 覆盖 MCP 子进程环境变量(如 MEMORY_AGENT_DB_PATH 指向隔离库)

行为级(设置页可调,patch config 作初始值):

字段 默认 说明
hitTopK 3 每条消息命中注入条数上限
coreMaxChars 2500 常驻记忆段字符预算
reflectTurns 7 回顾提示触发步数,0=关闭
consolidateIdleMinutes 180 空闲巩固阈值(分钟),0=关闭
standingLayers profile,rules 常驻记忆类型,逗号分隔

开发

cd dsh-iwiw-memory
npm install
npm run build        # tsc(host 端)+ esbuild(client 端)
node scripts/host-smoke.mjs   # host 级冒烟(SMOKE_PYTHON / SMOKE_CWD 可覆盖部署路径)

发布

npm run release              # patch 版本(0.1.0 → 0.1.1)
npm run release -- --minor   # minor / --major / --dry-run(只验证不发布)

一条命令完成:build → 冒烟(失败即中止)→ 提交工作区改动 → 版本号 bump(commit + tag)→ npm publish(官方源)→ push main + tags。需要 ~/.npmrc 里有 Automation 令牌(bypass 2FA)。