前言¶
在 DeepSeek Harness(DSH)里做智能体时,常见需求是让模型不只生成文本,还能操作本机上的真实应用:查窗口、读界面文字、点按钮、输入中文、按快捷键。很多软件没有公开 API,只能靠桌面自动化;若再依赖 Python 运行时、额外驱动或弹窗式辅助工具,部署和权限都会变复杂。
下面介绍社区插件 dsh-desktop-sidecar(维护者 111xjyuan),它在 Windows 上为 DSH 提供一套原生桌面控制能力:基于 UIA 控件树、离线 OCR、带校验的点击与 Unicode 输入,README 写明无需外部运行时。插件在 SkillHub 目录中归类为「客户端」;当前 GitHub 星标为 0(以目录页信息为准)。
这是什么¶
dsh-desktop-sidecar 是给 DeepSeek Harness 装的「手」:在 Windows 10/11 上枚举窗口、读控件树、截图、OCR 找字、点击、打字、发组合键,并包含网课自动播放与环境自检等工具。设计目标是不依赖 Python、不下载驱动、不弹窗口;OCR 使用 Windows 本地引擎,README 说明完全离线,不上传屏幕内容。
许可为 MIT;package.json 中版本为 0.4.5,仅支持 win32(macOS / Linux 未实现)。peer 依赖为 @deepseek-ai/dsh-tools >= 0.1.5-rc.1,原生 FFI 依赖 koffi。
核心功能¶
插件向 DSH 暴露一组以 desktop_ 为前缀的工具,README 中的能力如下:
| 工具 | 作用 |
|---|---|
desktop_windows |
列出当前有哪些窗口 |
desktop_tree |
获取指定窗口的 UIA 控件树(名字、角色、能力) |
desktop_invoke |
直接触发控件(不移动鼠标、不要求窗口在前台) |
desktop_read |
读取窗口文字(离线 OCR,带坐标) |
desktop_capture |
截图(可直接供模型查看) |
desktop_click |
按文字或坐标点击(点击后做像素校验) |
desktop_type |
输入中文(剪贴板 + 真 Ctrl+V) |
desktop_key |
按键 / 组合键 |
desktop_course |
网课自动播放(帧差判断播放状态 + 自动下一节) |
desktop_doctor |
环境自检,异常时给出修复建议 |
适用对象包括记事本、Office、浏览器、网课播放器,以及微信等无自动化接口的常见软件。
两条识别路线¶
README 强调按应用类型选路径,经验法则:能用 desktop_invoke 就别用 desktop_click;能按文字点就别按坐标点。
| 应用类型 | 识别方式 | 说明 |
|---|---|---|
| 记事本、Office、资源管理器、设置、WinUI 应用 | UIA 控件树 | desktop_tree 拿到按钮/菜单名字与 Invoke 能力,desktop_invoke 直接触发 |
| 微信、VS Code、Discord、Electron/Qt 自绘界面 | OCR + 坐标点击 | 不实现 UIA 时 desktop_tree 可能为空并附 OCR 摘要;用 desktop_read 找字、desktop_click 的 text 参数按字点击 |
安装与启用¶
安装任选一种,命令来自官方 README:
# A. npm(已发布,推荐)
plugin_manager install_bundle dsh-desktop-sidecar
# B. 插件市场:搜 desktop-sidecar
# C. 本地源码(开发用)
plugin_manager install_bundle file:<本目录绝对路径>
安装后先自检。调用 desktop_doctor,期望返回 ok: true,并检查四项:platform / ocr / foreground / editable-child。有异常时 README 会直接给出修复建议(例如 OCR 语言包缺失)。
插件一切操作在本机桌面会话内执行,权限与当前 DSH 进程一致;非提权进程无法向提权窗口发送输入(UIPI),README 建议用管理员身份启动 DSH。安装前宜自行查看 GitHub 源码 与 MIT 许可证。
典型用法¶
README 给出的 3 分钟上手示例:让模型「打开记事本,写一句“你好,世界”」。模型通常会依次调用 desktop_windows → desktop_type → desktop_read 做验证。
开发时可在源码目录执行:
powershell -NoProfile -File scripts/sync.ps1
用于把包同步进 DSH profile 的 node_modules;改完 lib/ 后在 DSH 插件面板「禁用 → 启用」即可热重载,无需重启 DSH。
适用场景与注意¶
适合谁: 在 Windows 上用 DSH 做 RPA、办公自动化、网课辅助、或需要操作无 API 的桌面应用时,需要一套与 Harness 集成的原生工具链。
平台: Windows 10 1809+ / Windows 11,x64 与 arm64。
常见问题(摘自 README):
- OCR 返回 0 行:多为系统缺「中文(简体)」OCR 语言包;
desktop_doctor会指出,需在系统语言可选功能中安装光学字符识别。 - 点了没反应:看返回里的
changed和hint;纯文本区changed:false且inClient:true可能是光标移动;按钮/菜单宜改desktop_invoke或desktop_key。 - 中文乱码:
desktop_type走剪贴板粘贴;若目标禁用粘贴,改用desktop_key逐键发送。 - 截图临时文件在
%TEMP%\dsh-sidecar,超过 1 小时自动清理。
前台锁、UIPI、锁屏/安全桌面等系统限制不会被绕过,README 将其视为设计选择。
结尾¶
dsh-desktop-sidecar 把 Windows UIA、离线 OCR 与点击校验收进 DSH 插件,让智能体在常见桌面软件里「看、读、点、打」而不必再搭一套 Python 或外部驱动。DSH 生态强调「一切皆插件」;社区目录 SkillHub 插件页 为独立站点,与 DeepSeek / 幻方无官方从属关系。源码与详细说明见 GitHub:111xjyuan/dsh-desktop-sidecar。