前言¶
在 Windows 上做 Android 自動化或讓模型「看見」模擬器畫面時,常見做法是單獨寫腳本調 adb、或再包一層 MCP。DeepSeek Harness(DSH)把能力做成插件後,模型可以直接調用統一命名的工具,而不必在對話裏反覆拼 shell。下面介紹社區插件 dsh-mumuemulator-use(維護者 WinTerminal,分類:客戶端):它通過 MuMu 自帶的 MuMuManager.exe 和 adb 控制本機 MuMu Player 12,不依賴 Python、不另起 MCP 服務,也不加額外序列化層;僅支持 Windows。
這是什麼¶
dsh-mumuemulator-use 是 DSH 的 npm 插件包(當前資料中版本 1.1.1,許可證 MIT),一句話定位是:把本地 MuMu Player 12 模擬器放到模型可調度的工具集裏。插件首次使用時會自行探測 MuMu 安裝路徑;也可在 profile 配置裏顯式指定。
生態上,DSH 強調「一切皆插件」;插件目錄頁在 SkillHub,與 DeepSeek / 幻方無官方從屬關係,安裝前仍建議自行查看 GitHub 源碼 與許可證。插件以當前 DSH 進程權限運行,會執行本機上的模擬器管理命令,使用前請確認環境可信。
核心功能:七個 mumu_ 工具¶
README 列出七類工具,名稱均帶 mumu_ 前綴:
| 工具 | 作用 |
|---|---|
mumu_env |
展示探測到的安裝位置、來源,以及路徑緩存文件位置 |
mumu_list_instances |
列出各實例的 index、名稱、Android 版本、運行狀態、adb 端點、pid |
mumu_instance |
啓動 / 關閉 / 重啓 / 創建 / 刪除 / 重命名 / 顯示或隱藏窗口 |
mumu_app |
列出 / 查詢 / 安裝 / 卸載 / 啓動 / 關閉應用 |
mumu_ui |
點擊、滑動、長按、輸入文本、按鍵(座標爲 framebuffer 像素) |
mumu_shell |
在 Android 來賓系統內執行 shell 命令 |
mumu_screenshot |
截屏;可返回模型可查看的圖像 |
路徑解析順序(mumu_env 會打印完整鏈路):配置覆蓋 → profile 下緩存文件 dsh-mumu-paths.json → 註冊表按 DisplayName 匹配 MuMu → 常見安裝目錄兜底掃描。adb 優先使用 MuMu 目錄內較新的 nx_device\<version>\shell\adb.exe,再 nx_main\adb.exe,最後 PATH 上的 adb。
安裝與啓用¶
從 npm 安裝(常規用戶)¶
指定你的 profile 後執行官方 README 中的命令:
dsh plugin --profile <your-profile> add dsh-mumuemulator-use
dsh plugin add 會解析依賴、鏈入 profile,並把 dsh-mumuemulator-use 寫入 dsh.profile.bundles。重啓應用或切換 bundle 即可加載。Desktop DSH 用戶若看到 pnpm 提示缺少 peer @deepseek-ai/dsh,README 說明這在 Electron 桌面版中是預期且無害的。
可選配置¶
在 %PROFILE%\cordis.patch.yml 中插件行 id 固定爲 mumu,例如:
- id: mumu
config:
adbPath: 'D:\Program Files\Netease\MuMu\nx_device\15.0\shell\adb.exe'
screenshotIncludeImage: false
常用配置項(默認值與含義以 README 表格爲準)包括:mumuRoot、mumuManagerPath、adbPath、cacheFile、commandTimeoutMs(默認 120000)、bootTimeoutMs(默認 300000)、adbConnectTimeoutMs(默認 60000)、screenshotIncludeImage(默認 true,影響 mumu_screenshot 是否默認帶回圖像)。僅設置 mumuRoot / mumuManagerPath 會跳過整段探測;單獨設 adbPath 只覆蓋 adb 一側。
插件要求 DSH 引擎 >=0.2.0-rc.1(見 package.json 中 dsh.engines)。
典型用法思路¶
- 調用
mumu_env,確認 MuMu 根目錄、MuMuManager.exe、adb與緩存文件是否解析正確;多機或非標安裝時在cordis.patch.yml寫mumuRoot等覆蓋項。 - 用
mumu_list_instances拿到實例 index 與 adb 端點,再mumu_instance啓動目標實例(bootTimeoutMs控制等待 Android 就緒的時間)。 - 應用層用
mumu_app安裝或啓動包名;需要輸出時用mumu_shell(README 說明 MuMuManager 的sh無法可靠上報失敗,插件通過追加echo "MUMU_SH_EXIT:$?"解析退出碼)。 - 界面操作用
mumu_ui;座標與mumu_screenshot一致,均爲 framebuffer 像素。README 註明 framebuffer 爲橫屏:wm size可能報 900x1600,截圖約爲 1600x900。輪詢截屏時可傳includeImage: false或配置screenshotIncludeImage: false,避免每次對話都帶入約 1.15 MB 圖像。
實例未運行時,觸控、shell、應用類工具會報錯;mumu_screenshot 會提示實例尚未運行 Android。
適用場景與已知限制¶
適合:已在 Windows 上使用 MuMu Player 12,希望 DSH 智能體直接管理實例、應用、觸控與截屏,而不自建 adb 腳本或 MCP 層的開發者。
需注意(摘自 README「Known limitations」):
MuMuManager control tool cmd類調用爲 fire-and-forget,需要來賓輸出時應使用mumu_shell。- 部分窗口/佈局類命令不校驗實例 index;插件在相關路徑會先
info -v <index>再失敗,避免靜默成功。 adb路徑錯誤會導致 spawn ENOENT;mumu_shell不依賴 adb 仍可工作。- 來賓 shell 無法解析的命令行可能吞掉退出碼標記,此時退出碼爲
unavailable。
結尾¶
dsh-mumuemulator-use 把 MuMu Player 12 的實例、應用、UI 與截屏收成七個 DSH 工具,安裝命令簡單、路徑可自動發現也可配置覆蓋。進一步細節與源碼見 GitHub 倉庫,目錄索引見 SkillHub 插件頁。