dsh-mem0:基于 mem0 的 DSH 长期记忆插件

前言

在 DeepSeek Harness(DSH)里做智能体时,上下文窗口只能覆盖当前会话;关掉页面或换话题后,模型不会自动记住你说过的工作习惯、项目约束或长期偏好。常见做法是手写摘要、外挂向量库,或每次手动粘贴「背景说明」,运维和一致性成本都偏高。

下面介绍社区插件 dsh-mem0(维护者 0Junze0,分类:记忆)。它在 DSH 内嵌 mem0 语义记忆、持久主题图 与 用户画像,并提供全屏记忆页;向量落在本地 Chroma(SQLite),单机运行、不依赖外部数据库,抽取与 embedding 走你配置的 OpenAI 兼容 API(README 默认示例为 DeepSeek + 硅基流动 bge-m3)。

这是什么

dsh-mem0 是给 DeepSeek Harness 用的长期记忆插件:自动召回相关事实、会话结束后追加写入、夜间批量去重与矛盾处理,以及主题卡片与用户画像管理。

插件以当前 DSH 进程权限运行;安装前请自行审阅源码与许可证。

核心功能

自动召回与写入

  • 自动召回:每轮通过 systemPrompt.context 注入画像与相关事实,不伪造消息、不改写用户输入。
  • 白天只追加:会话结束或闲置 N 分钟后,一次模型调用抽取事实直接入库,不做比对,成本较低。
  • 夜间批量整理(默认每天 03:30,Asia/Shanghai):精确去重 → LLM 逐对归纳同一事实 → 矛盾处理(保留较新)→ 主题图同步 → 卡片/画像 → git 同步。

主题图、画像与工具

  • 持久主题图:主题为稳定节点(中心向量与演化历史);新事实按语义归入,相近主题合并,长期不用可归档。
  • 用户画像:PROFILE.md 四板块(身份/偏好/观察/待确认),提供 profile_get / profile_update 工具。
  • 按需检索:memory_search 工具。
  • 快照与撤销:破坏性操作前自动快照(保留最近 20 份),面板可一键回滚。

界面

  • 全屏记忆页:左侧边栏入口;状态 pills、记忆列表(搜索/新增/多选合并/删除)、主题卡、主题图(滚轮缩放、拖拽平移)。
  • ⌘K 搜索:命令面板快速定位记忆。
  • 设置页与 /mem0 面板路由由插件托管本地 Python 服务(uvicorn,默认 127.0.0.1:18762)提供。

架构概览

DSH 插件(index.js / client.js)
  ├─ 托管本地 Python 服务(uvicorn,默认 127.0.0.1:18762)
  ├─ 代理 /mem0 面板路由
  ├─ agent/pre-step            → 异步召回,写入缓存
  ├─ systemPrompt.context      → 同步渲染「画像 + 相关记忆」
  ├─ agent/assistant-stream    → 累积助手回复
  ├─ agent/disposed / 闲置定时器 → 捕获对话(有序 user/assistant)
  ├─ tools                     → memory_search / profile_get / profile_update
  └─ 每天 03:30(Asia/Shanghai)→ 去重 → 归纳 → 矛盾 → 主题图 → 同步
Python 服务(server/app.py)
  └─ mem0 + Chroma + 主题图 + 卡片/画像文件 + 快照 + git 同步

设计取舍(README 原文要点):相似度只做「疑似重复」报告;归纳采用逐对判定而非模型直接聚类;注入走系统提示;合并/删除/整理前先快照。

安装与启用

先做 Python 环境与数据目录,再把 server 与配置拷到 MEM0_HOME,最后在 DSH 里添加插件。以下命令来自仓库 README。

export MEM0_HOME="$HOME/.dsh-mem0"
mkdir -p "$MEM0_HOME"
python3 -m venv "$MEM0_HOME/.venv"
"$MEM0_HOME/.venv/bin/pip" install mem0ai chromadb fastapi uvicorn httpx spacy
"$MEM0_HOME/.venv/bin/python" -m spacy download zh_core_web_sm   # mem0 抽实体需要
cp -r server export_mem.py sync.sh "$MEM0_HOME"/
cp config.example.json "$MEM0_HOME/config.json"    # 填入你的 API Key

dsh plugin --profile web add <本仓库地址或本地路径>

config.json 至少修改两处 api_key:抽取用的 LLM 与 embedding(OpenAI 兼容接口即可)。

插件设置页配置项

可在 DSH 设置面板调整下列键(默认值见下表):

键 默认 说明
enabled true 总开关
recallEnabled / recallLimit / recallMinScore / recallTimeoutMs true / 5 / 0.45 / 600 自动召回
captureEnabled / captureMode / captureIdleMinutes / captureMaxChars true / session-end / 30 / 6000 自动写入
consolidateEnabled / consolidateAt / consolidateThreshold true / 03:30 / 0.93 夜间去重
mergeEnabled true 夜间 LLM 归纳同一事实的不同表述
supersedeEnabled / supersedeMinOverlap true / 3 矛盾处理
cardsEnabled true 主题图与卡片生成
syncEnabled / syncHours true / 6 定期推送到 git
panelEnabled true /mem0 面板

典型用法

日常对话

启用插件并保持 recallEnabled、captureEnabled 为 true 后,正常在 DSH 里对话即可:每轮系统提示会带上画像与召回记忆;会话结束或闲置达到 captureIdleMinutes 后会追加抽取入库。

Agent 工具

模型可调用:

  • memory_search:按需检索记忆。
  • profile_get / profile_update:读写在 PROFILE.md 中的用户画像。

记忆页与整理

浏览器打开 DSH 后,从左侧边栏进入全屏记忆页(/mem0),可搜索、新增、多选合并或删除记忆,查看主题卡与主题图。夜间流水线也可通过 Python 服务 POST /nightly/run 手动触发完整整理;具体 HTTP 路径见 README「主要接口」一节。

本地 Python 服务主要接口包括:

GET  /status              状态卡数据
GET  /list  /stats  /export
POST /search /add /update /delete
POST /capture_append      白天纯追加(一次模型调用)
POST /consolidate         精确去重
POST /nightly/run         手动触发完整整理
GET  /topics/graph        主题图
GET  /snapshots/list  POST /snapshots/restore

适用场景与注意

适合:希望在 DSH Web 侧长期积累个人或项目事实、用主题图组织记忆、并愿意自备 LLM 与 embedding API 的开发者。

注意:

  • 插件会启动本地 Python 服务并读写 MEM0_HOME 下的 Chroma 与文件;若开启 syncEnabled,会按配置定期 git 推送,需自行保管密钥与远程仓库。
  • 社区目录 SkillHub 为独立站点,与 DeepSeek / 幻方无官方从属关系;DSH 生态理念是「一切皆插件」,本插件为社区维护(GitHub 星标以目录页为准)。

结尾

dsh-mem0 把 mem0、本地向量存储、夜间整理流水线与全屏记忆 UI 收进一个 DSH 插件:白天低成本追加,夜间去重与矛盾处理,召回走系统提示而不污染消息序列。需要细节时直接查阅 GitHub README 与 SkillHub 目录页。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye