dsh-matlab-feedback:把 MATLAB 桌面與命令行實時帶進 DSH 對話

前言

在 DeepSeek Harness 裏讓 Agent 協助 DPABI、DPARSF、SPM 等 MATLAB 流程時,常見做法是口述界面狀態或粘貼零散報錯。Agent 看不到你屏幕上 QC 圖窗的實際像素,也拿不到命令窗口裏剛刷新的輸出,回答容易停留在猜測。下面介紹社區插件 dsh-matlab-feedback(維護者 Ezerruier,分類:客戶端):在 Windows 上只讀抓取 MATLAB 相關窗口截圖與命令行文本,並可選把單行代碼暫存到命令窗口供你手動執行,全部進入當前 Harness 會話。

這是什麼

dsh-matlab-feedback 是 DeepSeek Harness 的客戶端側插件,定位是把正在運行的 MATLAB 桌面(含 DPABI / DPARSF / SPM 的 QC 窗口)的真實窗口截圖和命令行窗口文本取進對話。Agent 可基於截圖與文本回答諸如「當前 DPARSF QC 界面裏配準/閾值結果有什麼問題」一類問題。

插件不依賴官方 MATLAB MCP,不在 MATLAB 內安裝腳本,也不改 MATLAB 設置。捕獲由本機 scripts/matlab-feedback.ps1(Windows PowerShell 5.1)完成:UI Automation 讀文本、PrintWindow 出 PNG,結果寫入工作區 .dsh-matlab-feedback/<runId>/。Host 半側在 index.mjs,Client 半側在 client.js;當前 package 版本爲 0.2.0,許可證 MIT。

核心功能

能力 說明
matlab_snapshot 抓取所有可見 MATLAB 窗口:截圖作爲圖片附件內嵌,並返回窗口清單、命令行尾部文本、警告/錯誤摘要
matlab_console 只讀命令行文本,參數 lines(10–400,默認 120);不截圖
matlab_stage_code 將單行 MATLAB 代碼寫入 Command Window,不自動回車;你檢查後按 Enter 執行,Esc 丟棄
輸入框「MATLAB 快照」按鈕 向輸入框插入預置提示詞,補充問題後發送即可

設計原則爲只讀、無侵入:不點擊、不鍵入(除 matlab_stage_code 的受控粘貼)、不搶焦點、不移動或恢復窗口、不修改 MATLAB/SPM/DPABI 數據。matlab_stage_code 會把 MATLAB 主窗口 briefly 切到前臺以便檢查,但從不發送 Enter。

文本讀取依賴 MATLAB R2025a 及以上 的 CEF 桌面;更老版本或無窗口模式通常只能截圖、難以讀文本。平臺僅限 Windows 10/11。

安裝與啓用

前置條件:

  • Windows 10/11,Windows PowerShell 5.1(系統自帶);
  • MATLAB R2025a+(讀文本;更老版本以截圖爲主);
  • DeepSeek Harness Desktop / dsh 0.2.1-rc 系列 profile(README 寫明開發驗證環境爲 0.2.1-rc.3)。

安裝方式(任選其一,命令與表述以倉庫 README 爲準):

  1. 使用 DSH 插件管理器的 install_bundle,target 指向本插件目錄的絕對路徑;
  2. 手動複製到 profile 並在 package.json 的 dsh.profile.bundles 中註冊(README 標註爲不推薦)。

安裝後一般無需重啓:matlab_snapshot / matlab_console / matlab_stage_code 會出現在 Agent 工具表,輸入框左側出現「MATLAB 快照」按鈕;若按鈕未出現,刷新一次頁面即可。

安裝前請自行查看 GitHub 倉庫 源碼與 MIT 許可證。插件以當前 DSH 進程權限運行,截圖與命令行內容可能含路徑、受試者編號等敏感信息,進入會話後會隨模型請求發往所配置的模型服務商。

典型用法

對 Agent 調用工具

matlab_snapshot            # 截圖 + 命令行 + warnings(約 0.3–3 秒,視 MATLAB 負載而定)
matlab_console {lines: 80} # 只取命令行尾部 80 行
matlab_stage_code {code: "disp('hi')"}  # 只寫入命令框、不執行

matlab_snapshot 返回要點:最多 4 張窗口截圖(優先級 qc-figure > pipeline-gui > figure > desktop);窗口清單;命令行尾部(默認 ≤6000 字符,超限會註明並給出 manifest.json 路徑);從文本提取的 warnings/errors(去重,≤40 條)。

在聊天裏一鍵發起

點擊輸入框左側 MATLAB 快照,會插入:

請調用 matlab_snapshot 抓取當前 MATLAB 的窗口截圖和命令行窗口,概述你看到的界面狀態(若在 DPARSF QC 流程,說明 QC 界面的關鍵信息),然後回答我的問題:

在末尾補上你的具體問題後發送。

讓 Agent 寫單行代碼(可選執行)

說明「把代碼寫到 MATLAB 裏」時,Agent 可調用 matlab_stage_code。MATLAB 前臺會出現待執行單行;確認後 Enter,放棄則 Esc。執行後再用 matlab_snapshot 或 matlab_console 讓 Agent 讀輸出。工具不接受多行代碼,也從不代替你按 Enter。

適用場景與注意

適合在 Windows 上跑 DPABI、DPARSF、SPM 等 GUI/QC 流程、又希望在 DSH 裏用視覺 + 命令行上下文問 Agent 的研究與工程場景。最小化到任務欄的窗口不會截圖(避免打擾),但會盡量讀文本;歷史捕獲目錄在工作區下最多保留 20 次 run。

已知限制包括:僅 Windows;無 COM 通道(本機未註冊 MATLAB.Application 時亦如此);個別 UI Automation 文本噪聲;無 attachments 服務時工具降級爲文本 + PNG 路徑。詳情見倉庫 README 的「安全與隱私」「已知限制」。

DeepSeek Harness 生態強調「一切皆插件」;SkillHub 目錄頁 爲社區收錄,與 MathWorks、DeepSeek 無官方從屬關係。使用前請遵守 MATLAB 許可與機構數據管理規定。

結尾

dsh-matlab-feedback 把 MATLAB/QC 界面的截圖與命令行輸出拉進 Harness,讓 Agent 基於現場狀態而非口述作答;單行代碼暫存則保留人工確認後再執行。進一步瞭解安裝與架構可閱讀倉庫 README 與 docs/DESIGN.md。

  • 目錄頁:https://www.skillhub.cn/plugins/Ezerruier/dsh-matlab-feedback
  • GitHub:https://github.com/Ezerruier/dsh-matlab-feedback
羽毛球分组比赛记分
小程序二维码

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

小夜