dsh-compound-memory:在 DSH 里接入 compound-memory MCP 与技能包

前言

在 DeepSeek Harness(DSH)里跑智能体时,跨会话记住稳定事实、在任务开始前检索历史记忆,往往需要自己拼 MCP 客户端、技能目录和提示规则。社区里的 compound-memory 已经提供无 LLM 的记忆 MCP 服务,但把它和 DSH 的 Cordis 配置、技能挂载对齐,仍要手写 patch 行和环境变量。

dsh-compound-memory 是维护者 chinwe 发布的 DSH bundle 插件:启动既有 compound-memory MCP 进程、挂载包内 skills/compound-memory 技能,并在每个 live agent 会话首次进入时注入一段简短用法提醒。它不重新实现记忆逻辑,也不增加第六个 MCP 工具。

这是什么

dsh-compound-memory(npm 包名与插件名一致,当前版本 0.1.5,MIT 许可证)面向已使用 DSH 0.2 预发布线的开发者。插件通过 package.json 中的 dsh.bundle.patch 指向 ./cordis.patch.yml,向配置插入三行:

  • mcp-compound-memory:内置 @deepseek-ai/dsh-mcp-client,以 stdio 方式执行 uvx --from compound-memory compound-memory-server
  • compound-memory-rules:本包 index.js,负责会话级用法提醒
  • compound-memory-skill:内置 @deepseek-ai/dsh-skill-filesystem,仅挂载本包 skills/ 目录

engines.dsh 要求 >=0.2.0-rc.1 <0.3.0-0。包内不声明 @deepseek-ai/* 依赖;请勿自行再装旧版 MCP 客户端,DSH 0.2 已自带匹配客户端。

目录页:skillhub.cn/plugins/chinwe/dsh-compound-memory。源码与说明:github.com/chinwe/dsh-compound-memory。

核心功能

MCP 工具与 DSH 命名

底层仍是 compound-memory 的五个工具;在 DSH 中调用名如下:

MCP tool DSH 内名称
memory_search mcp__compound-memory__memory_search
memory_get mcp__compound-memory__memory_get
memory_write mcp__compound-memory__memory_write
memory_link mcp__compound-memory__memory_link
memory_feedback mcp__compound-memory__memory_feedback

文档注明:memory_search 返回对象的 hits 字段为数组。

会话级用法提醒

compound-memory-rules 监听 agent/pre-step,在 live agent 第一次符合条件的 enter 时追加一条 user 角色消息(同一会话后续步骤不再重复)。提醒文本定义在 index.js 的 RULES 中(约 356 字符),要点包括:用 COMPOUND_MEMORY_AGENT_ID(默认 agent-dsh)作为 source 与 agent;非琐碎任务前先 memory_search,采纳命中后调用 memory_feedback;在仓库内优先项目范围记忆;仅使用上述五个 mcp__compound-memory__memory_* 工具。

捆绑技能

skills/compound-memory/SKILL.md 是五个工具的详细用法;注入提醒是短规则,技能文档是长说明。非琐碎任务应先 memory_search,实际使用命中后调用 memory_feedback,且 agent 与 COMPOUND_MEMORY_AGENT_ID 一致;只写入稳定事实。

安装与启用

前提:已安装 dsh CLI;启动 dsh 的进程 PATH 上要有 uv / uvx。首次 uvx 拉取 PyPI 上的 compound-memory 需要网络;Python 由 uv 提供,不依赖系统 Python。本包无 install、lifecycle 或 postinstall 脚本。

从 npm 安装(资料中的官方命令):

dsh plugin --profile web add dsh-compound-memory

从 GitHub 安装:

dsh plugin --profile web add github:chinwe/dsh-compound-memory

从本地插件根目录安装(非子目录):

dsh plugin --profile web add /absolute/path/to/dsh-compound-memory

安装后重启 dsh。用下面命令确认出现 # == dsh-compound-memory 层及上述三行配置:

dsh --profile web --dump-config

若记忆库尚未初始化,可先执行:

uvx --from compound-memory compound-memory init

环境变量

在启动 dsh 的进程上设置;patch 加载配置时通过 !!js 读取。未设置或为空则使用默认值(均非密钥)。stdio 子进程从精简后的父环境启动,配置的 env 会合并覆盖。

变量 未设置或为空时的默认
COMPOUND_MEMORY_AGENT_ID agent-dsh
COMPOUND_MEMORY_ROOT $HOME/.agents/memory(可选;服务端会展开 $HOME 或 ~)

若本机应以别的宿主 id 区分记忆,在启动 dsh 前设置 COMPOUND_MEMORY_AGENT_ID。若要把 command 指向绝对路径的 uvx,需在 ~/.dsh/profiles/web/cordis.patch.yml 中重写对应 MCP 行(字段与 patch 中一致)。

典型用法

1、完成安装并重启后,新开一轮会话,发送一条消息。转录中应出现一条 source.kind 为 plugin:dsh-compound-memory、正文以 compound-memory: 开头的 user 提醒;同一会话后续步骤不应再追加。

2、处理非琐碎任务时,先调用 mcp__compound-memory__memory_search;在仓库场景下优先项目范围记忆。

3、采纳检索结果后,调用 mcp__compound-memory__memory_feedback,agent 设为 agent-dsh(或你配置的 COMPOUND_MEMORY_AGENT_ID)。

4、需要写入时,通过 memory_write 等工具只记录稳定事实;详细参数与流程见包内 SKILL.md。

仅关闭提醒、保留 MCP 与技能时,在 profile 或 home 的 cordis.patch.yml 增加:

- id: compound-memory-rules
  disabled: true

mcp-compound-memory 与 compound-memory-skill 仍为独立 id,不受影响。卸载插件:

dsh plugin --profile web remove dsh-compound-memory

会移除上述三行。

适用场景与注意

适合希望在 DSH web profile 下快速接入 compound-memory、又不想手写 Cordis patch 的开发者。插件以当前 dsh 进程权限运行 MCP 子进程并读写记忆目录;安装前请自行查看 源码 与 MIT 许可证,确认符合你的安全与合规要求。

注意:DSH 生态强调「一切皆插件」;skillhub.cn 等社区目录为独立站点,与 DeepSeek / 幻方无官方从属关系。本插件不实现记忆服务器本身,行为与 compound-memory ADR-0001 一致——服务端无 LLM,本 wrapper 也不增加模型调用。

结尾

dsh-compound-memory 把 compound-memory MCP、捆绑技能与会话级规则提醒打成一条安装路径,让 DSH 0.2 用户用官方命令即可挂上五条 memory_* 工具。进一步说明见 GitHub README,插件目录页见 skillhub.cn/plugins/chinwe/dsh-compound-memory。

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

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

小夜