DeepSeek Harness Hub
← 返回列表

JasonWei04/dsh-computer-use

DeepSeek Harnessspec-screened在 GitHub 查看 ↗
未验证

dsh-computer-use · 让 DeepSeek Harness 学会操作电脑

尚未跑自动兼容性验证,可查看页面内的依赖与入口分析。 · 最近上游提交 2026/8/22 · 已提供中文文档

dsh 中的计算机使用

综合分
30.2
GitHub 分
30.2
用户评分
★ Stars
4
周下载量
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add JasonWei04/dsh-computer-use
该插件未发布到 npm,走 GitHub 源安装(pnpm 若拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑)
数据截至 2026/9/18(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动

README

dsh-computer-use · 让 DeepSeek Harness 学会操作电脑

DSH computer_use 插件 — 为你的 DeepSeek Harness(纯文本 LLM)赋予真实的桌面控制能力:截屏 / 录屏 → 小米 MIMO 视觉分析 → 鼠标 / 键盘 / 窗口 / 程序控制 → 自主循环直至任务完成。

Version Platform Framework Vision

[!IMPORTANT]
安装本插件前,必须先安装 @linxin666/dsh-web-ui-all(dsh-web-ui 全家桶),本插件基于其 defineTool / installSettingsSection / systemPrompt.section 框架能力开发,缺少全家桶将无法加载。

纯文本模型通过「截屏/录屏 → 视觉模型看屏幕 → 真实键鼠操作」的闭环,获得真实的电脑操作能力:打开程序、点击界面、输入文字、拖拽滚动、操作微信,甚至自主循环完成一个完整任务。

✨ 特性

- 🖥️ 真实桌面控制 —— 不是模拟器,直接操作你的 Windows 桌面:鼠标、键盘、窗口、进程
- 👁️ 多模态视觉 —— 基于 Xiaomi MIMO 视觉模型(OpenAI 兼容端点)理解屏幕内容与元素坐标,让纯文本模型"看得见"
- 📹 截屏 + 录屏双观察 —— 静态场景(看页面布局)用 computer_screenshot;动态场景(滚动、滑动、动画、加载,如微信下滑找朋友圈)用 computer_record 录屏抽帧一次看清,避免反复截屏浪费时间
- 🧹 临时文件自动清理 —— 截屏分析完、录屏分析完、computer_use 循环结束时,自动删除过程中产生的临时截图与录屏帧,不留垃圾文件
- 🔁 自主循环 —— computer_use 工具:给定任务描述,自动执行「观察(截屏或录屏)→ 视觉决策 → 操作 → 再看」直到完成,观察方式由 MIMO 按场景自动选择
- 🧩 web_ui 家族框架 —— 与 @linxin666/dsh-web-ui 全家桶完全一致:defineTool + installSettingsSection + systemPrompt.section + mountOnce 单实例守卫
- 📦 零依赖自包含 —— C# 助手源码内嵌在 index.js 里,首次使用自动写入工作区并用系统自带的 csc.exe 编译,无需安装任何运行时
- 🔐 密钥不落盘 —— MIMO API Key 只从环境变量读取,绝不写入插件文件

🧠 工作原理

┌─────────────┐    computer_screenshot /     ┌──────────────────┐
│  你的 DSH    │    computer_record (录屏抽帧)  │  Windows 桌面观察  │
│  (纯文本模型) │ ───────────────────────────▶ │  截屏 PNG / 录屏帧 │
└──────┬──────┘                              └────────┬─────────┘
│                                           │ 分析(单帧/多帧)
│  computer_action / computer_use            ▼
│  (真实鼠标/键盘/窗口/进程)          ┌──────────────────┐
│                                   │  Xiaomi MIMO 视觉  │
│                                   │  模型 (OpenAI 兼容) │
└─────────────────────────────────── │  描述屏幕+坐标      │
C# 助手 exe(内嵌源码自动编译)      └──────────────────┘

computer_use 自主循环(观察方式自适应):

任务描述 ─▶ [截屏(静态)/录屏(动态)] ─▶ [MIMO 分析] ─▶ [决策下一步操作] ─▶ [执行]
▲                                     │
└──────── 未完成,继续(自动清理临时文件)┘

📁 文件结构

dsh-computer-use/
├── index.js          插件本体(ESM,静态注册到宿主;含内嵌 C# 助手源码,自包含)
├── helper.cs         C# 助手源码副本(仅作参考;index.js 已内嵌,不是运行必需)
├── package.json      包元数据(dsh.bundle.patch → cordis.patch.yml)
├── cordis.patch.yml  安装用 patch 片段(参考,实际手工追加到 profile 的 cordis.patch.yml)
└── README.md

📦 安装

前置条件

| 依赖 | 说明 |
|---|---|
| DSH(DeepSeek Harness) | web 版本,运行于 Windows |
| @linxin666/dsh-web-ui-all(web_ui 全家桶) | 提供 defineTool / installSettingsSection 等框架能力,必须先安装 |
| Windows 10/11 | C# 助手依赖系统 .NET Framework(自带)与 Win32 API |
| MIMO API Key(可选但强烈推荐) | 视觉分析用,见下方「配置视觉」 |

步骤

1. 将 dsh-computer-use/ 整个文件夹复制到 profile 的 plugins/ 目录下:

C:\Users\\.dsh\profiles\web\plugins\dsh-computer-use\

2. 打开 profile 的补丁文件 C:\Users\\.dsh\profiles\web\cordis.patch.yml,在 plugins: 列表末尾追加:

- insert:
- id: computer-use
name: './plugins/dsh-computer-use/index.js'

3. 重启 DSH —— 静态插件在启动时加载,无需审批。

4. 验证:向模型发送「查看电脑操作插件状态」,应得到助手就绪信息。

配置视觉(MIMO)

设置 Windows 环境变量(用户级即可):

MIMO_API_KEY = sk-你的密钥

插件每 30 秒自动重新探测密钥;没有密钥时截图类工具仍可用,只是 analyze 与 computer_use 的视觉决策不可用。

⚙️ 配置项

可在 DSH 设置界面的「dsh-computer-use」分区(settings card)调整:

| 配置 | 默认值 | 说明 |
|---|---|---|
| baseURL | https://api.xiaomimimo.com/v1 | MIMO(OpenAI 兼容)端点 |
| model | 空(自动选择) | 视觉模型 id,如 mimo-v2.5 |
| apiKeyEnv | MIMO_API_KEY | 读取密钥的环境变量名 |
| maxOutputTokens | 4096 | 视觉响应最大 token |
| timeoutMs | 120000 | 视觉请求超时 |
| helperExe | 空(自动编译) | 指定已编译的助手 exe 路径,跳过编译 |
| enabled | true | 总开关 |
| announceToAgent | true | 启动时向 agent 宣告本插件能力 |

🛠️ 工具参考

| 工具 | 作用 |
|---|---|
| computer_status | 查看助手与 MIMO 状态、统计、最近错误 |
| computer_screenshot | 截屏保存 PNG;analyze=true 时让 MIMO 分析屏幕内容与坐标;静态场景(看页面布局)用这个;可传 model 指定视觉模型 |
| computer_record | 录屏抽帧(JPEG),把整段时间的多帧画面一次交给 MIMO 观察动态过程(滚动/滑动/动画/加载);动态场景(微信下滑找朋友圈等)用这个,一次看清避免反复截屏;可传 model 指定视觉模型 |
| computer_action | 单步执行一次真实桌面操作 |
| computer_use | 自主循环执行任务(观察 → 视觉决策 → 执行 → 再看)直到完成,观察方式由 MIMO 自动选择(静态截屏 / 动态录屏);循环结束自动清理临时文件;可传 model 与 observe |

截屏 vs 录屏:什么时候用哪个?

| 场景 | 工具 | 为什么 |
|---|---|---|
| 看页面布局、确认当前界面、等待某个元素出现 | computer_screenshot(analyze=true) | 一帧静态图足够,快 |
| 滚动列表、滑动屏幕、动画/加载过程(如微信里下滑找朋友圈) | computer_record(seconds=4, fps=2) | 录 4 秒抽 8 帧一次看清动态,避免每滚一格截一次屏 |
| 复杂任务自动执行 | computer_use(observe="auto") | MIMO 按场景自动决定每步用截屏还是录屏 |

computer_use / computer_screenshot / computer_record 的 model 参数

三个工具的视觉调用都支持 model 参数,每次调用可指定不同的视觉模型(如 mimo-v2.5、mimo-v2.5-pro),不传则回退到设置区 model 或自动选中的模型:

computer_screenshot(analyze=true, model="mimo-v2.5-pro")
computer_record(seconds=4, fps=2, model="mimo-v2.5")
computer_use(task="打开 PyCharm 创建 test.py", model="mimo-v2.5")

computer_use 的 observe 参数

computer_use 支持 observe 控制观察方式:

- auto(默认):每步由 MIMO 决定——静态界面用截屏,需要观察动态过程时输出 next_observe: "record" 切换录屏
- screenshot:强制每步截屏
- record:强制每步录屏

computer_use(task="在微信里下滑找到三天前的朋友圈并截图", observe="auto")

computer_action 支持的操作

| action | 参数 | 说明 |
|---|---|---|
| move | x, y | 移动鼠标到坐标 |
| click | button(left/right/middle/double), x, y | 点击 |
| drag | x1, y1, x2, y2 | 从 (x1,y1) 拖到 (x2,y2) |
| scroll | dy(正=向下) | 滚轮滚动 |
| type | text | 输入文本(剪贴板 + Ctrl+V) |
| keys | keys | 按键串(SendKeys 语法,见下) |
| run | command | 启动程序/命令(可带参数) |
| activate | process、title(可选) | 将窗口激活到前台 |
| windowrect | process、title(可选) | 获取窗口矩形 |
| listwindows | — | 列出可见窗口 |
| sendchat | text | 向微信当前聊天发送消息 |

keys 语法示例:

{LWIN}{UP}       Win+↑ 最大化窗口
^{a}             Ctrl+A 全选
{ENTER}          Enter
{TAB}            Tab
{F5}             F5 刷新
{F1}-{F24}       功能键

💡 使用示例

「打开记事本,输入 Hello, DSH! 并保存」

1. computer_action(action="run", command="notepad")
2. computer_screenshot(analyze=true) —— 确认记事本已打开
3. computer_action(action="type", text="Hello, DSH!")
4. computer_action(action="keys", keys="^{s}") —— Ctrl+S 保存

「在微信里给当前聊天发送『今晚八点开会』」

1. computer_action(action="sendchat", text="今晚八点开会")

「打开 PyCharm,在项目里创建一个 test.py」—— 直接交给 computer_use:

computer_use(task="打开 PyCharm,在打开的文件夹下创建 test.py,内容为 print('hi')")

🧩 技术细节

- C# 助手自动编译:首次调用时,index.js 内嵌的 C# 源码写入工作区 .ds_computeruse_helper_v9.cs,调用系统 csc.exe(C:\Windows\Microsoft.NET\Framework64\v4.0.30319\csc.exe)编译为 .ds_computeruse_helper_v9.exe,之后直接复用;也可在设置里指定 helperExe 跳过编译
- 截图位置:临时写入工作区 .dsh_computeruse_shot_.png / .dsh_computeruse_loop_.png,分析完即删(keep=true 可保留)
- 录屏帧:临时写入工作区 .dsh_computeruse_record_/frame_.jpg,分析完整目录删除(keep=true 可保留)
- 临时文件:视觉请求体临时写入工作区 .dsh_computeruse_req.json(用后即弃)
- 密钥探测顺序:启动环境变量 → PowerShell 分层探测(User → Machine → Process),每 30 秒重试
- sendchat 定位:按微信窗口宽度 62%、底边上方 55px 估算输入框位置

❓ 常见问题

Q:工具报错 unknown cmd: [object object]?
A:这是 v1 的 bug,已修复。请确认运行的是 v2 版本(本仓库 2.0.0)。

Q:C# 编译失败?
A:插件需要系统 .NET Framework 4.x 的 csc.exe(Win10/11 自带)。确认 C:\Windows\Microsoft.NET\Framework64\v4.0.30319\csc.exe 存在。也可手动编译后通过 helperExe 配置指定。

Q:analyze 报错说没密钥?
A:设置环境变量 MIMO_API_KEY 后等 30 秒(插件自动重试探测),或重启 DSH。

Q:坐标不准?
A:视觉模型给出的坐标是估算值。复杂界面建议小步操作:先截图分析,再小范围移动点击,逐步逼近。

🗑️ 卸载

1. 删除 cordis.patch.yml 中 - insert: 的 computer-use 三行
2. 删除 plugins/dsh-computer-use/ 文件夹
3. 重启 DSH

⚠️ 免责声明

- 本插件操作的是真实桌面、消耗真实资源,请确认意图后再让模型执行
- 视觉模型坐标可能不准,高风险操作(删除、提交、支付等)请人工确认
- sendchat 仅针对微信(Weixin/WeChat 进程)
- 插件在受限沙箱内运行宿主进程,请仅在可信环境使用

📜 更新日志

v3.0.0 (2026-08-22)
- 📹 新增 computer_record 录屏工具:录制 N 秒屏幕按帧率抽帧为 JPEG,把整段时间的多帧画面一次交给 MIMO 观察动态过程(滚动/滑动/动画/加载),动态场景一次看清,避免反复截屏
- 🧹 临时文件自动清理:截屏分析完、录屏分析完、computer_use 循环结束时自动删除过程中产生的临时截图与录屏帧(各工具 keep=true 可保留)
- 🔁 computer_use 观察方式自适应:新增 observe 参数(auto/screenshot/record),auto 模式下 MIMO 按场景决定每步用截屏(静态)还是录屏(动态,输出 next_observe:"record" 切换)
- 🆕 C# 助手升级 v9:新增 record    [quality] 命令

v2.1.0 (2026-08-18)
- ✨ computer_use 的 model 参数真正生效(此前声明了但未传给视觉调用,实际用全局默认)
- ✨ computer_screenshot 新增 model 参数,单步视觉分析也可指定模型
- 🔧 现在可随时在调用中切换视觉模型(如 mimo-v2.5 / mimo-v2.5-pro),不传则回退全局默认

v2.0.0 (2026-08-18)
- 🐛 修复 helperRun 参数错位导致的 unknown cmd: [object object] 错误
- 🐛 C# 源码从「同目录 helper.cs」改为内嵌进 index.js,消除 import.meta.url 在 loader 下定位失败导致的编译错误
- 📦 首个公开版本

v1.0.0 (内部)
- 初始版本:C# 助手 v8、MIMO 视觉、四个工具

📄 许可证
MIT © JasonWei04

上游仓库有新提交时邮件通知你(每天最多一封,无更新不打扰),随时一键退订。

💬 加入 DPharness 群聊

插件用法、部署报错、新插件第一时间同步——群里问,比一个人翻文档快。

点击加入 QQ 群
DPharness 群聊二维码,手机 QQ 扫码进群
扫码进群