控制软件和硬件的技能system-controller
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.dll 的 SetForegroundWindow、ShowWindow、SetWindowPos)。
典型场景:
- “关闭 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 Controller:
C:\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)
面对未知设备的处理流程
- 能启动吗?→ process_manager start
- 有窗口吗?→ window_manager list
- 先截图看看 → gui_controller screenshot
- OCR 读文字 → gui_controller visual ocr
- 找图点击 → gui_controller visual click-image
- 鼠标键盘直接操作 → gui_controller mouse/keyboard
- 有 API 吗?→ iot_controller http
- 是 USB 设备吗?→ hardware_controller usb list → serial_comm
- 都不行 → 建议安装 MCP Server 或写自定义脚本
这就是新版的完整面貌。核心升级是 GUI Controller,补齐了视觉层和鼠标层,让技能从"系统级控制"扩展到了"界面级操作"。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐

所有评论(0)