Windows版DeepSeek Harness安装dsh-mimo-agent-tools教程

杂项 admin 33分钟前 5次浏览 0个评论

介绍

dsh-mimo-agent-tools 是一个给 DeepSeek Harness(DSH)增加小米 MiMo 能力的社区插件。装好后,无论当前聊天用的是 DeepSeek、GPT、Claude 还是其他模型,都可以按需调用 MiMo 的联网搜索、深度思考、结构化 JSON、图片/音频/视频理解、语音识别、语音合成和音色克隆。

这篇教程基于 Windows 原生版 dsh web 的完整安装与排错记录整理,实测环境为 DSH 0.1.5-rc.2、Node.js 24.18.0、pnpm 10.34.5、Python 3.12.10 和 Git for Windows 2.55。当前上游插件仍主要按 Linux/WSL 编写,因此正文除了正常安装,还包含 Windows 必需的兼容处理以及实际踩过的坑。

Windows版DeepSeek Harness安装dsh-mimo-agent-tools教程

插件能增加哪些工具

安装完成后,DSH 会多出 9 个 mimo_* 工具和一个 audio-tools 使用指导 Skill:

工具 功能 常用场景
mimo_search MiMo 原生联网搜索 新闻、价格、天气、最新资料,返回引用来源
mimo_think 深度思考 编程、数学、复杂分析和多步骤推理
mimo_json 结构化 JSON 输出 信息抽取、分类、生成机器可读数据
mimo_vision 图片理解 识图、OCR、截图排错、多图对比
mimo_audio 通用音频理解 录音总结、内容问答、提取行动项
mimo_video 视频理解 视频总结、操作流程和画面分析
mimo_asr 语音识别 WAV、MP3 转文字
mimo_tts 语音合成 文本生成 WAV/MP3,支持预设或自定义音色
mimo_voiceclone 音色克隆 用一段参考音频合成相同音色的新语音

audio-tools 只负责告诉 Agent 什么时候选择 ASR、TTS、音色克隆或通用音频理解,9 个工具本身始终会注册,不需要先加载 Skill 才能调用。

安装前准备

开始前确认以下条件:

  1. Windows 版 dsh web 已经能够正常启动;
  2. Node.js、pnpm 和 Git for Windows 已加入 PATH;本文补丁要求 Git Bash 位于默认路径 C:\Program Files\Git\bin\bash.exe
  3. 已安装原生 Python 3,运行 python --version 能看到版本号;
  4. 已在 小米 MiMo 控制台 获取 API Key;
  5. 如需使用 mimo_search,还要在 MiMo 控制台的插件管理中开通联网服务。

在 PowerShell 中检查环境:

dsh --version
node --version
pnpm --version
python --version
git --version
Test-Path 'C:\Program Files\Git\bin\bash.exe'

最后一项应该返回 True。本教程不需要 WSL,使用的是 Windows PowerShell + Git Bash + 原生 Python。

步骤一:在DSH中保存MiMo API Key

推荐通过 DSH Web 的模型设置页保存密钥,不要把 API Key 写进插件源码,也不要发到聊天消息里。

打开 DSH Web 的 设置 → 模型(Models),添加或编辑 Xiaomi/MiMo 提供方:

  • API 地址:https://api.xiaomimimo.com/v1
  • API Key:填写 MiMo 控制台生成的密钥
  • 凭据环境变量名:XIAOMI_API_KEY

保存后,DSH 会把密钥放进自己的凭据服务。dsh-mimo-agent-tools 每次调用工具时优先读取 XIAOMI_API_KEY,不会把密钥硬编码到插件中。

你不必把 MiMo 设置成当前聊天模型。只要凭据存在,其他模型也可以调用这些 MiMo 工具。

步骤二:克隆并安装插件

插件上游 README 推荐使用 DSH 官方插件命令直接从 GitHub 安装:

dsh plugin --profile web add github:ch1bug/dsh-mimo-agent-tools

这条命令会在 web profile 目录中调用 pnpm,自动安装依赖、识别 dsh.bundle.patch,并把插件加入 dsh.profile.bundles。Linux、WSL,或者以后上游已经正式合并 Windows 修复时,优先使用这条官方命令即可。

本文针对的是当前版本的 Windows 原生 dsh web,后面还要应用固定版本的兼容补丁,因此采用“本地克隆 + 固定提交 + 官方插件命令安装”的方式:

安装方式 适用场景 特点
github:ch1bug/dsh-mimo-agent-tools Linux、WSL、未来已修复的上游版本 最简单,直接跟随 GitHub 当前版本
本地固定提交安装 本文实测的 Windows 原生环境 版本可核验,方便应用配套补丁

打开 PowerShell,执行:

$ProfileDir = "$env:USERPROFILE\.dsh\profiles\web"
$PluginDir = "$ProfileDir\dsh-mimo-agent-tools"

if (Test-Path $PluginDir) {
    throw "插件目录已经存在,请先检查或备份:$PluginDir"
}

git clone https://github.com/ch1bug/dsh-mimo-agent-tools.git $PluginDir
git -C $PluginDir checkout 38d860417dbad9ade4d88c959ac79e069085ca82

$Head = (git -C $PluginDir rev-parse HEAD).Trim()
if ($Head -ne '38d860417dbad9ade4d88c959ac79e069085ca82') {
    throw "插件版本不匹配,停止安装:$Head"
}

dsh plugin --profile web add $PluginDir

dsh plugin 会在 web profile 目录中调用 pnpm,并在安装成功后检查包里的 dsh.bundle 声明,正常情况下会自动把 dsh-mimo-agent-tools 追加到 profile 的 bundle 列表。

检查是否安装并启用:

$ProfileDir = "$env:USERPROFILE\.dsh\profiles\web"
$Profile = Get-Content "$ProfileDir\package.json" -Raw | ConvertFrom-Json
$Profile.dependencies.'dsh-mimo-agent-tools'
$Profile.dsh.profile.bundles

输出中应该同时看到依赖和 bundle:

dsh-mimo-agent-tools

如果依赖存在但bundle列表没有

这是实际安装中踩过的第一个坑:直接在 profile 目录运行 pnpm add 只会安装依赖,不一定完成 DSH 的 bundle 对账。结果就是插件目录、源码和 node_modules 链接都存在,重启后却一个 mimo_* 工具都没有。

优先重新运行:

dsh plugin --profile web add $PluginDir

仍未出现时,打开:

%USERPROFILE%\.dsh\profiles\web\package.json

确认 dsh.profile.bundles 数组中包含且只出现一次下面这个字符串:

"dsh-mimo-agent-tools"

保留数组里原有的其他 bundle,绝对不要把整个数组改成只剩这一项。正常情况下 dsh plugin 会自动对账;如果重跑后仍未加入,应先检查安装错误和包解析,不要用手工覆盖 profile 来掩盖问题。

步骤三:安装Python驱动

图片、音频和视频转成 Base64 后可能很大,而 DSH shell 捕获的标准输出有大小限制。插件因此把文件读取、请求体组装和 API 请求交给一个 Python driver,在磁盘上通过临时文件传递数据。

上游 README 给出的 Linux/WSL 安装命令是:

mkdir -p ~/.local/lib/mimo-agent-tools/driver
cp driver/mimo_driver.py ~/.local/lib/mimo-agent-tools/driver/

这是 Bash 写法,Windows PowerShell 不要直接照抄。Windows 使用下面的等效命令:

$PluginDir = "$env:USERPROFILE\.dsh\profiles\web\dsh-mimo-agent-tools"
$DriverDir = "$env:USERPROFILE\.local\lib\mimo-agent-tools\driver"
New-Item -ItemType Directory -Force -Path $DriverDir | Out-Null
Copy-Item "$PluginDir\driver\mimo_driver.py" "$DriverDir\mimo_driver.py" -Force
Test-Path "$DriverDir\mimo_driver.py"

最后一行应返回 True。Driver 只使用 Python 标准库,不需要额外安装 pip 包。

步骤四:指定原生Python

当前插件上游版本优先查找 python3。Windows 上即使已经安装 Python,Git Bash 中的 python3 也可能解析到:

/c/Users/你的用户名/AppData/Local/Microsoft/WindowsApps/python3

这是 Windows Store 的假别名,不能正常运行。实际排错时,插件因此回退到 LibreOffice 自带的 Python,速度和资源占用都不理想。

最稳妥的做法是为插件设置专用的 MIMO_PYTHON,不修改系统 PATH,也不影响其他软件:

$PythonExe = (& python -c "import sys; print(sys.executable)").Trim()
if ($LASTEXITCODE -ne 0 -or $PythonExe -like '*\WindowsApps\*') {
    $PythonExe = (& py -3 -c "import sys; print(sys.executable)").Trim()
}
if (-not (Test-Path $PythonExe) -or $PythonExe -like '*\WindowsApps\*') {
    throw "没有找到可执行的原生 Python:$PythonExe"
}

& $PythonExe -c "import sys,json,base64,urllib.request; print(sys.executable); print(sys.version)"
if ($LASTEXITCODE -ne 0) { throw 'Python 运行验证失败' }

$Drive = $PythonExe.Substring(0, 1).ToLower()
$MimoPython = "/$Drive" + $PythonExe.Substring(2).Replace('\', '/')
[Environment]::SetEnvironmentVariable('MIMO_PYTHON', $MimoPython, 'User')

$env:MIMO_PYTHON = $MimoPython
& 'C:\Program Files\Git\bin\bash.exe' -lc '"$MIMO_PYTHON" -c "import sys; print(sys.executable)"'

如果原生 Python 位于:

C:\Users\你的用户名\AppData\Local\Programs\Python\Python312\python.exe

保存后的值类似:

/c/Users/你的用户名/AppData/Local/Programs/Python/Python312/python.exe

之所以使用 /c/...,是因为 Windows 兼容版插件会通过 Git Bash 调用该解释器。

步骤五:应用Windows兼容修复

截至 2026 年 9 月 18 日,上游最新提交仍是 38d8604。原版实现主要面向 Linux/WSL,Windows 原生 dsh web 会遇到以下问题:

  • DSH 的 ctx.shell 在 Windows 上实际执行 PowerShell,但插件发出的是 POSIX Bash 命令;
  • Windows 路径被转换成 /mnt/c/...,无 WSL 时不可用;
  • python3 可能命中 WindowsApps 假别名;
  • mimo_searchuser_location 时,JSON 经 PowerShell→Git Bash→curl 多层引号后可能损坏;
  • audio-tools Skill 缺少当前 DSH 要求的 source 字段;
  • mimo_video.media_resolution 的旧说明错误,API 实际只接受 defaultmax

这些问题已经在真实 Windows 环境中逐个复现并修复。本文提供一份针对上述固定提交的确定性补丁:

把补丁下载到任意目录后,在 PowerShell 中执行:

$PluginDir = "$env:USERPROFILE\.dsh\profiles\web\dsh-mimo-agent-tools"
$PatchFile = (Resolve-Path '.\dsh-mimo-windows.patch').Path
$Expected = '2120738B60FD7BF58AC6494ED7235ABA9EBADB43EA556D6325FE1D81A30D6230'
$Actual = (Get-FileHash $PatchFile -Algorithm SHA256).Hash
if ($Actual -ne $Expected) { throw "补丁校验失败:$Actual" }

$Head = (git -C $PluginDir rev-parse HEAD).Trim()
if ($Head -ne '38d860417dbad9ade4d88c959ac79e069085ca82') {
    throw "插件版本不匹配,停止打补丁:$Head"
}

git -C $PluginDir apply --unidiff-zero --check $PatchFile
git -C $PluginDir apply --unidiff-zero $PatchFile

补丁只适用于固定提交 38d860417dbad9ade4d88c959ac79e069085ca82git apply --unidiff-zero --check 失败时立即停止,不要对其他版本强行应用。

应用后同时运行 Node 与 Python 两套测试:

Set-Location $PluginDir
node --check index.js
node --test tests/tools.test.mjs
python tests/test_driver.py

预期结果:Node 19 项全部通过,Python driver 14 项全部通过。本文补丁已在全新克隆中通过 git apply --unidiff-zero --check、19/19 Node 测试和 14/14 Python 测试。

当前版本的密钥风险

DSH 凭据服务能避免把 API Key 明文写进文章和插件源码,但当前社区插件在调用时仍会把已解析的密钥传给子进程:部分路径会进入进程参数或短暂的临时请求文件。Base64 不是加密,同一 Windows 用户下的进程检查、调试日志或异常退出残留理论上仍可能暴露密钥。

因此,这个版本只建议运行在可信的单用户电脑上;不要共享 Windows 账户,不要把 DSH 调试日志和临时目录打包外发,并定期轮换 MiMo API Key。如果你需要企业级多用户或高审计环境,应等待上游把密钥改为 stdin/安全句柄传递后再部署。

懒人版:让DSH Agent自动安装

不想一步步手装的话,把 dsh-mimo-windows.patch 下载到当前工作区,然后把下面整段发给具备命令和文件权限的 DSH Agent。不要把 API Key 填进提示词:

请直接在 Windows 原生环境安装并验证 dsh-mimo-agent-tools,不要反问。

前提:DSH Web profile 名为 web。先从 https://raw.githubusercontent.com/vpsxb/shbox/e312ccfede82c51f2abe91d9f9c27e2373365c83/dsh-mimo-windows.patch 下载补丁到当前工作区。API Key 只能由用户在 DSH Web“设置→模型”中保存为 XIAOMI_API_KEY;不要索取、读取或输出密钥。

1. 检查 dsh、node、pnpm、git、python 均可执行,并验证 Git Bash 可以运行;任何一项失败立即停止并报告。
2. 插件目录使用 %USERPROFILE%\.dsh\profiles\web\dsh-mimo-agent-tools。目录已存在就先检查,不能覆盖;不存在则从 https://github.com/ch1bug/dsh-mimo-agent-tools.git 克隆,并固定 checkout 到 38d860417dbad9ade4d88c959ac79e069085ca82。
3. 用 dsh plugin --profile web add <插件绝对路径> 安装;确认 profile package.json 的 dependencies 和 dsh.profile.bundles 都包含且只包含一次 dsh-mimo-agent-tools,保留其他 bundle。
4. 把 driver\mimo_driver.py 复制到 %USERPROFILE%\.local\lib\mimo-agent-tools\driver\mimo_driver.py。
5. 真实执行原生 Python,拒绝 WindowsApps 假别名;把 sys.executable 转成 Git Bash /c/... 形式,以用户级 MIMO_PYTHON 保存。确认 C:\Program Files\Git\bin\bash.exe 能执行;本文补丁不支持其他 Git Bash 安装路径。
6. 计算 dsh-mimo-windows.patch 的 SHA-256,必须等于 2120738B60FD7BF58AC6494ED7235ABA9EBADB43EA556D6325FE1D81A30D6230;确认插件 HEAD 完全匹配上述 commit,再依次执行 git apply --unidiff-zero --check 和 git apply --unidiff-zero,任何校验失败都停止。
7. 运行 node --check index.js、node --test tests/tools.test.mjs、python tests/test_driver.py;要求 Node 19/19、Python 14/14 通过,离线测试不得访问外部 API。
8. 不要替我杀进程。告诉我完整关闭 dsh web、打开新 PowerShell 并重新运行 dsh web。
9. 我回复“已重启”后,继续做真实验证:先确认9个 mimo_* 工具和 audio-tools Skill存在;再各调用一次低成本 mimo_json 和带 user_location 的 mimo_search。真实调用会消耗 MiMo 额度,报告结果与用量,不显示密钥。
10. 最后报告插件 commit、补丁哈希、修改文件、两套测试结果和真实调用结果。

步骤六:完整重启DSH Web

插件首次安装、修改 index.js 或设置用户环境变量后,都要完整重启 Host。patchReload: live 只能处理部分 YAML patch 变化,不能热重载已经 import 的插件 JS 源码。

操作顺序:

  1. 在运行 dsh web 的窗口按 Ctrl+C
  2. 关闭这个 PowerShell 窗口;
  3. 重新打开 PowerShell,让新进程读取 MIMO_PYTHON
  4. 回到平时的工作目录,启动:
dsh web

Windows 上启动可能需要十几秒,期间页面暂时打不开不等于卡死。浏览器已有有效登录 Cookie 时,旧标签页可能继续可用;如果出现 401,再打开终端本次启动打印的完整认证 URL。

建议刷新页面并新建一个会话,检查新工具目录。

步骤七:做最小冒烟测试

先在新会话里发送:

请确认当前工具列表中是否包含 mimo_search、mimo_think、mimo_json、mimo_vision、mimo_audio、mimo_video、mimo_asr、mimo_tts 和 mimo_voiceclone,以及 audio-tools Skill。

然后依次做三组测试。

1. JSON与深度思考

调用 mimo_json,返回严格 JSON:{"status":"ok","value":1}。
调用 mimo_think,计算不放回抽取时,从3个红球和2个蓝球中连续抽到两个红球的概率。

2. 原生联网搜索

调用 mimo_search 搜索小米 MiMo 官方网站,强制搜索,max_keyword 设为1,limit设为1;user_location 使用 China/Hubei/Wuhan。

一定要明确写 mimo_search。如果只说“搜索”,主模型可能选择 DSH 自带的 web_search,那无法证明 MiMo 原生联网搜索已经生效。

3. 音频闭环

调用 mimo_tts,把“MiMo audio tools are active.”合成为英文 WAV,保存到 C:\Windows\Temp\mimo_smoke.wav;完成后调用 mimo_asr 把这个文件转写出来。

这条测试能同时验证 TTS、文件写入、Windows 路径转换、音频上传和 ASR。

需要验证视频工具时,优先使用本地 MP4:

调用 mimo_video 分析 C:\videos\demo.mp4,fps设为1,media_resolution设为default,简要描述主要内容。

media_resolution 只能填:

default
max

不能填 480p720p

平时怎么使用

安装成功后通常只需要用自然语言描述任务:

用 MiMo 搜索今天的 AI 新闻,并附上来源。
用 MiMo 深度思考比较三种数据库方案,给出选型建议。
用 MiMo 看一下 C:\Users\你的用户名\Pictures\error.png,分析截图报错。
把 C:\recording.mp3 转写成中文并总结重点。
用茉莉音色把“你好,欢迎使用 MiMo”合成为语音,保存到 C:\Windows\Temp\hello.wav。

主模型负责判断是否调用工具,并不是每次都会自动选择 MiMo。想确保调用时,直接写“使用 mimo_search”或“调用 mimo_tts”最可靠。调用这些工具会使用你的 MiMo API 额度;联网搜索还可能按关键词轮次计费,max_keyword 不宜盲目设大。

音色克隆只应使用你自己的声音,或已经获得声音权利人明确授权的素材;不得用于冒充、欺诈或误导,发布合成语音时应按平台规则和当地法律进行披露。

Windows安装最容易踩的坑

现象 原因 处理办法
插件已安装,9个工具却一个都没有 只有 dependency,没有加入 dsh.profile.bundles dsh plugin --profile web add $PluginDir 重装并检查 package.json
mimo_search 能用,其他工具返回 no response Python driver 未复制,或 Bash 命令被 PowerShell 直接解析 安装 driver,并应用 Windows shell 边界修复
插件调用 LibreOffice Python Git Bash 的 python3 是 WindowsApps 假别名,原生解释器命令叫 python 设置用户级 MIMO_PYTHON 指向原生 Python
本地图片/音频/视频打不开 /mnt/c/... 是 WSL 路径,Windows Python 不认识 Bash 参数用 /c/...,driver JSON 内用原生 C:\...
user_location 的搜索报 Invalid JSON in request body JSON 被 PowerShell、Bash、curl 多层引号破坏 Base64 写临时 JSON,再用 --data-binary @file 上传
audio-tools 能看到但加载失败 Runtime Skill 缺少字符串类型的 source 给注册对象增加 source: 'runtime'
视频参数 480p/720p 被 API 拒绝 MiMo API 只接受 defaultmax 改用合法值并在本地提前校验
公网视频 URL 失败,本地视频成功 MiMo 服务端无法下载该外链,不是视频工具坏了 先下载到本地,再把本地 MP4 路径交给工具
重启后页面显示401 浏览器没有有效登录 Cookie,或当前地址不含有效认证信息 打开终端本次启动打印的完整 URL
重启十几秒看起来没反应 Windows 上 Host 启动需要时间 等待约20秒,再检查 127.0.0.1:3080 是否监听
修改 index.js 后行为没变化 Host 插件 JS 不支持源码热重载 完整停止并重新启动 dsh web
普通“搜索”调用了别的工具 主模型自行选择了 DSH 通用搜索 明确要求调用 mimo_search

如何判断不是DSH卡死

如果重启后页面没有立即打开,先在另一个 PowerShell 中检查:

Get-NetTCPConnection -LocalPort 3080 -State Listen -ErrorAction SilentlyContinue

再测试 HTTP:

try {
    $r = Invoke-WebRequest http://127.0.0.1:3080 -UseBasicParsing -TimeoutSec 5
    "HTTP $($r.StatusCode)"
} catch {
    $status = $_.Exception.Response.StatusCode.value__
    if ($status) { "HTTP $status" } else { throw }
}

快速返回 200401 都说明服务正在响应;401 代表当前请求没有有效认证,不等于 Host 卡死。不要在端口已有进程监听时再启动第二个 dsh web 实例。

更新和卸载

因为使用的是本地克隆目录,更新前先查看本地修改:

Set-Location "$env:USERPROFILE\.dsh\profiles\web\dsh-mimo-agent-tools"
git status --short
git log -1 --oneline

当前 Windows 兼容修复属于本地改动,直接 git pull 可能产生冲突或覆盖修改。应先确认上游是否已经合并等效修复;已合并就备份后恢复上游版本,未合并则保留本地补丁。

卸载插件:

dsh plugin --profile web remove dsh-mimo-agent-tools

如需清理本地文件,再删除:

%USERPROFILE%\.dsh\profiles\web\dsh-mimo-agent-tools
%USERPROFILE%\.local\lib\mimo-agent-tools

MIMO_PYTHON 也可以删除:

[Environment]::SetEnvironmentVariable('MIMO_PYTHON', $null, 'User')

小结

  • dsh plugin --profile web add 安装,不能只把包放进 dependencies;
  • Windows 原生版需要 Git for Windows、原生 Python 和 Python driver,不要求安装 WSL;
  • 当前上游版本仍有 PowerShell/Bash、路径、搜索 JSON、Skill 和视频参数兼容问题,应先应用本文的 Windows 修复再重启;
  • 插件 JS 不能热重载,修改源码或环境变量后要完整重启;页面返回 401 时再打开本次启动打印的认证 URL;
  • 验证时要明确调用 mimo_* 工具,避免主模型改用 DSH 自带的同类工具;
  • 9 个工具会把请求或本地媒体发送给小米 MiMo API,敏感图片、录音和视频不要上传。

参考资料:


原频道被人恶意举报新电报频道|加入电报群
转载请注明原文链接:Windows版DeepSeek Harness安装dsh-mimo-agent-tools教程
喜欢 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址