ARTICLE · 1305533
DSH创新视觉Computer Use插件:零像素依赖,操控你电脑,特省成本
AI 操作电脑的老问题很明确:反应慢、烧 token——截图一张看一张,看 20 次就是 20 张图的开销,屏幕没变化它也照样一张张读。这个插件 dsh-vision-control(仓库 star-kz/dsh-vision-control,0 星,PowerShell 后端加 JS 前端,PolyForm 非商业许可,当前版本 1.0.0)想把这两件事分开解决:给 AI 一双眼(实时盯屏,画面不动时出图极少、成本很低)加一双手(操控类工具走 Windows 控件树,点按钮填框不花一张图)。下面拆开讲它怎么做到、怎么装、怎么用一个真实场景走一遍。
🔥 一、能干什么
插件一共提供 19 个可调用工具,分三族,核心思路一句话:能走 UIA 控件树的操作绝不合成鼠标事件。
点按钮、填输入框这类活走 UIA 的 Invoke 直接调用控件本身,不用模拟鼠标真的挪过去,既稳又省掉一张图;只有真的需要「看画面」时才动用 computer_watch 或 computer_screenshot。
「花几张图」这一列是理解整个插件的钥匙:传统「截图-看-操作」循环里,AI 每走一步都要重新截一张图发给模型,20 步就是 20 张高清图的 token。这个插件把「动手」和「看」彻底分开——动手走控件树(表里那些 0 张图的工具),只有确实需要「看一眼画面」时才付出图片成本,而看的方式还能把出图压到极低(静止时极少、动得越多才越多)。
🔥 二、三层架构

(图注1:三层架构——授权闸门在上,操控层(PowerShell UIA)和感知层(ffmpeg 管线)在下方并列)
插件分三层,从外到内:
第一层是授权闸门。 每个 computer_ 工具被调用时第一行都要过这道闸——界面上有个电脑图标芯片,点一下亮起来才算本会话授权,AI 才能截图、动鼠标键盘;再点一下立刻收回,所有 computer_ 工具当场拒绝执行。收回授权有两条正路:用户点芯片关闭,或调 computer_stop 带上「收回能力」参数(它也可以当一键总闸)。子代理永远过不了这道闸,只有主会话能操作电脑,新会话默认关着。
第二层是操控层。 真正干活的不是一个模型,而是一个 PowerShell 工作进程:用 Windows 的 UIA(UI Automation,Windows 读界面控件的官方接口)读控件树、用 SendInput 合成键鼠事件、枚举窗口、截图,Node 端通过管道跟它收发 JSON 指令。每个工具单独安全注册,单工具失败不拖垮整个插件。
第三层是感知层,也是它省 token 的关键。 盯屏不是「隔一秒截一张」,而是一条实时管线(下一节单独拆)。
🔥 三、感知管线:为什么能省 token

(图注2:感知管线六级数据流——ffmpeg 抓屏 → HSV 变化分 → 尖峰选帧 → 八档升降 → 装箱拼图 → 纯 JS 编 PNG)
管线是这样跑的:ffmpeg 用 ddagrab(Windows 的屏幕直采设备)把屏幕抓成 800×450、12 帧每秒的单根管道;每一帧算一个 HSV 变化分(画面颜色差异有多大),只有变化够大的帧才被判定「值得留」;再根据最近留帧的密度在 8 个档位间升降,决定这次拼几格进一张图;然后装箱、烧上帧号、用纯 JS 编码成 PNG(零依赖),最后 computer_watch 把这张拼图返回给模型。
省 token 的逻辑全在这条线里:画面越动、留帧越多、拼图格数越高;画面越静止、出图越少——但注意它不是「静止就一张图都不出」。管线有一个 20 秒的兜底:完全静止的屏幕也会每 20 秒出一次 low 档拼图(约 218 个 token),保证模型始终知道「屏幕还在、只是没动」。所以准确说法是「静止时极低开销」,不是「静止归零」。质量分四档:low(800×450,约 218 个 token,一段长文本的量级)、standard、high(1280×720,文件名级可读)、ultra(接近原屏)——读不清小字要手动把 quality 升到 high(会重开采集约 0.6 秒给一帧),不是自动升。节奏分 calm(出图最少、最省)、normal(默认)、dense(出图最密、最灵敏,操作电脑时推荐)。官方实测:抓屏首帧约 370ms、冷启动首图 3 秒内出、阻塞等待上限 860 秒内必定返回(早于宿主 900 秒的工具超时)。
🔥 四、怎么装
先交代一个容易卡住的地方:desktop 这个 profile 名字归 DSH 桌面版(Electron)所有,npm 里装的那个 dsh 命令行管不了它的插件。所以要装这个插件,得先让桌面版把 desktop profile 初始化出来。
第 1 步,先把 DSH 桌面版(Desktop)启动一次,让它把 desktop profile 建好,再完全退出(托盘图标也要退出干净,否则 profile 被占用装不上)。
第 2 步,用 Desktop 自带的 dsh 命令(安装目录里 resources/runtime 下那个,不是你 npm 装的那个)执行:
dsh plugin --profile desktop add github:star-kz/dsh-vision-control
想锁某个发版,就在仓库名后面加一个井号再接版本号(比如接 v1.0.0),告诉 DSH 只装那个 commit。
第 3 步,如果这次装报了「构建脚本未批准」一类的错(pnpm 从 10 起默认不让依赖在装的时候跑构建脚本,git 依赖要单独批准),别慌,这是可以补的:报错信息里会打印一条要抄进 ~/.dsh/profiles/desktop/pnpm-workspace.yaml 的批准键(键名里带这次的 commit 地址),照着加进去,重跑一遍上面的 add 命令就过了。
第 4 步,重开 Desktop,输入框工具栏出现「电脑操作」芯片就算装好了。
实时盯屏(computer_watch)额外要求系统里有 ffmpeg(带 ddagrab 的 Windows 构建),从 gyan.dev 的 ffmpeg builds 下、把它的 bin 目录加进 PATH 即可,也可以设环境变量 DSH_FFMPEG_PATH 直接指到 ffmpeg.exe。没有 ffmpeg 时,上面表格里除 computer_watch 外的工具都照常能用,只是盯屏这项失效。
它还附带一份写给 AI 的使用教程:把 skills/dsh-vision-control/ 整个目录复制到 C:\Users\<你>\.dsh\skills\ 下,新会话里 AI 遇到桌面任务就会自动按「看→定位→动→确认」的最佳实践调用,不用边试边错。
🔥 五、举例:盯着屏幕等程序报错
假设你在跑一个很久的任务,想让它一报错就提醒你,又不想 AI 一直傻盯:
第 1 步,在输入框工具栏点那个电脑图标芯片,让它亮起来(本会话授权)。
第 2 步,直接下自然语言命令:「盯着屏幕,等我这个程序一报错就告诉我,其他情况不用管」。AI 会自己挑 computer_watch,把节奏设成 calm(最省),然后阻塞式等——画面不动时它按 20 秒兜底节奏出很省档的小图,不动就不怎么花钱;一旦报错画面跳出来,它立刻留帧、拼一张图,把错误内容读给你。
第 3 步,它要是误点了什么,直接说「停下」,AI 调 computer_stop 松开卡住的键鼠、收回能力。整个过程你不需要理解它内部走的是 UIA 还是 SendInput。
再举一个「动手」的例子:你想让它帮你把一个 Excel 表格里的数据填进网页后台。直接说「把这张表的第一列填到登录名、第二列填到邮箱,然后点提交」。它先用 computer_ui 读后台界面的控件树,定位到每个输入框和提交按钮的坐标与名字(这一步零图),再逐个填、再点提交(仍零图),只有提交完想确认结果时,才动用 computer_screenshot 看一眼。整条流程几乎没有图片开销,这就是「能走控件树就绝不合成鼠标」的直观收益。
🔥 六、什么场景该用它
几类活最对得上:自动化桌面操作(帮人填表、点流程)、盯长任务(编译、跑测试、下载,等结果出来再处理)、UI 调试(它读控件树报出每个按钮的名字和状态,比截图猜准得多)、以及把「看屏幕」这件事的 token 成本压到很低(静止极低、动的部分才多花)。
🔥 七、要注意什么
几条要提前知道:第一,许可是 PolyForm 非商业 1.0.0,个人和非商业用免费,商用得另外找作者授权;第二,它是 Windows 专用,macOS 和 Linux 用不了;第三,computer_watch 依赖 ffmpeg(Windows 带 ddagrab 的构建),没装就只剩盯屏这一项不能用,其余工具照旧;第四,授权是会话级的,新开会话默认关着,子代理永远过不了闸门;第五,这个包不只是「看图」,它还顺手接管了两件事:一是 token-guard,会把超过约 4000 token 的 PowerShell 返回压成摘要(原文写进本地一份,可追溯),二是 app-launch,提供 app_launch 和 app_env_audit 两个工具;第六,浏览器那对工具(browser_state / browser_actions)要能连上浏览器才有用,得先用 computer_launch 带远程调试端口启动浏览器、或配置好浏览器端点,没配置时这两个工具会直接返回「没有可用浏览器」;第七,它参考了 dsh-computer-use(MIT 许可)和 dsh-see-now(PolyForm,已获作者授权),移除了悬浮窗、语音旁白、后台唤醒这几项。
一句话总结:它把「看屏幕」和「动手」拆成了两条成本曲线完全不同的路径——要看的走 computer_watch(静止极低、动的部分才花钱),不用看的走 UIA 控件树(零图),这是它和「一张图一刀」式旧方案的根本区别。















































































