在 DeepSeek Harness (DSH) 的插件化架构中,Agent 的长期记忆往往需要独立于宿主进程管理。dsh-mem0 专注于解决这一场景:它允许宿主 Agent 通过 mem0_* 工具直接读写自部署的 mem0 REST 服务。
这是一个由 orangeshinee 维护的插件。它对接新版 OSS 构建(mem0/mem0-api-server),支持 Dashboard、X-API-Key 认证,且 REST 端点无 /v1 前缀。通过热插拔机制挂载,无需修改 DSH 源码。
核心工具能力¶
插件提供以下工具,覆盖记忆生命周期的读写操作:
- mem0_add:写入记忆,支持字符串或消息数组,默认按
defaultUserId/defaultAgentId归类。 - mem0_search:语义搜索,返回结果带相关性分数。
- mem0_get:读取记忆列表(按标识符过滤)或单条。
- mem0_update:更新记忆文本、metadata 或过期时间。
- mem0_delete:删除单条记忆;批量删除需确认
confirm: "DELETE ALL"且用户为 admin。 - mem0_history:查看单条记忆的变更历史。
- mem0_reset:清空全部记忆,需确认
confirm: "RESET"且用户为 admin。 - mem0_status:健康检查、认证状态及配置状态(不输出 apiKey)。
安装与启用¶
安装过程通过 DSH CLI 完成,支持从 GitHub 仓库或本地目录挂载。
# 从 GitHub 安装
dsh plugin --profile web add github:orangeshinee/dsh-mem0
# 从本地目录安装(热插拔)
dsh plugin --profile web add link:$(pwd)
# 装完重启 dsh web 生效
配置方式¶
插件不提供侧边栏 UI,但内置了浏览器端配置卡片。用户需在设置面板 → 插件 → 插件配置中编辑 dsh-mem0 卡片。
关键配置项¶
| 键 | 默认值 | 说明 |
|---|---|---|
baseUrl |
http://127.0.0.1:8888 |
自部署 mem0 地址(无尾斜杠,无 /v1) |
apiKey |
空 | dashboard「API Keys」创建的 m0sk_... 或 legacy ADMIN_API_KEY |
authType |
apiKey |
认证方式:apiKey / adminKey / jwt / none |
defaultUserId |
HeTony |
未指定 user_id 时的默认归属 |
defaultAgentId |
dsh-agent |
未指定 agent_id 时的默认归属 |
timeoutMs |
15000 |
单请求超时时间 |
announceToAgent |
true |
是否向 Agent 宣告插件能力 |
enabled |
true |
总开关 |
安全机制¶
配置经 dsh settings provider 持久化。插件配置卡片由浏览器端提供(client/client.cjs),通过插件自带的 /api/dsh-mem0/config 路由读写。由于 Harness 的 settings 线上通道只开放白名单命名空间,插件无法自行加入。apiKey 在 schema 上标记为 role('secret'):路由只下发“已配置/未配置”标记,密钥字面量不会进入浏览器。
运行时依赖¶
运行时依赖(@deepseek-ai/dsh-settings / @deepseek-ai/schemastery)已列为硬依赖。dsh plugin add 会随包安装(profile 默认 autoInstallPeers:false,peerDependencies 不会被装)。
适用场景¶
该插件适合需要长期存储 Agent 上下文、对话历史或业务数据的场景。由于以当前 dsh 进程权限运行,安装前应检查源码与许可证。