前言¶
在 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