前言¶
在 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 /
dsh0.2.1-rc 系列 profile(README 寫明開發驗證環境爲 0.2.1-rc.3)。
安裝方式(任選其一,命令與表述以倉庫 README 爲準):
- 使用 DSH 插件管理器的
install_bundle,target 指向本插件目錄的絕對路徑; - 手動複製到 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