dsh-mmx
crazyma99/dsh-mmx
MiniMax CLI bridge for DeepSeek Harness (dsh): mmx-backed web search fallback and transparent image understanding, with first-run onboarding and a settings card.
Instalar
dsh plugin --profile web add github:crazyma99/dsh-mmxREADME
dsh-mmx
MiniMax CLI bridge for DeepSeek Harness — 把 MiniMax CLI(mmx) 的网络搜索与图像理解接入 DSH:搜索自动回退、贴图自动识图、首次使用按操作系统给出安装指引,CLI 就绪后 30 秒内自动启用。
语言:English
功能
- 网络搜索回退:向
ctx.web注册mmx-search搜索 provider。通过 profile patch 将searchProvider指向mmx-search(或在未钉选 provider 时由 DSH 自动选用唯一可用的 provider),web_search工具即可透明地由 MiniMax 提供服务。 - 透明识图:纯文本模型发送图片时,插件在发送前调用
mmx vision describe生成文字描述,并以「模型可见替换」方式注入——对话记录中正常显示图片,模型实际收到的是[图片内容描述] …文字;read_image工具同样返回文字描述而非UNSUPPORTED_CONTENT。多模态模型默认原样放行(alwaysUseMmx: true可改为总是走 mmx)。 - 首次使用引导(OOBE):mmx 未安装或未登录时,两个能力自动停用;设置页卡片提供一键安装(填入 API Key → 自动
npm install -g mmx-cli+mmx auth login→ 完成后刷新状态),并附按操作系统区分的手动安装指引(Windows PowerShell / macOS / Linux Terminal)。插件每 30 秒重新探测,CLI 就绪后自动开启,无需重启。
截图
设置 → 插件 → 「MiniMax 桥接 (dsh-mmx)」配置卡片:
安装
方式一:插件市场
在 DSH Web 设置页的「插件市场」中搜索 dsh-mmx 并一键安装(提交审核后可用)。
方式二:命令行
# GitHub(推荐)
dsh plugin --profile web add github:crazyma99/dsh-mmx
# npm registry
dsh plugin --profile web add dsh-mmx
# 本地目录
dsh plugin --profile web add file:/path/to/dsh-mmx
安装后重启 dsh web。
前置:MiniMax CLI
| 操作系统 | 终端 | 命令 |
|---|---|---|
| Windows | PowerShell | npm install -g mmx-cli → mmx auth login --api-key <你的 MiniMax API Key> |
| macOS | Terminal | npm install -g mmx-cli → mmx auth login --api-key <你的 MiniMax API Key> |
| Linux | Terminal | npm install -g mmx-cli → mmx auth login --api-key <你的 MiniMax API Key> |
前置条件:Node.js ≥ 20。验证安装:
mmx quota(可查看 TokenPlan 余额)。 本插件不读取、不打印、不存储你的 API Key——仅判断本地~/.mmx/config.json中是否存在密钥。
搜索 provider 钉选(重要)
DSH 基础 bundle 默认将搜索 provider 钉选为 deepseek-official。若 DeepSeek 搜索未配置有效 key,请在 profile 的 cordis.patch.yml 中覆盖:
- id: web
config:
searchProvider: mmx-search
若后续获得有效的 DeepSeek 搜索 key,可改回
deepseek-official;在未钉选 provider 时,DSH 会自动选用唯一available()的 provider。
配置
优先级:settings 命名空间 dsh-mmx > cordis.patch.yml 的 config 行 > 默认值。
| 键 | 默认值 | 说明 |
|---|---|---|
enabled | true | 总开关 |
searchEnabled | true | 注册 mmx 搜索 provider |
visionEnabled | true | 透明识图 |
patchAdmission | true | 包装 resolveModelInfo 放行图片准入(仅 mmx 就绪时生效) |
alwaysUseMmx | false | true = 多模态模型也走 mmx 识图 |
visionPrompt | 中文详细描述模板 | 识图提示词 |
mmxBin | mmx | CLI 命令名或绝对路径 |
npmBin | npm | 一键安装使用的 npm 命令名或绝对路径 |
timeoutMs | 60000 | 单次 CLI 调用超时(5000–300000 ms) |
配置入口
-
设置页卡片:设置 → 插件 → 「MiniMax 桥接 (dsh-mmx)」。布尔开关即时保存;文本/数字字段编辑后点击「保存」。卡片底部提供一键安装(填 API Key → 自动安装并登录 → 刷新状态)与按操作系统切换的手动安装指引。
- 需要将
'dsh-mmx'加入 DSHWEB_SETTINGS_NAMESPACES白名单(packages/host/apiproxy/src/api-proxy.ts,一行;升级 DSH 后需重打)。
- 需要将
-
~/.dsh/settings.yaml(热加载,无需重启):dsh-mmx: enabled: true searchEnabled: true visionEnabled: true patchAdmission: true alwaysUseMmx: false mmxBin: mmx timeoutMs: 60000 -
profile
cordis.patch.yml的config行(需重启)。
搜索回退语义
- 未钉选 provider 且 DeepSeek 搜索无有效 key → 自动使用
mmx-search; - 钉选
mmx-search→ 始终使用 MiniMax(本仓库推荐配置); - DeepSeek 与 mmx 同时可用且未钉选 → DSH 报
WEB_PROVIDER_AMBIGUOUS,需显式钉选其一。
兼容性
- 目标平台:DeepSeek Harness Web profile(0.1.0-rc.x)。
- 宿主侧零运行时依赖;客户端 bundle 仅依赖 React(由 DSH 客户端运行时提供)。
隐私与安全
- 图片经 mmx CLI 上传至 MiniMax API(base64)用于识图;搜索查询词发送至 MiniMax 搜索接口;
- 所有子进程调用均以参数数组直接
spawn(不经 shell),并设置超时与取消传播; - API Key 永不读取、打印或记录;一键安装接口
POST /dsh-mmx/install强制同源校验、请求体 4 KiB 封顶、互斥串行,API Key 仅透传给mmx auth login一次、不回显;临时图片文件权限0600,用完即删; - 标准输出/错误捕获设有 4 MiB 上限,防止失控进程耗尽内存。
卸载
dsh plugin --profile web remove dsh-mmx
卸载后重启 dsh web;settings.yaml 中的 dsh-mmx: 段可手动删除。