System Controller 技能全面介绍

一句话定位:通过自然语言控制 Windows 桌面软件、系统硬件、串口设备和 IoT 智能家居的统一技能。


架构总览

用户自然语言 → AI 理解意图 → 选择模块+动作 → 执行 Python 脚本 → 系统完成操作

6 个独立模块,各一个脚本,模块之间零依赖,每个都可以单独运行。


六大模块一览

# 模块 脚本 职责
1 Window Manager window_manager.py 桌面窗口控制
2 Process Manager process_manager.py 系统进程管理
3 Hardware Controller hardware_controller.py 系统硬件设置
4 Serial Communication serial_comm.py Arduino / 串口通信
5 IoT Controller iot_controller.py 智能家居 / HTTP API
6 GUI Controller 🆕 gui_controller.py 鼠标键盘自动化、截图、OCR、视觉识别

模块 1:Window Manager — 窗口管理

能做什么:列出、激活(切到前台)、关闭、最小化、最大化、调整大小、向窗口发送按键。

技术路线:PowerShell 内嵌 C# 调用 Win32 API(user32.dllSetForegroundWindowShowWindowSetWindowPos)。

典型场景

  • “关闭 Chrome” → 先 list 找到 Chrome 窗口 → close
  • “把微信调到前台” → activate
  • “全屏当前窗口” → maximize

模块 2:Process Manager — 进程管理

能做什么:列出进程、结束进程、启动程序、查看进程详情、查看系统状态(CPU/内存/磁盘)。

技术路线:PowerShell 的 Get-Process + Get-CimInstance

典型场景

  • “关掉所有记事本” → kill --name notepad
  • “启动 VS Code” → start “code”
  • “系统资源使用情况” → system

模块 3:Hardware Controller — 硬件控制

能做什么(5 大类 13 种操作):

类别 操作
🔊 音量 获取、设置、静音
💡 屏幕 获取亮度、设置亮度、显示器信息
⚡ 电源 锁屏、睡眠、休眠、关机、重启、取消
🌐 网络 列出网卡、启用/禁用、扫描 WiFi、网络信息
🔌 USB 列出 USB 设备

技术路线:PowerShell + WMI/CIM + nircmd(精确音量)。

安全规则:电源操作(关机/重启/睡眠)必须先确认。


模块 4:Serial Communication — 串口通信

能做什么:列出串口、自动检测波特率、发送数据、接收数据、双向对话、持续监听。

技术路线:pyserial 库,首次使用自动安装。

典型场景

  • “有哪些串口” → list
  • “给 Arduino 发开灯指令” → send --port COM3 --data “LED_ON”
  • “读取温度传感器” → chat --port COM3 --data “GET_TEMP”

模块 5:IoT Controller — 智能家居控制

能做什么

  • Home Assistant:列出实体、获取状态、开关、切换、调用任意服务
  • 通用 HTTP:对任意 REST 端点执行 GET/POST/PUT
  • 米家:设备发现指导

技术路线:requests 库(自动安装),REST API 调用。

典型场景

  • “打开客厅灯” → homeassistant on --entity-id light.living_room
  • “关掉卧室空调” → homeassistant off --entity-id climate.bedroom
  • “调用这个 API” → http get/post

模块 6:GUI Controller 🆕 — GUI 自动化

能做什么(5 大类 24 种操作):

类别 操作
🖱️ 鼠标 获取位置、移动、左键点击、右键点击、双击、拖拽、滚动
⌨️ 键盘 输入文字、按快捷键、按下/释放(长按)
📸 截图 全屏、活动窗口、指定区域、获取分辨率、列出已保存截图
🔍 OCR 识别屏幕文字(支持 pytesseract 或 Windows OCR 回退)
👁️ 视觉 模板匹配找图、找到并点击图片、按颜色查找、获取像素颜色

技术路线:pyautogui + pillow(自动安装到 venv),截图保存到 screenshots/ 目录。

安全机制

  • Failsafe:鼠标移到屏幕四角会立即中止所有 pyautogui 操作
  • 不确定时先截图再操作

总计能力

66 种操作,覆盖度约 70-80% 的日常 Windows 桌面控制需求。

未覆盖的 20-30%

场景 原因 替代方案
浏览器内部 DOM 操作 需要 Playwright 插件 使用内置 Browser Automation 技能
游戏操控 反作弊/DirectX 拦截 无法覆盖
需要人机验证的操作 安全限制 无法覆盖
复杂 3D 软件 图形引擎阻挡 部分可用窗口+截图覆盖

执行模型

所有脚本通过 execute_command 调用,模式统一:

{python路径} {脚本路径} {动作} {参数}

两个 Python 路径:

  • 常规模块C:\Users\wave\.workbuddy\binaries\python\versions\3.13.12\python.exe
  • GUI ControllerC:\Users\wave\.workbuddy\binaries\python\envs\default\Scripts\python.exe(venv,含 pyautogui/pillow)

依赖关系

common.py ← 所有模块依赖(PowerShell 执行、编码处理)
window_manager.py — 零外部依赖
process_manager.py — 零外部依赖
hardware_controller.py — 零外部依赖(nircmd 可选)
serial_comm.py — pyserial(自动安装)
iot_controller.py — requests(自动安装)
gui_controller.py — pyautogui + pillow(自动安装到 venv)

面对未知设备的处理流程

  1. 能启动吗?→ process_manager start
  2. 有窗口吗?→ window_manager list
  3. 先截图看看 → gui_controller screenshot
  4. OCR 读文字 → gui_controller visual ocr
  5. 找图点击 → gui_controller visual click-image
  6. 鼠标键盘直接操作 → gui_controller mouse/keyboard
  7. 有 API 吗?→ iot_controller http
  8. 是 USB 设备吗?→ hardware_controller usb list → serial_comm
  9. 都不行 → 建议安装 MCP Server 或写自定义脚本

这就是新版的完整面貌。核心升级是 GUI Controller,补齐了视觉层和鼠标层,让技能从"系统级控制"扩展到了"界面级操作"。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐