deepseek-harness
deepseek-ai
DeepSeek Harness: Everything is a Plugin.
PROJECT TOPICS
INSTALL REFERENCE
dsh plugin --profile web add github:treers2/qq-operations
该命令指向仓库当前默认分支;尚无绑定当前 commit 的完整验证结果。
PROJECT README
在 Windows 上可靠操控 QQ NT 桌面版(读消息 · 发消息 · 发文件 · 群文件 · 多会话陪聊)的 DeepSeek Harness(DSH)skill 与可独立运行的 PowerShell 脚本集。
Windows 10/11 · PowerShell 5.1+ · QQ NT 桌面版 · 零第三方依赖 · MIT
📌 本文档对应 v1.2.0。 ✨ 一句话卖点:AI 圈热门方向「CUA(电脑操作智能体)」的无障碍树解法——不截图、不猜坐标、点错了会自己停下。
一句话:让你的 AI 助手学会用 QQ。
装了它以后,你不需要自己切到 QQ、不需要打字或点文件,直接对你电脑上的 AI 助手说人话就行,比如:
"帮我看看跟张三最近聊了什么" → AI 自动打开会话、读出最近消息,整理给你 "在 QQ 上跟李四说一声:明早十点开会" → AI 找到李四、确认没找错人、发出去、再检查一遍 "把桌面这个 Excel 发给张三" → AI 自动发文件并确认真的发出去了
它干活时一定按规矩来,这也是它和你手动操作最大的区别:
你完全不需要懂"脚本""自动化""UI"这些词——你只需要会跟 AI 说话,并且这台电脑上登录了你的 QQ。
💡 想自己手动用也行:本包不依赖 DSH,把脚本文件夹单独拷出来就能用(见下文「九、安装」)。只是那部分需要会复制粘贴命令——先看第二节,判断你属于哪一类。
| 你属于…… | 看这些就够 |
|---|---|
| 完全不懂技术,只想让 AI 操 QQ | 「安装」→ 装好后对 AI 说人话即可;其余不用读 |
| 会复制粘贴命令,想手动跑 | 「快速开始」(照着抄)+「先看这里:新手必踩的坑」 |
| 换新电脑 / QQ 升级之后 | 「换机器 / 升级后的校准」 |
| 想搞懂原理、改参数、加功能 | 「目录结构」+ docs/manual.md |
QQ NT 界面是 Chromium(浏览器内核)渲染的,但 Windows 的无障碍系统里每个控件都有固定的类名——输入框 qq-msg-editor、联系人头 chat-header__contact-name、发送按钮 发送。本包像戴了一副"透视眼镜":不靠截图猜像素,而是直接"点名"控件、读取它实时坐标再操作。所以窗口移动、缩放、换 DPI 全都不影响,中文也不用 OCR(那是会认错字的)。硬要对比的话:
| 对比 | 截图 + OCR 像素法 | 本包(UIA 类名法) |
|---|---|---|
| 定位原理 | 逐字识别 → 猜坐标 | 元素类名 → 实时坐标 → 中心点击 |
| 抗 DPI / 分辨率 | 差(坐标直接失效) | 强(坐标每步现取) |
| 抗窗口移动/缩放 | 差 | 强(EnumWindows 动态定位) |
| 中文文本 | OCR 误读风险 | UIA 精确文本 |
| 失败模式 | 悄悄点错 | 头部校验 abort + 读回验证 |

ShowWindow(9) 恢复Get-QQMode 自动识别,调用方无感㍿,窗口标题显示为 ?):头部联系人兜底直命中chat-header__contact-name 与目标不符即中止,防发错人;发送前读回编辑器内容二次校验张三等2个会话)——读写切换一律走 Open-Chat,顺序无关qq_check.ps1 10 项检查(含「面板唤醒兜底可用」)+ -SendTest 自动识别登录账号发给自己(换账号零配置)Clipboard.SetText + ^v)近两年 AI 圈最热的方向之一就是 CUA(Computer-Using Agent,电脑操作智能体)——让 AI 像人一样用电脑:自己看屏幕、动鼠标、点按钮。大家都在问:AI 能不能替我在电脑软件里办事(比如 QQ 里收发消息)?——能,本包就是其中一个已落地、且更稳的实现。
主流 CUA 的典型做法是「截图 + 视觉模型猜坐标」:AI 一边看画面、一边猜"按钮在哪"、一边模拟点击,再来一轮截图确认。听起来科幻,工程短板却很实:换 DPI 就"瞎"、窗口一动就点歪、中文靠 OCR 会认错字、每一步都可能悄悄点错——错了还不容易被发现。
本包走的是无障碍树(UI Automation)驱动的 CUA——学术界(如 Microsoft Magentic-UI)正在收敛的方向:"看"的不是像素,而是操作系统给的控件身份证。
| 视觉型 CUA(主流) | 本包:无障碍树驱动 CUA | |
|---|---|---|
| 怎么"看"界面 | 截图给视觉模型 | 读取控件树(每个控件有固定类名:qq-msg-editor…) |
| 怎么找按钮 | 猜像素坐标 | 点名控件 → 取实时坐标(每步现取,不缓存) |
| 抗 DPI / 分辨率 / 缩放 | 差(坐标直接失效) | 强 |
| 中文 | OCR 有误读风险 | 控件文本精确 |
| 犯错时 | 悄悄点错 | 硬校验中止(头部不符即停)+ 读回验证(发完再审一遍) |
直白地说:别的 AI 在"看着屏幕摸索",你的 AI 在 QQ 里"知道自己正在干什么"——找对人、发出去、再检查,任何一步对不上就停,绝不将错就错。
📌 关系说明(避免误会):本包是"工具层"(脚本 + skill 操作指令),接上 DeepSeek Harness 后由 AI 驱动,才构成完整的 CUA 闭环;也可以完全不接 AI、当作普通人可用的命令工具手动执行。

ESC 来"清理"界面——ESC 会把整个 QQ 聊天窗口关掉,之后所有操作全部失效。想取消/清空请点界面上的按钮。^v 粘贴)。如果你自己写脚本,别用 SendKeys 打中文,会乱码。.ps1 文件必须保存为 UTF-8 带 BOM:Windows PowerShell 5.1 默认按 ANSI 读文件,中文会直接报"语法错误"。本包的文件已带 BOM;你手动编辑后,请用下面这行保存回去:[IO.File]::WriteAllText($p, $c, (New-Object Text.UTF8Encoding $true))
qq_check.ps1 -SendTest 和 qq_send.ps1 的 -target 留空时,脚本会自动识别当前登录账号,发给自己——非常安全。⚠️ 「文件传输助手」在 2026-08 实测是他人账号伪装,严禁用它做自测。以下命令均在
qq-operations目录下执行;每一条都是完整流程,可以直接复制。
# ① 环境自检(只读;换机器第一步)
powershell -ExecutionPolicy Bypass -File scripts\qq_check.ps1
# ② 自检 + 发一条测试消息【给自己】(自动识别登录账号,安全)
powershell -ExecutionPolicy Bypass -File scripts\qq_check.ps1 -SendTest
# ③ 读最近 10 条(自动打开/切换会话;输出 [ME]/[THEM] 前缀)
. scripts\qq_lib.ps1; Read-Chat '联系人名' 10
# ④ 发消息(-target 留空 = 自动识别自己,安全自测;业务发送必须显式 -target)
powershell -ExecutionPolicy Bypass -File scripts\qq_send.ps1 -target '联系人名' -msg '内容'
# ⑤ 发文件 ——【两步走】① 剪贴板粘贴出文件卡片 ② 点击确认浮层「发送(1)」
powershell -ExecutionPolicy Bypass -File scripts\qq_send_file_paste.ps1 -file 'C:\path\文件.xlsx' -group '群名'
powershell -ExecutionPolicy Bypass -File scripts\qq_click_send1.ps1 -group '群名'
⚠️ 第⑤步为什么是两步:QQ 发文件时主「发送」按钮通常是禁用的(仅文本/AI 消息启用,实测
state=disabled),所以文件卡片必须先粘贴出来,再点确认浮层「发送(1)」(宽度 >100px 的那个,别点主发送钮)。只跑第一步 = 卡片出现但没发出去。
| 你想…… | 入口 |
|---|---|
| 检查环境 / 换机器校准 | 快速开始 ①(+ 「换机器」节) |
| 发测试消息给自己 | 快速开始 ② |
| 读某人/某群最近消息 | 快速开始 ③ |
| 发一条文本消息 | 快速开始 ④ |
| 发一个文件 | 快速开始 ⑤(两步) |
| 一次读多个会话(轮询陪聊) | manual.md §5 |
| 翻更早的历史消息(视口外) | manual.md §6 |
| 读/下载群文件 | manual.md §8 |
| 长中文消息(避免命令行传参编码问题) | 写进 UTF-8 的 msg.txt,脚本内 ReadAllText 读取;详见 manual.md |
| 出错/卡住了 | manual.md §10 常见失败与排查 |
发消息的完整内部流程(scripts/qq_send.ps1 已内置):

git clone https://github.com/treers2/qq-operations.git
# Windows 下把 qq-operations 目录放到 ~/.dsh/skills/ 下即可
# (或:mklink /J %USERPROFILE%\.dsh\skills\qq-operations <克隆路径>)
# 重启 DSH,Agent 遇到 QQ 任务会自动加载本 skill 的权威流程
装好之后:你不需要再读下面的东西了。 直接对 AI 说"帮我读下 QQ 上跟张三的聊天" / "帮我在 QQ 群里发一句话",它会自己处理(包括先提醒你别动鼠标)。
目录可放任意位置(所有脚本用 $PSScriptRoot 相对引用,无硬编码路径):
cd qq-operations
powershell -ExecutionPolicy Bypass -File scripts\qq_check.ps1
# 之后直接用「快速开始」里的五条命令即可
所有可调参数集中在一个文件:scripts/qq_config.ps1(类名、按钮名、坐标、等待时长)。
qq_check.ps1(只读)→ 查看 FAIL 项qq_recon.ps1 / qq_search_debug.ps1 dump 当前 UIA 结构 → 更新 qq_config.ps1qq_config.ps1qq_check.ps1 -SendTest 收尾(发给登录账号本人)排查三板斧:
qq_check.ps1(定位断点)→qq_recon.ps1(窗口/元素清单)→qq_search_debug.ps1(面板搜索结果 dump)。 完整流程与踩坑记录见 docs/manual.md。
qq-operations/
├── SKILL.md # DSH skill:Agent 执行的权威流程 + 防坑清单
├── README.md
├── LICENSE # MIT
├── docs/
│ ├── manual.md # 精简操作手册(窗口结构 / 流程 / 失败排查表)
│ └── assets/ # 架构图与流程图
└── scripts/
├── qq_lib.ps1 # 核心库:窗口枚举 / UIA 查找 / Open-Chat / Read-Chat / 点击
├── qq_config.ps1 # 常量中心(唯一需要改动的配置文件)
├── qq_self.ps1 # 自动识别当前登录账号(自测目标)
├── qq_send.ps1 # 发消息(头部校验 + 内容校验 + 读回验证)
├── qq_check.ps1 # 环境自检(10 项)+ -SendTest
├── qq_recon.ps1 # 侦察:枚举窗口 / 面板搜索框 / 聊天窗元素
├── qq_search_debug.ps1 # 面板搜索调试(Open-Chat 失败时用)
├── qq_diag.ps1 # 枚举 QQ 全部可见窗口(诊断聊天窗状态)
├── qq_diag2.ps1 # Open-Chat 体检(头部校验 + 文件按钮)
├── qq_send_file_paste.ps1 # 剪贴板粘贴发文件(只注入卡片,不点主发送钮)
├── qq_click_send1.ps1 # 点击文件确认浮层「发送(1)」(宽>100px,勿点主发送钮)
└── qq_open_contact.ps1 # 点击面板搜索结果直接打开会话(仅排障调试用)
qq_check.ps1 -SendTest/qq_send.ps1 留空 -target 即自动识别,已内置安全阀)qq_send.ps1 中头部校验是「防发错人」的最后防线Revive-QQPanel:恢复+置前+800ms 树重建等待+重试),属设计行为而非失败MIT · © 2026 treers2
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: 无有效分类标签。