deepseek-harness
deepseek-ai
DeepSeek Harness: Everything is a Plugin.
PROJECT TOPICS
PROJECT README
给 DeepSeek Harness 增加桌面与网页自动化能力:
纯 Host 插件,Windows 平台,零第三方依赖(PowerShell + user32 / WinRT OCR)。
capture:全屏(含副屏)截图 → PNG + base64,截图存 ~/.dsh/screenshots/ocr:Windows OCR 输出每行文字 + 中心像素坐标(可直接用于鼠标点击)| 操作 | 说明 |
|---|---|
click / double / right |
鼠标左键/双击/右键点击(x,y 像素坐标) |
drag |
按住拖动(含 Shift 拖拽:画正圆等) |
type |
输入文字(中文安全:剪贴板 + Ctrl+V) |
key |
按键(SendKeys 语法,如 ^c、{ENTER}、{ESC}) |
activate |
按窗口标题激活窗口 |
一条命令(git 源,产物已入库,无需构建):
dsh plugin --profile web add "github:lak321/dsh-screen-agent#<commit>&path:/"
<commit>换成最新提交号(见仓库主页)。或本地目录:cd dsh-screen-agent && dsh plugin --profile web add .
装完重启 DSH(npx -y @deepseek-ai/dsh web)生效。
兼容 DSH Profile:web。 旧的手动复制
host/并注入cordis.patch.yml的方式已废弃,由 bundle 层栈安装替代。
# 停止当前 DSH,然后重新启动
npx -y @deepseek-ai/dsh web
POST /api/screen { "op": "capture" }POST /api/screen { "op": "ocr", "path": "...", "lang": "zh-CN" }POST /api/screen { "op": "click", "x": 100, "y": 200 }POST /api/screen { "op": "type", "text": "你好" }对话用法(DSH agent):你说「截图看看」「点右上角按钮」「在输入框输入 xxx」「在画图里画个碗」,agent 通过脚本/路由自动执行。
webServer.register('/api/screen'),处理 op 分发lib/scripts/*.ps1):capture.ps1:虚拟桌面截图(System.Drawing CopyFromScreen)ocr.ps1:WinRT Windows.Media.Ocr(本地 OCR,中文支持)mouse.ps1:user32 SetCursorPos + mouse_event(DPI aware + 负坐标副屏支持 + Shift 拖拽)type.ps1 / key.ps1:剪贴板 + keybd_event / SendKeysactivate.ps1:SetForegroundWindowSetProcessDPIAware() 必须在进程启动时调用,否则鼠标坐标在 125% 缩放下偏移 1.25 倍SPI_SETMOUSE 0,0,0)→ 线性 k=1.25(DPI)→ 位移 ÷1.25 补偿 → 画完恢复(1,6,10)OcrLine.Words[i] 索引不可靠,用 foreach 遍历param() 会把 -1609 当参数名解析丢失 → 用 $args 手动解析Win11 画图已升级为 WinUI 3(Microsoft.UI.Xaml),与旧版行为差异巨大,agent 画图时必须注意:
Responding=False,WM_CLOSE 无效):发生在点任意色块后。
只能 taskkill。恢复流程:截图 → 裁剪画布区域 → 重新打开。
不要点色板;清理用橡皮擦,颜色保持默认黑。Esc = 取消文本(文字直接丢失!)。提交方式:切其他工具(UIA Toggle 铅笔)。ValuePattern.SetValue 后 Enter 不生效(文字不放大)。Set-Clipboard + Ctrl+V。GetPixel 按步长扫描会漏掉奇数行的横线(误判"没画上"),
细扫(步长 1-2)确认后再重画。Ctrl+S 覆盖保存;保存后必须关闭画图(CloseMainWindow)。0xFFFFFF88 = 向上 120),
或改用 UIA ScrollPattern.Scroll(NoAmount, SmallDecrement)。MIT
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: 无有效分类标签。