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: 执行完成,结果如下: 操作成功

评论

加载中…