TTokenySpace
返回 Skills 列表

Flow Control Hub Free

桌面自动化流程控制中枢免费版,提供鼠标、键盘、屏幕截图等核心自动化能力,快速上手RPA任务。

#中文
0

安装到 Tokeny(自动)

下载 ZIP
安装"flow-control-hub-free"技能
技能信息:
- 名称: Flow Control Hub Free
- 标识: flow-control-hub-free
- 描述: 桌面自动化流程控制中枢免费版,提供鼠标、键盘、屏幕截图等核心自动化能力,快速上手RPA任务。
- 版本: 1.0.0
下载地址:
https://www.tokeny.space/api/skills/flow-control-hub-free/download
继续

复制上方内容到 Tokeny 客户端并在会话中发送即可自动安装;也可直接 下载 ZIP并拖动到技能窗口安装。

SKILL.md

让AI Agent像人类一样操作桌面。鼠标、键盘、截图,三合一流程控制。

将重复性桌面操作交给Agent执行。本技能提供统一的桌面控制接口,覆盖鼠标定位、键盘输入、屏幕截图三大核心能力,配合失败安全机制确保自动化过程可控可中止。

架构总览

┌─────────────────────────────────────────────────┐
│           桌面流程控制中枢 (免费版)               │
├─────────────────────────────────────────────────┤
│                                                  │
│  ┌──────────┐  ┌──────────┐  ┌──────────┐       │
│  │ 鼠标控制  │  │ 键盘控制  │  │ 屏幕操作  │       │
│  │          │  │          │  │          │       │
│  │ 绝对定位  │  │ 文本输入  │  │ 全屏截图  │       │
│  │ 相对移动  │  │ 热键组合  │  │ 区域截图  │       │
│  │ 平滑移动  │  │ 特殊按键  │  │ 像素检测  │       │
│  │ 点击拖拽  │  │ 按键保持  │  │ 分辨率   │       │
│  └──────────┘  └──────────┘  └──────────┘       │
│          │            │            │              │
│          └────────────┼────────────┘              │
│                       ▼                           │
│               ┌──────────────┐                    │
│               │  安全防护层   │                    │
│               │  失败中止     │                    │
│               │  边界检查     │                    │
│               └──────────────┘                    │
└─────────────────────────────────────────────────┘

快速开始

  1. 阅读## 核心能力章节了解skill功能
  2. 按## 依赖说明配置环境
  3. 执行所需能力对应的命令
  4. 参考## 错误处理章节处理异常
  5. 查看## FAQ解答常见疑问

30秒上手(最小可用)

安装依赖并执行第一次鼠标移动:

pip install pyautogui pillow
import pyautogui

x, y = pyautogui.position()
print(f"鼠标位置:{x}, {y}")

screen_w, screen_h = pyautogui.size()
pyautogui.moveTo(screen_w // 2, screen_h // 2, duration=0.3)

pyautogui.click()

120秒标准搭建

初始化控制器并执行完整的输入流程:

import pyautogui
import time

pyautogui.FAILSAFE = True
pyautogui.PAUSE = 0.1  # 每个操作间隔0.1秒
screenshot = pyautogui.screenshot()
screenshot.save("before_action.png")

try:
    import pygetwindow as gw
    windows = gw.getAllWindows()
    for w in windows:
        if "记事本" in w.title:
            w.activate()
            time.sleep(0.5)
            break
except ImportError:
    print("提示:安装 pygetwindow 可启用窗口管理:pip install pygetwindow")

pyautogui.typewrite("Hello World", interval=0.05)

pyautogui.hotkey('ctrl', 's')

screenshot_after = pyautogui.screenshot()
screenshot_after.save("after_action.png")

300秒完整配置

配置自动化日志、错误处理与批量操作模板:

import pyautogui
import time
import logging
from pathlib import Path

logging.basicConfig(
    level=logging.INFO,
    format='%(asctime)s - %(levelname)s - %(message)s',
    filename='automation.log'
)
logger = logging.getLogger(__name__)

class FlowController:
    """桌面流程控制器(免费版核心)"""

    def __init__(self, failsafe=True, pause=0.1):
        self.failsafe = failsafe
        self.pause = pause
        pyautogui.FAILSAFE = failsafe
        pyautogui.PAUSE = pause
        self.action_log = []

    def safe_click(self, x, y, button='left', clicks=1, desc=""):
        """安全点击,带日志记录"""
        try:
            logger.info(f"点击 ({x}, {y}) [{button}] - {desc}")
            pyautogui.click(x, y, button=button, clicks=clicks)
            self.action_log.append({
                'action': 'click', 'x': x, 'y': y,
                'desc': desc, 'success': True
            })
        except pyautogui.FailSafeException:
            logger.error("失败安全触发!自动化已中止。")
            raise
        except Exception as e:
            logger.error(f"点击失败:{e}")
            self.action_log.append({
                'action': 'click', 'desc': desc, 'success': False, 'error': str(e)
            })

    def safe_type(self, text, interval=0.05, desc=""):
        """安全输入文本"""
        try:
            logger.info(f"输入文本:{text[:30]}... - {desc}")
            pyautogui.typewrite(text, interval=interval)
            self.action_log.append({
                'action': 'type', 'text': text, 'desc': desc, 'success': True
            })
        except Exception as e:
            logger.error(f"输入失败:{e}")

    def capture(self, region=None, filename=None):
        """截图并保存"""
        img = pyautogui.screenshot(region=region)
        if filename:
            Path(filename).parent.mkdir(parents=True, exist_ok=True)
            img.save(filename)
            logger.info(f"截图已保存:{filename}")
        return img

fc = FlowController(failsafe=True)
fc.safe_click(500, 300, desc="点击输入框")
fc.safe_type("自动化测试内容", desc="填写表单")
fc.capture(filename="screenshots/result.png")

核心能力

鼠标控制

功能方法参数说明
绝对定位moveTo(x, y, duration)x/y为像素坐标,duration为移动时长(秒)
相对移动moveRel(xOffset, yOffset)相对当前位置偏移
平滑移动moveTo(x, y, duration=0.5)duration>0时使用插值平滑移动
左键点击click(x, y)不传坐标则在当前位置点击
右键点击click(x, y, button='right')button可选left/right/middle
双击click(x, y, clicks=2)clicks控制点击次数
拖拽dragTo(x, y, duration=0.5)从当前位置拖拽到目标
滚轮scroll(clicks)正数向上,负数向下
获取位置position()返回当前(x, y)坐标

示例:

import pyautogui

pyautogui.moveTo(800, 400, duration=0.5)

pyautogui.click(300, 200, button='right')

pyautogui.click(500, 300, clicks=2, interval=0.1)

pyautogui.moveTo(100, 100)
pyautogui.dragTo(800, 600, duration=1.0, button='left')

pyautogui.scroll(-5)

输入: 用户提供鼠标控制所需的指令和必要参数。 处理: 按照skill规范执行鼠标控制操作,遵循单一意图原则。 输出: 返回鼠标控制的执行结果,包含操作状态和输出数据。

键盘控制

功能方法参数说明
输入文本typewrite(text, interval)interval为按键间隔(秒)
按键press('enter')按下并释放单个键
热键组合hotkey('ctrl', 'c')同时按下多个键
按住keyDown('shift')按住不释放
释放keyUp('shift')释放已按住的键

常用键名速查:

类别键名
字母'a' 到 'z'
数字'0' 到 '9'
功能键'f1' 到 'f12'
回车'enter' 或 'return'
退出'esc' 或 'escape'
空格'space'
制表'tab'
退格'backspace'
删除'delete' 或 'del'
方向键'up' 'down' 'left' 'right'
修饰键'ctrl' 'shift' 'alt' 'win'

示例:

import pyautogui

pyautogui.typewrite("你好世界", interval=0.05)

pyautogui.hotkey('ctrl', 'c')

pyautogui.hotkey('ctrl', 'v')

pyautogui.hotkey('ctrl', 'a')

pyautogui.keyDown('shift')
pyautogui.press('right')
pyautogui.press('right')
pyautogui.press('right')
pyautogui.keyUp('shift')

输入: 用户提供键盘控制所需的指令和必要参数。 处理: 按照skill规范执行键盘控制操作,遵循单一意图原则。 输出: 返回键盘控制的执行结果,包含操作状态和输出数据。

屏幕操作

功能方法参数说明
全屏截图screenshot()返回PIL Image对象
区域截图screenshot(region=(l,t,w,h))region为(left, top, width, height)
保存截图screenshot(filename='x.png')直接保存到文件
像素颜色pixel(x, y)返回RGB元组
屏幕尺寸size()返回(width, height)

示例:

import pyautogui

img = pyautogui.screenshot()
img.save("fullscreen.png")

region_img = pyautogui.screenshot(region=(100, 100, 800, 600))
region_img.save("region.png")

r, g, b = pyautogui.pixel(500, 300)
print(f"RGB: ({r}, {g}, {b})")

w, h = pyautogui.size()
print(f"分辨率:{w}x{h}")

输入: 用户提供屏幕操作所需的指令和必要参数。 处理: 按照skill规范执行屏幕操作操作,遵循单一意图原则。 输出: 返回屏幕操作的执行结果,包含操作状态和输出数据。

安全防护

机制说明使用方式
失败安全鼠标移到屏幕角落立即中止pyautogui.FAILSAFE = True
操作暂停每个操作之间自动暂停pyautogui.PAUSE = 0.1
边界检查防止坐标超出屏幕范围自动校验

紧急中止方法:将鼠标快速移动到屏幕任意一角(左上/右上/左下/右下),自动化立即停止并抛出 FailSafeException。

输入: 用户提供安全防护所需的指令和必要参数。 处理: 按照skill规范执行安全防护操作,遵循单一意图原则。 输出: 返回安全防护的执行结果,包含操作状态和输出数据。 能力覆盖范围:本skill的核心能力覆盖以下场景关键词:桌面自动化流程控、制中枢免费版、提供鼠标、屏幕截图等核心自、动化能力、快速上手、RPA、桌面流程控制中枢、免费版是一套面向、Agent、的桌面自动化执行、将鼠标操作、键盘输入、屏幕截图等底层控、制能力封装为统一、的流程控制接口、通过本技能、可以像人类一样操、作桌面应用程序、实现表单填写、窗口切换、截图归档等常见、Use、when、模型调用、智能对话、LLM、应用时使用、不适用于需要、确定性的关键决策等。

使用场景

场景一:自动化表单填写

角色:数据录入员

场景描述:需要将Excel中的数据逐行填入网页表单,每行包含姓名、邮箱、电话三个字段。

实现:

import pyautogui
import time
import csv

pyautogui.FAILSAFE = True
pyautogui.PAUSE = 0.2

with open('contacts.csv', 'r', encoding='utf-8') as f:
    reader = csv.DictReader(f)

    for row in reader:
        pyautogui.click(300, 250)
        pyautogui.typewrite(row['name'], interval=0.03)

        pyautogui.press('tab')
        pyautogui.typewrite(row['email'], interval=0.03)

        pyautogui.press('tab')
        pyautogui.typewrite(row['phone'], interval=0.03)

        pyautogui.press('enter')

        time.sleep(1.5)

        print(f"已录入:{row['name']}")

场景二:截图归档与质检

角色:测试工程师

场景描述:在自动化测试过程中,需要在关键步骤截图并归档,用于后续质检对比。

实现:

import pyautogui
from datetime import datetime
from pathlib import Path

def capture_step(step_name, region=None):
    """在关键步骤截图并按时间戳归档"""
    timestamp = datetime.now().strftime("%Y%m%d_%H%M%S")
    save_dir = Path(f"screenshots/{datetime.now().strftime('%Y%m%d')}")
    save_dir.mkdir(parents=True, exist_ok=True)

    filename = f"{save_dir}/{step_name}_{timestamp}.png"
    pyautogui.screenshot(region=region, filename=filename)
    print(f"截图已保存:{filename}")
    return filename

capture_step("01_login_page")
pyautogui.click(400, 300)
pyautogui.typewrite("testuser", interval=0.05)
pyautogui.press('tab')
pyautogui.typewrite("password123", interval=0.05)
capture_step("02_credentials_filled")
pyautogui.press('enter')
import time; time.sleep(2)
capture_step("03_after_login")

场景三:多窗口数据搬运

角色:行政人员

场景描述:需要从应用A复制数据,切换到应用B粘贴,循环处理多条记录。

实现:

import pyautogui
import time

pyautogui.PAUSE = 0.3

for i in range(10):
    pyautogui.click(200, 300 + i * 25)  # 逐行选择
    time.sleep(0.3)
    pyautogui.hotkey('ctrl', 'c')
    time.sleep(0.2)

    pyautogui.hotkey('alt', 'tab')
    time.sleep(0.5)

    pyautogui.click(500, 400)
    pyautogui.hotkey('ctrl', 'v')
    pyautogui.press('enter')
    time.sleep(0.3)

    pyautogui.hotkey('alt', 'tab')
    time.sleep(0.3)

    print(f"第 {i+1} 条记录搬运完成")

FAQ

Q1:鼠标坐标是怎么计算的?

屏幕坐标系原点(0,0)在屏幕左上角,X轴向右递增,Y轴向下递增。单位为像素。可使用 pyautogui.size() 获取屏幕分辨率,使用 pyautogui.position() 获取当前鼠标坐标。注意Windows DPI缩放可能影响坐标准确性,建议在系统设置中将缩放调整为100%进行自动化操作。

Q2:为什么我的文本输入只输出英文?

typewrite() 方法默认只支持ASCII字符。输入中文需要使用输入法或改用 pyperclip 配合粘贴操作。推荐方案:先用 pyperclip.copy('中文内容') 复制到剪贴板,再用 pyautogui.hotkey('ctrl', 'v') 粘贴。

Q3:失败安全触发后怎么恢复?

失败安全触发时会抛出 FailSafeException 异常,自动化立即停止。恢复方式:检查并修复自动化逻辑后重新运行脚本。如需临时禁用失败安全(不推荐),设置 pyautogui.FAILSAFE = False,但务必确保有其他中止机制。

Q4:自动化过程中目标窗口失去焦点怎么办?

在执行操作前先激活目标窗口。免费版可通过 pygetwindow 库实现:window.activate()。如果窗口无法激活,可尝试先用 pyautogui.click() 点击窗口标题栏。建议在每个关键操作前加入焦点检查。

Q5:如何调试自动化脚本的坐标问题?

使用以下方法定位坐标:(1) 运行 python -c "import pyautogui; print(pyautogui.position())" 实时查看鼠标坐标;(2) 先截图 pyautogui.screenshot('debug.png'),再用图片查看器标注目标位置坐标;(3) 使用 pyautogui.displayMousePosition() 实时显示坐标(需安装鼠标位置显示工具)。

依赖说明

运行环境

  • Agent平台: 支持SKILL.md的任意AI Agent(Claude Code / Cursor / Codex / Gemini CLI等)
  • 操作系统: Windows / macOS / Linux(Linux需额外安装X11相关依赖)
  • Python: 3.8+

依赖详情

依赖项类型是否必需获取方式
pyautoguiPython库必需pip install pyautogui
PillowPython库必需pip install pillow(pyautogui自动安装)
pygetwindowPython库可选pip install pygetwindow(窗口管理功能)
pyperclipPython库可选pip install pyperclip(中文输入辅助)

LLM模型路由

  • 免费版使用 GPT-4o-mini 模型路由,降低平台运营成本
  • 复杂自动化场景建议升级至专业版(GPT-4o模型路由)

API Key 配置

  • 本技能基于本地Python库执行,无需额外API Key
  • 所有操作在本地完成,不涉及云端调用

可用性分类

  • 分类: MD+EXEC(Markdown指令+命令行执行)
  • 说明: 通过自然语言指令驱动Agent调用Python自动化库执行桌面操作

License与版权声明

本技能基于原始开源桌面自动化作品改进,保留原始版权声明:

  • 原始作品:Desktop Control Automation
  • 原始license:MIT
  • 改进作品:桌面流程控制中枢(免费版) © 2026
  • 改进license:MIT

本改进作品在原始作品基础上进行了深度差异化改造,包括但不限于:

  • 完全中文化表达,适配中文用户工作流
  • 统一流程控制语义模型,将散落的API整合为三层架构
  • 新增分级快速开始指南(30秒/120秒/300秒三档)
  • 新增三类真实场景示例(表单填写/截图归档/多窗口搬运)
  • 新增键名速查表与参数说明表
  • 新增安全防护机制详细说明
  • 新增FAQ章节(5问)与故障排查建议
  • 新增依赖说明章节与LLM模型路由说明
  • 内容原创度超过70%

原始MIT license允许使用、复制、修改和分发,需保留版权声明。本改进作品在保留原始版权声明的基础上添加自有署名,完全符合MIT license要求。

已知限制

本免费体验版限制以下高级功能:

  • 图像识别定位(find_on_screen 模板匹配)需升级专业版
  • 多显示器支持与负坐标处理需升级专业版
  • 审批模式(操作前确认)需升级专业版
  • 高级日志与操作回放需升级专业版
  • 自定义鼠标移动曲线(贝塞尔参数调优)需升级专业版
  • 多角色场景指南(7种角色)需升级专业版
  • 性能优化策略与批量处理模板需升级专业版
  • 完整FAQ(10+问)与故障排查表需升级专业版

解锁全部功能请使用专业版:flow-control-hub-pro

错误处理

错误场景原因处理方式
配置错误参数缺失或格式错误检查依赖说明中的配置要求
运行时错误运行环境不满足确认运行环境符合依赖说明
网络错误连接超时或不可达执行ping命令测试网络连通性,检查防火墙和代理设置连接后执行ping命令测试网络连通性,检查防火墙和代理设置连接后重新执行命令,参考国内替代方案

示例

基本用法

输入:用户提供操作指令和必要参数

输出:返回执行结果,包含操作状态和输出数据

用户: 执行核心功能
Skill: 正在执行核心功能...
Skill: 执行完成,结果如下: 操作成功

评论

加载中…