DSH Plugin Store
Back to home

qwqwd65-ui

dsh-win-computer-use

No description

Stars
0
Language
Rust
Created
Aug 14, 2026
Updated
Aug 14, 2026
Other
GitHub repo

Introduction

dsh-win-computer-use

Windows 电脑控制工具集 —— DeepSeek Harness 原生插件(原型)。

给纯文本 DSH agent 装上操作 Windows 桌面的"手":UIA 语义观察/操作、窗口截图、 自然光标轨迹(贝塞尔 + 缓动 + 微抖动)、内置读图 API(自带 vision 闭环)。

灵感与参考:Anionex/dsh-computer-use(macOS)、 Harusame64/desktop-touch-mcp(Rust UIA 引擎)、 sbroenne/mcp-windows

架构

DSH Agent → 插件工具 (win_*) → 执行器 (win-cu.ps1 / Rust helper) → Win32/UIA
                                                    ↘ 视觉 API(内置 see)

两代执行器:

PS1 版(当前可用)Rust 版(src/main.rs,开发中)
启动开销powershell.exe ~200ms + Add-Type 编译单二进制 ~10ms
UIA 树获取(60 元素)~350ms~106ms(实测参考)
焦点元素~370ms~2ms
读图外部 curl 脚本内置 ureq + base64

性能参考数据来自 desktop-touch-mcp 的实测迁移报告(PowerShell → Rust COM)。

工具

工具说明
win_list_apps窗口列表:pid/标题/坐标/前台标志
win_observeUIA 树:索引/类型/名称/AutomationId/坐标/模式
win_screenshotPrintWindow 窗口截图 PNG
win_click语义优先(Invoke/Select/Toggle by id 或 index),坐标兜底
win_set_valueValuePattern 写值,不碰剪贴板
win_type_textSendInput Unicode 直发(中文 OK),自动 SetFocus + 焦点恢复
win_press_key虚拟键 + 修饰键,焦点恢复
win_scroll滚轮,光标贝塞尔移动到位
win_drag贝塞尔轨迹拖拽
win_wait轮询等待元素文本
win_see内置读图:截图/任意图片 → 配置的视觉 API → 文字描述

设计要点

  • 先观察再动作win_observe 返回索引 + 稳定 AutomationId;动作优先用 id(UIA 树会随应用状态重排,索引会漂移——实测翻车后加的 id 定位)。
  • 光标可见 + 自然轨迹:坐标动作先贝塞尔移动真实光标(随机控制点 + ease-in-out + 微抖动),你肉眼可见鼠标弧线移动。
  • 焦点保护:type/key/scroll 需要前台,操作完成后恢复操作前的前台窗口。
  • 内置视觉闭环win_see 把截图直接发给配置的 OpenAI 兼容视觉端点,纯文本模型也能"看图"。

安装

动态插件方式(当前会话):

在 DSH 会话中:cordis_define 定义插件(见 plugin-host.js),cordis_run 激活

配置(设置页 / 环境变量):

VISION_API_KEY   视觉 API key
VISION_BASE_URL  视觉端点(默认 https://ai.huan666.de)
VISION_MODEL     视觉模型(默认 grok-4.5)

仓库结构

src/main.rs      Rust helper(UIA + SendInput + 贝塞尔 + PrintWindow + see)
win-cu.ps1       PS1 执行器(当前默认后端)
plugin-host.js   动态插件宿主代码(11 个 win_* 工具)

License

MIT