DSH-Mem0:为 DeepSeek Harness 接入 Mem0 长期记忆

前言

在 DSH 里做多轮对话或带工具的智能体时,上下文窗口会不断被历史占满;把整段聊天记录塞进 system prompt 既费 token,也难让模型稳定「记住」用户偏好和项目事实。常见做法是自己在 Host 里做 RAG 或手写记忆层,还要处理注入格式、失败不阻塞请求、以及低价值回合要不要写入等问题。

下面介绍社区插件 DSH-Mem0(仓库 light-cheng/DSH-Mem0):在 DSH 上封装 Mem0,提供自动召回与保存、可编辑记忆摘要、token 预算与定期巡检,并带可视化设置页。维护者为 light-cheng,在插件目录中归类为记忆;GitHub 星标为 1(截至资料抓取时)。当前 npm 包版本为 0.2.3,要求 Node.js ≥ 22,DSH ≥ 0.2.1-rc.5 且 < 0.3.0,许可证 MIT。

这是什么

DSH-Mem0 是给 DeepSeek Harness 用的通用 Mem0 长期记忆插件:同一套自动记忆逻辑与 mem0_* 工具,可在三种后端之间切换——Mem0 Platform(托管 API,一般只需 API Key)、自建 Mem0 REST 服务,或 本地 OSS Python sidecar(复用本地 Mem0 SDK、Qdrant、embedding 等,例如 bge-m3 自托管环境)。

核心功能

自动召回与保存

每个回合会用最近一条真实用户消息做语义搜索,把命中内容以 <mem0-relevant-memories> 数据块注入模型上下文;搜索失败或超时不会阻塞本轮模型请求。回合正常结束后,用户与助手文本会交给 Mem0 做事实抽取并写入;中断、失败或被拒绝的回合不会保存。默认启发式过滤会跳过问候、简短确认和纯命令回合,减轻无价值记忆。

记忆摘要与预算

除相关记忆外,插件还会从已存记忆中按重要度与新鲜度生成结构化记忆摘要,在相关记忆之前以 <mem0-user-profile> 注入;默认摘要预算 1375 tokens,召回块默认 2200 tokens。摘要可在设置页编辑,也可由 Agent 调用 mem0_profile_get、mem0_profile_update、mem0_profile_reset;手动编辑在周巡检后仍保留,「从记忆重建」可恢复自动生成版本。

巡检与显式工具

默认每 7 天(可设为 1–90 天)做一次记忆卫生:去重并按价值清理超预算项;存储上限默认为 500 条记忆、估算 20000 tokens。画像与巡检历史保存在当前 DSH profile 的 dsh-mem0/maintenance.json,不写回 Mem0。

显式工具包括:mem0_search、mem0_add、mem0_get、mem0_update、mem0_delete、mem0_status,以及上述 profile 相关三个工具。设置页可查看最近自动保存/召回状态、最近写入的记忆,并打开记忆库搜索当前用户的全部记忆;对话输入框下方还有点阵地球仪指示前台记忆活动状态。

安全与界面

OSS sidecar 仅监听 127.0.0.1 随机端口并使用随机 token;写入与召回前会对常见密钥脱敏;mem0_status 不返回 API Key。界面文案跟随 DSH 语言设置;已存记忆文本可按页面语言翻译并缓存,无可用模型时回退原文。

安装与启用

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

从 npm 安装(包已发布时):

dsh plugin --profile desktop add dsh-mem0

本地开发目录安装(在插件仓库根目录执行):

dsh plugin --profile desktop add link:"$(pwd)"

亦可通过 DSH Plugin Manager 安装本地 bundle:

plugin_manager action: install_bundle
target: <本目录的绝对路径>

若安装后提示 restart-required,需重启 DSH 再验证。社区目录页:SkillHub - DSH-Mem0(独立站点,与 DeepSeek / 幻方无官方从属关系)。

典型用法

在设置页配置(推荐)

安装后打开 DSH 侧栏 插件,在 已安装插件 中打开 Mem0 长期记忆(英文界面为 Mem0 Memory)。选择后端、填写连接字段,用 测试连接 做与 mem0_status 同源的健康检查,保存即可。Platform 模式也可在 profile 的 cordis.patch.yml 中手写,例如:

- id: dsh-mem0
  name: dsh-mem0
  config:
    backend: platform
    apiKey: "your-platform-api-key"
    userId: "your-user-id"
    agentId: "dsh"

API Key 也可改用环境变量名 apiKeyEnv: MEM0_API_KEY,对应默认环境变量 MEM0_API_KEY。

OSS 本地后端概要

先准备 Mem0 OSS 配置文件(示例见仓库 examples/oss-config.example.json),并自行创建 Python 虚拟环境与依赖;当前版本不会在插件加载时静默安装 Python 或 Qdrant:

python3 -m venv ~/.dsh/mem0/venv
~/.dsh/mem0/venv/bin/pip install "mem0ai>=2.0.10,<3" qdrant-client openai
config:
  backend: oss
  pythonPath: "~/.dsh/mem0/venv/bin/python"
  mem0ConfigPath: "~/.dsh/mem0/oss.json"
  collectionName: "dsh_mem0"
  userId: "your-user-id"

Agent 侧工具

需要主动查记忆时调用 mem0_search;要原样写入一条事实用 mem0_add(文档说明为 infer:false)。修改配置后需重新加载插件或重启 DSH。若不希望自动保存,将 autoCapture 设为 false;若希望完全手动控制删除行为,可将 hygieneEnabled 设为 false(文档说明此时仍可能在画像缺失时构建画像,但不会自动删除记忆)。

适用场景与注意

  • 适合:希望在 DSH 里统一 Mem0 长期记忆、且可能在 Platform、自建 server、本地 Qdrant 之间切换的团队或个人。
  • Platform / server:记忆保存在对应服务侧,需自行了解其隐私与保留策略。
  • OSS:记忆落在你配置的 Qdrant 与 embedding/LLM 服务中;sidecar 仅 loopback,但仍依赖本机 Python 环境与外部向量库。
  • 权限:插件与 DSH Host 同进程权限;autoCapture 默认开启,写入前虽有脱敏,不能替代完整的密钥管理。
  • 生态:DSH 理念是「一切皆插件」;市场收录由 awesome-dsh-plugin 等社区流程驱动,与本插件的可视化配置页无强制绑定关系。

结尾

经过上面的步骤,DSH-Mem0 把 Mem0 的召回、保存、摘要、预算与巡检收进一个 DSH 插件,并给出可验证的设置页与工具面。进一步细节见仓库 README(含简体中文) 与目录页 https://www.skillhub.cn/plugins/light-cheng/DSH-Mem0。

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

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

小夜