pywinassistant

GitHub
1.3k 189 简单 1 次阅读 4天前MITAgent图像
AI 解读 由 AI 自动生成,仅供参考

pywinassistant 是一款专为 Windows 10/11 设计的开源人工智能助手,能够仅通过自然语言指令全自动操作图形用户界面(GUI)。它主要解决了传统自动化工具依赖图像识别、OCR 或像素匹配导致的效率低、维护难及适应性差等问题。

与传统方案不同,pywinassistant 不依赖视觉成像管道,而是直接调用 Windows 原生辅助功能 API,通过提取控件元数据(如类型、状态、坐标)来理解界面。这种“非视觉感知”结合“符号空间映射”技术,使其能像人类一样理解界面的层级与几何关系。即便界面元素 ID 发生变化,其自带的自愈工作流也能自动调整,大幅降低了脚本维护成本。此外,它利用思维链(CoT)和思维可视化(VoT)推理机制,能将自然语言转化为代码或执行步骤,统一了 GUI、Web 及 API 的自动化流程。

这款工具非常适合开发者构建复杂自动化脚本、研究人员探索符号推理与通用人工智能(AGI)路径,以及需要无障碍辅助功能的普通用户。无论是希望用语音控制电脑操作,还是寻求一种更稳定、面向未来的自动化框架,pywinassistant 都提供了一个轻量且强大的解决方案。

使用场景

财务分析师小李需要每天从多个独立的桌面软件(如 ERP 系统、Excel 和本地税务工具)中抓取数据并汇总成报表,这些软件界面复杂且缺乏 API 接口。

没有 pywinassistant 时

  • 工具割裂严重:必须分别编写 Selenium 处理网页、PyAutoGUI 模拟鼠标点击、以及专用脚本解析 Excel,频繁在不同技术栈间切换导致开发效率极低。
  • 维护成本高昂:一旦软件界面更新导致按钮位置或 ID 变化,基于固定坐标或图像匹配的脚本就会立即失效,需要人工逐行修复代码。
  • 无法理解语义:传统自动化只能机械执行“点击坐标 (x,y)",无法识别“提交按钮”或“错误弹窗”的实际含义,遇到异常流程只能盲目报错。
  • 依赖视觉不稳定:基于 OCR 或截图的方案受屏幕分辨率、主题颜色变化影响大,环境稍有变动就无法准确提取数据。

使用 pywinassistant 后

  • 统一自动化框架:pywinassistant 通过 Windows 原生辅助功能 API,用一套 Python 代码即可无缝串联 GUI 操作、网页交互和系统命令,消除上下文切换。
  • 具备自愈能力:利用符号空间映射和层级关系追踪,即使界面元素 ID 变更或布局微调,pywinassistant 也能自动重新定位目标,大幅降低维护工作量。
  • 深度语义理解:借助思维链(CoT)推理,它能像人一样理解“如果弹出错误则关闭”的逻辑,直接操作控件元数据而非像素,实现真正的智能决策。
  • 非视觉稳定运行:不依赖截图或 OCR,直接提取控件的状态、类型和位置信息,确保在任何分辨率或主题下都能精准、高速地执行任务。

pywinassistant 通过将自然语言指令转化为对操作系统深层语义的理解,让复杂的跨软件桌面工作流实现了真正的“自动驾驶”。

运行环境要求

操作系统
  • Windows 10
  • Windows 11
GPU

未说明(工具主要依赖 Windows 原生 API 和 LLM API,不强制要求本地 GPU)

内存

未说明

依赖
notes该工具专为 Windows 设计,通过原生 Windows 无障碍 API (UIA) 进行交互,不依赖计算机视觉、OCR 或像素级图像处理。核心功能需要调用外部大语言模型(如 GPT-4)API 来进行意图解析和坐标预测。代码示例中提及部分功能(如记忆内容检索)为了符合伦理标准已被禁用。
python未说明
Windows UI Automation (UIA)
LLM API (如 gpt-4-1106-preview)
pywinassistant hero image

快速开始

PyWinAssistant:人工智能助手——MIT 许可 | 公开发布:2023年12月31日 | 符合联邦协调的复杂适应系统人工智能标准、阿西洛马人工智能原则以及 IEEE 自主与智能系统伦理全球倡议。


PyWinAssistant 是首个开源的人工窄智能体,能够通过通用的代理框架实现空间推理与感知,作为一款完全基于图形用户界面(GUI)操作 Windows 10/11 的计算机使用型智能体,其核心机制是直接利用操作系统原生语义交互。它以计算机使用型智能体/大型动作模型的身份运行,为纯粹的符号化空间认知框架奠定了基础,从而仅依靠自然语言即可实现对计算机的人工操作,无需依赖计算机视觉、光学字符识别或像素级图像处理。PyWinAssistant 通过Windows 原生辅助功能 API模拟、规划并仿真合成的人机接口设备(HID)交互,在操作系统层面实现了跨越几何、层次和时间维度的人类式抽象。这种集成于操作系统的空间化计算机使用方式,提供了一个面向未来的、通用的、模块化的动态 ANI 协调框架,适用于多智能体驱动的自动化场景,标志着在迈向 AGI 的道路上,符号推理迈出了重要一步。

核心特性:

  • 不依赖图像处理管道:完全通过 Windows UI 自动化(UIA)及程序化的 GUI 语义进行操作,支持通用的工作流编排。
  • 符号化空间映射:借助操作系统原生的父子关系与坐标系,实现层次化的元素追踪。
  • 非视觉感知:通过直接提取元数据(控件类型、状态、位置),实时理解界面内容。
  • 视觉感知:仅需一张屏幕截图,便可通过可视化目标意图及环境随时间的变化,在空间范围内激发细致入微的理解与感知;还可进一步优化,用于查找视觉线索、潜在缺陷、因果推理中的错误、静态问题、语义锚定问题等。
  • 统一自动化:自动检测界面元素,将 GUI、系统及网页自动化整合于单一 Python API 下,避免工具间频繁切换上下文。
  • AI 驱动的脚本生成:将自然语言或演示操作转化为任意 IDE 或文本编辑区域中的代码。
  • 自愈性工作流:能够自动适应 UI 变化(如元素 ID 的变动),降低维护开销,使 PyWinAssistant 的算法更具未来适应性。
  • AI/ML 集成:利用 NLP 生成脚本(例如,“自动化应用程序”→以 JSON 格式规划测试执行步骤),并配备具备自我修正能力的选择器。
  • 跨情境自动化:以 Python 式的方式无缝衔接 GUI、网页与 API 工作流,将分散的自动化方法(GUI、API、网页)统一到一个框架中。
  • 无障碍访问:提升各类用户群体的可访问性,允许通过语音或简单文本命令控制复杂的操作。
  • 泛化能力:激发空间认知能力,以自然、直观的方式理解和执行多种指令。
  • 轻量紧凑:PyWinAssistant 作为一个模块化、通用的计算机助手框架示例算法,能够有效激发空间认知能力。

PyWinAssistant 拥有一套独立的推理智能体,采用思维可视化(VoT)与思维链(CoT)技术来增强泛化能力,通过抽象的 GUI 语义维度而非视觉处理来动态模拟动作,因此对于下一代LLM 模型而言具有未来适应性。通过可视化界面内容,在抽象的 GUI 语义维度、概念及微分上动态模拟并规划行动,PyWinAssistant重新定义了计算机视觉自动化,能够在远低于传统计算成本的情况下实现高效率的视觉处理。PyWinAssistant 已经在操作系统层面实现了实时的空间感知能力,能够记忆视觉线索,并随时间追踪屏幕上的变化


在空间推理领域取得关键突破之前,PyWinAssistant 就已问世,早于以下成果:

PyWinAssistant 通过以下突破性进展,引领了人工智能与自动化领域的重大范式转变,实现了纯符号化的计算机交互,将人类意图与操作系统级别的 GUI 自动化无缝衔接:

  • 首个绕过 OCR/图像处理的计算机使用型 GUI 自动化智能体。
  • 首个以 Windows UIA 为主要空间感知通道的框架。
  • 首个展示操作系统原生层次—时间推理能力的系统。

1. 统一的自然语言 → GUI 自动化

传统方法
自动化工具通常需要编写脚本(如 AutoHotkey)或集成 API(如 Selenium)。

PyWinAssistant 的突破

# 真正实现自然语言直接驱动 UI 操作的泛化能力
assistant("在 Spotify 上播放 Daft Punk,并把歌词发给我的朋友")
# 智能体会根据相关上下文选择合适的项目,以符合用户的意图。

工作机制:将 UI 自动化技术的 GUI 控件检测与 LLM 结合,完成以下任务:

  • 解析用户意图(“播放”、“发送歌词”)
  • 将意图映射至具体 UI 元素(Spotify 播放按钮、Outlook 写信窗口)
  • 自动生成适应性强的工作流

PyWinAssistant 的创新之处:不再需要:

  • 预先定义的 API 集成
  • XPath/CSS 选择器知识
  • 手动处理错误逻辑

2. 跨应用状态感知

传统局限性
现有工具往往局限于单个应用内部运行(如 Power Automate 的连接器)。

PyWinAssistant 的创新

# 注释:
# 助手生成完整步骤的过程运行得非常流畅,但为了遵守联邦协调的复杂适应系统人工智能标准、阿西洛马人工智能原则以及 IEEE 自主与智能系统伦理全球倡议,代码中特意禁用了步进修改器和内存内容检索功能——参见 [def act()](https://github.com/a-real-ai/pywinassistant/blob/6aae4e514a0dc661f7ed640181663f483972bc1e/core/driver.py#L648C1-L648C8)。

# 准确地利用 UIA 树和空间记忆在不同应用间保持上下文与意图:(用于进一步开发的示例)
助手("帮我查找飞往墨西哥的最佳且最便宜的航班,同时搜索当地酒店,并在新标签页中向我推荐最佳的文化活动选项")
助手("寻找各种不含菠萝的披萨优惠券,填写订单详情并展示结果")

# PyWinAssistant 具有高度模块化(示例):
def workflow():
    song = assistant(goal="获取当前播放的歌曲")  # UIA
    write_action(f"评论‘{song}’:很棒的贝斯线!", app="记事本")  # Win32
    assistant(goal="将记事本中的内容发布到推特上")  # Web

# 上述一系列操作也可以仅通过自然语言来执行:
助手(f"获取当前正在播放的歌曲,在记事本中以‘评论歌曲名称:很棒的贝斯线’为标题,写下它为何是一段出色的贝斯线,然后将其发布到推特上", assistant_identity="你是一位资深音乐评论家")

关键进展

  1. 统一控制图:将所有应用程序视为单个可通过 UIA 访问的图中的节点
  2. 状态传递:通过剪贴板/UIA 属性在应用程序之间传递数据
  3. 语义传递:在整个流程中传递目标意图的语义
  4. 错误恢复:利用代理式推理系统避免操作失败

影响:实现了以往需要自定义中间件才能完成的工作流。

3. 概率型自动化引擎

传统模式
确定性脚本会在界面变化时失效。

PyWinAssistant 的解决方案

# 自适应元素发现
def fast_action(goal):
    speaker(f"直接点击元素,无需视觉上下文。不需要图像处理。")
    analyzed_ui = analyze_app(application=ai_choosen_app, additional_search_options=generated_keywords)
    
    gen_coordinates = [{"role": "assistant",
        f"content": f"你是一个能够操控鼠标的 Windows AI 鼠标代理。请仅回复鼠标点击位置的预测坐标,即元素对象中心的 'x=, y=',以实现该目标。"},
        {"role": "system", "content": f"目标: {single_step}\n\n上下文: {original_goal}\n{analyzed_ui}"}]
    coordinates = api_call(gen_coordinates, model_name="gpt-4-1106-preview", max_tokens=100, temperature=0.0)
    print(f"AI 决策坐标: '{coordinates}'")

革命性特性

  • 基于思维的语义搜索:例如 synonyms("下载") → ["保存", "导出", "↓ 图标"]
  • 空间概率:利用一组自我推理代理对元素进行优先级排序,从而实现合成操作
  • 空间预防机制:借助自我推理代理组感知并防止潜在的错误操作或步骤执行偏差
  • 自我修复能力:通过使用自我推理代理组,自动选择完美的执行方案,确保步骤推理不会失败

4. 普及化的辅助功能

任务:自动化操作以在 Spotify GUI 中收藏一首歌曲。 之前
自动化需要:

WinWait, Spotify
ControlClick, x=152 y=311  # 极易失效的固定坐标

现在:只需一条自然语言指令。

assistant("点赞这首歌")  # 以语言优先
转变指标 传统工具 PyWinAssistant
学习曲线 几天甚至几个月 几分钟
跨应用工作流 手动集成 自动化
维护开销 LLM 自动补丁

为何具有变革意义

  1. 从脚本到意图
    用类人“理解→行动”的循环取代脆弱的 click(x,y)

  2. 从孤岛到将操作系统作为 API
    将整个 Windows 环境视为可编程接口。

  3. 从固定到适应
    利用大语言模型应对界面变化(如 Spotify 2023 年的界面改版)。

  4. 从开发者到所有人
    通过自然语言使高级自动化触手可及,提升通用性并最大限度地减少 LLM 和视觉模型的整体数据消耗。内置辅助功能,旨在通过空间思维可视化的新技术方法改善人类对计算机的使用体验,并在保障安全的前提下,正确解析任何自然语言指令,规划并在操作系统中执行相应操作。

通过直接对接 Windows 底层 UI 层次结构,它能够在操作系统级别实现实时的空间感知,同时摒弃传统的计算机视觉流水线,从而实现:

  • 效率提升 100 倍:原生 API 访问。
  • 无头运行:可在无显示器系统、虚拟机或最小化窗口中正常工作。
  • 精确抽象:采用数学建模而非视觉模式匹配来描述 GUI 之间的关系。

设计之初即不依赖图像(核心架构)
尽管某些项目在基础运行层面需要视觉处理,但 PyWinAssistant 却通过以下方式实现了完全无需图像处理即可进行 GUI 交互的能力

  1. 原生操作系统语义访问
    直接集成 Windows UIA API,提供完整的控制元数据:

    # 通过 UIA 查找元素属性——无需截图
    button = uia.Element.find(Name="提交", ControlType="按钮")
    print(button.BoundingRectangle)  # {x: 120, y: 240, 宽度: 80, 高度: 30}
    
  2. 成像模块

    # PyWinAssistant 的成像功能,如像素级可视化,可以在实时空间感知的基础上启用,同时具备记忆视觉线索和追踪屏幕变化的能力。
    + 能够仅凭一张截图,就规划出一套高难度的技术性操作步骤,在操作系统层面完成复杂任务。
    + 支持像素级可视化。
    + 可为动态元素启用视觉哈希匹配。
    - 提供 OCR 回退或针对非 UIA 旧版应用的对象检测功能。
    # OCR 的实验性功能已被加入,但并未完全开发,因为在当前实现中,助手的表现已经非常出色,因此并不需要这一功能。
    
关键区别 PyWinAssistant 传统自动化
主要感知方式 UIA 元数据 截图/OCR
对视觉的依赖 可选附加 核心必需
无头环境支持 ✅ 原生支持 ❌ 需要虚拟显示器

开发说明:

PyWinAssistant 的功能受限于模型的智能水平和推理时间。要实现一个由人工智能窄领域系统协同管理的完整通用人工智能系统,还需要大语言模型领域的进一步突破。 该系统的自主任务分解机制利用原生语义差异,而非视觉变化;当然,也可以选择启用视觉变化功能,以便在 GUI/屏幕界面上进行实时图像损坏分析。 长期记忆和自我学习机制旨在演化出符号化的状态表示,这些表示同样可以转化为视觉模式,从而与 AGI 的发展保持一致。

相关论文:《思维可视化激发大型语言模型的空间推理能力》(2024年4月4日): image https://arxiv.org/abs/2404.03622

概述

PyWinAssistant 内置了多种助理功能,旨在提升所有用户的⼈机交互体验。它集成了实时语音识别、可定制的助理人格、字幕显示以及聊天功能。 您可以以友好自然的方式与计算机对话,完成任何用户界面操作。 通过自然语言,您可以自由操控 Windows 操作系统。 只需使用自然语言,即可为任何支持 Win32 API 的应用程序生成并规划测试用例,实现持续测试。 这是一款开放且安全的个人助理,能够按照您的需求作出响应,并让您以期望的方式掌控计算机的协助方式。 其模块化设计使其能够理解并执行广泛的任务,从而自动化与各类桌面应用程序的交互。

演示(以下视频)

image

image

Screenshot 2023-12-18 043612

Screenshot 2023-12-18 040443

Screenshot 2023-12-01 143812

Screenshot 2023-12-01 150047

Screenshot 2023-11-13 161219


请打开音频观看演示视频。

语音 1 — 用户输入(英语女性,澳大利亚 TTS)

语音 2 — 助理输出(英语女性,美国 Google TTS)


用自然语言操控电脑——实时使用 VoT,作为计算机使用代理的一个例子;单动作模型。

不使用任何视觉信息,仅通过 API 调用大语言模型。演示多步指令的完美执行。

https://github.com/a-real-ai/pywinassistant/assets/18397328/25b39d8c-62d6-442e-9d5e-bc8a35aa971a


把电脑当作助手来使用——实时使用规划型 VoT,作为计算机使用代理的一个例子;大型动作模型。

仅需一张截图:助理会了解用户当前的操作及目标,然后制定计划来完成任务。

语音识别到的指令:在 Twitter 上发布一条新帖子,内容为“Hello World”以及一段简短的问候,说明你是一个人工智能。

https://github.com/a-real-ai/pywinassistant/assets/18397328/d04f0609-68fb-4fb4-9ac3-279047c7a4f7


助理可以为您完成任何事情——实时使用规划型 VoT,作为计算机使用代理的一个例子;大型动作模型。

速度的唯一限制就是推理时间。

语音识别到的指令:创建一条新的评论,解释为什么这件事如此重要。

https://github.com/a-real-ai/pywinassistant/assets/18397328/6d3bb6e6-ccf8-4380-bc89-df512ae207f2


其他实时使用规划型 VoT 的演示。

2023年11月16日现场演示:(Firefox、Spotify、记事本、计算器、邮件)

assistant(goal=f"从谷歌搜索结果中筛选视频,打开包含歌曲‘Wall Of Eyes - The Smile’的新标签页,并在 Firefox 中播放")  # 完美运行
assistant(goal=f"暂停 Spotify 中的音乐")  # 完美运行
assistant(goal=f"使用 AI 自动化窗口,在 notepad.exe 中为用户创建一段简短的问候文字")  # 完美运行
assistant(goal=f"打开 calc.exe 并计算 4 x 4 =")  # 完美运行

https://github.com/a-real-ai/pywinassistant/assets/18397328/ce574640-5f20-4b8e-84f9-341fa102c0e6


2023年12月1日现场演示:(Chrome、Spotify、Firefox)可编程方法示例。

assistant(goal=f"在 Spotify 上播放歌曲‘Robot Rock - Daft Punk’", keep_in_mind=f"双击歌曲即可开始播放")  # 完美运行
assistant(goal=f"在 Google Chrome 中打开 3 个新标签页,分别搜索 3 种不同类型的搞笑 AI 表情包", keep_in_mind="将搜索结果过滤为图片")  # 完美运行
assistant(goal=f"从谷歌搜索结果中筛选视频,打开包含歌曲‘Windows 95 but it's a PHAT hip hop beat’的新标签页,然后在 Firefox 上点击文本进行播放")  # 完美运行

https://github.com/a-real-ai/pywinassistant/assets/18397328/7e0583d1-1c19-40fa-a750-a77fff98a6da

目前支持所有基于 Win32 API 的通用应用程序,包括: Chrome、Firefox、OperaGX、Discord、Telegram、Spotify……


核心功能

  • 动态用例生成器:assistant() 函数接受一个目标参数,即自然语言指令,并将其智能映射为一系列可执行的操作。这使得用户意图能够无缝转换为计算机上的有效操作。
  1. 单步动作执行: act() 函数是一种简化的动作执行方法,提升了工具的效率和响应速度。
  2. 高级上下文处理:该框架通过分析屏幕和应用程序来理解上下文,确保在执行操作时考虑到必要的前提条件或步骤。
  3. 语义路由地图:框架内置了一个语义路由地图数据库,用于成功执行生成的测试用例。这些语义地图可以由其他 AI 创建。
  4. 广泛的应用范围:从多媒体控制(如在 Spotify 和 YouTube 上播放或暂停音乐)到复杂操作(如生成 AI 文本、发送电子邮件,或管理 Telegram、Firefox 等应用程序),该框架覆盖了广泛的任务类型。
  5. 可定制的 AI 身份:write_action() 函数允许自定义助手身份,从而实现个性化的交互和响应,以符合用户的偏好或任务性质。
  6. 强大的错误处理与反馈机制:框架设计用于优雅地处理意外情况,提供清晰的反馈并确保可靠性。(见概述)
  7. 情绪与性格驱动的项目:根据您的情绪和性格,不时生成或建议实用场景。(见概述)

技术创新

  1. 自然语言处理 (NLP):采用先进的 NLP 技术,以自然、对话式的方式解析和理解用户命令。
  2. 任务自动化算法:利用复杂的算法将复杂任务分解为可执行的步骤。
  3. 上下文感知执行:集成上下文感知能力,实现更精细且高效的任务执行。
  4. 跨应用功能:能够无缝对接各类应用程序和网络服务,展现出广泛的兼容性和集成能力。
  5. 使用场景。
  6. 自动化 Windows 环境中的重复性任务。
  7. 为专业人士和普通用户简化工作流程。
  8. 提升不同需求用户的可访问性,支持通过语音或简单文本命令控制复杂操作。
  9. 通过 AI 驱动的任务指导与执行,帮助学习和探索。

结论

这款人工辅助的用户界面测试框架是桌面自动化领域的一项开创性工具。它能够以自然、直观的方式理解和执行多种命令,对于希望提升生产力及与 Windows 环境交互体验的人来说,无疑是一项宝贵的资产。这不仅仅是一个工具,更是迈向未来的重要一步——让 AI 无缝融入我们的日常计算任务中,使技术更加易用、更加人性化。

安装

# 将您的 ChatGPT API 密钥添加到项目中:
在 /core/core_api.py 的第 3 行添加您的 API 密钥:client = OpenAI(api_key='insert_your_api_key_here')
在 /core/core_imaging.py 的第 12 行添加您的 API 密钥:api_key = 'insert_your_api_key_here'

# 安装依赖项:
cd pywinassistant
pip install -r .\requirements.txt

# 执行助手程序:
cd .\core
python ./assistant.py

使用方法

运行 Assistant.py,说出“Ok computer”即可通过语音命令启用助手;您也可以点击助手图标或打开聊天窗口来快速执行操作。右键单击助手界面,即可查看可用选项。

若需进入调试模式,请运行 Driver.py。在该文件中,您可以使用示例轻松调试并尝试与助手协同工作的 actfast_actassistant 等函数。要运行 JSON 测试用例,只需修改 assistant 函数中的 JSON 文件路径即可。

有效案例(在 cases.py 中)

assistant(goal=f"在 Spotify 上播放歌曲 'One More Time - Daft Punk'")  # 100% 有效
assistant(goal=f"从 Google 搜索结果中筛选视频,打开包含歌曲 'Wall Of Eyes - The Smile' 的新标签页,并在 Firefox 浏览器中播放")  # 100% 有效
assistant(goal=f"从 Google 搜索结果中筛选视频,找到歌曲 'Windows XP Error beat',然后在 Firefox 浏览器中点击文本以播放")  # 100% 有效
fast_act(goal=f"点击‘喜欢’按钮") # 100% 有效
assistant(goal=f"暂停 Spotify 上的音乐")  # 100% 有效
write_action(goal="评论当前正在播放的歌曲为何很棒", assistant_identity="你是一位专注于音乐的高级音乐 AI 代理") # 100% 有效
assistant(f"创作一篇关于 AI 开始通过记事本控制 Windows 计算机的长篇 AI 文章")  # 100% 有效
fast_act(goal="点击 HueSync 应用程序底部的按钮")  # 100% 有效
write_action(goal="Weird Fishes - Radiohead")  # 100% 有效
assistant(f"打开计算器并计算 4 x 4 - 4 * 4 + 1 =")  # 100% 有效
assistant(goal=f"在 Google Chrome 中打开 3 个新标签页,在每个标签页中搜索 3 种不同类型的搞笑狗狗图片")  # 100% 有效
assistant(goal=f"停止 Firefox 应用程序中的播放")  # 100% 有效
assistant(f"将一则关于工程师的笑话步骤清单以文章形式发送给我的朋友 Diana,使用 Telegram")  # 100% 有效
assistant(f"将制作巧克力蛋糕的步骤清单发送到我在 Telegram 中的收藏消息")  # 100% 有效
assistant(f"在 Firefox 浏览器中创建三个新标签页,分别搜索三种不同类型的搞笑 YouTube 劣质教程视频,并生成相应的搜索标题")  # 100% 有效
assistant(f"写一篇关于一个人创建的 AI 如何像你一样自由操控计算机的文章,使用 notepad.exe 编写") # 100% 有效
assistant(f"向我的朋友 Diana 在 Discord 上发送一则由 AI 生成的笑话,并说明这是 AI 创作的")  # 100% 有效
assistant(goal=f"使用 AI 自动化 Windows 系统,在 notepad.exe 中为用户创建一段简短的问候语") # 100% 有效
assistant(goal=f"打开 calc.exe 并计算 4 x 4 =")  # 100% 有效
assistant(goal=f"向 'testmail@gmail.com' 发送一封主题为 'Hello' 的邮件,并在邮件应用程序中生成一条关于 AI 如何帮助所有用户的留言",
          keep_in_mind="按三次 Tab 键导航到主题输入框。不要合并操作步骤。")  # 需要更新应用程序的语义地图才能实现 100% 有效。
assistant(goal=f"在 Spotify 上播放歌曲 'The Smile - Wall Of Eyes'")  # 100% 有效
assistant(goal=f"在 Spotify 上播放歌曲 'Panda Bear - Tropic of cancer'")  # 100% 有效
assistant(goal="暂停 Spotify 应用程序中的音乐")  # 100% 有效
assistant(goal=f"在 Firefox 浏览器中打开 3 个新标签页,每个标签页播放不同的 Daft Punk 歌曲")  # 100% 有效
fast_act("打开 Spotify 并搜索专辑 'Grimes - Visions'")  # 100% 有效
write_action("打开 Spotify 并搜索专辑 'Grimes - Visions'")  # 100% 有效
fast_act("点击 Spotify 中的第一个搜索结果")  # 100% 有效
fast_act("在 Spotify 上跳过当前歌曲,播放下一首")  # 100% 有效
fast_act("将该专辑添加到资料库")  # 100% 有效
fast_act("返回 Spotify 主页")  # 100% 有效
fast_act("将当前歌曲保存到我的 Spotify 资料库")  # 100% 有效

当前 UI 测试方法

GUI 测试主要有三种方法,分别是:

  1. 手动测试:

在手动测试中,测试人员会执行一系列操作,以检查应用程序是否正常运行,以及图形界面元素是否符合文档要求。然而,这种方法存在明显的缺点:耗时较长,测试覆盖率极低。此外,测试质量很大程度上取决于测试团队的知识和能力。

  1. 录制与回放测试:

也称为记录与重放测试,它借助自动化工具来完成。自动化 UI 测试工具会记录用户对应用程序的所有操作、动作和交互过程,随后再重复这些步骤并将其与预期行为进行对比。为了进一步验证,可以使用不同的数据集多次重复回放过程。

  1. 基于模型的测试:

在这种测试方法中,我们专注于构建描述系统行为的图形化模型。这有助于更深入地理解系统,从而生成高效的测试用例。在模型中,我们会明确系统的输入和输出,进而用于执行测试。基于模型的测试流程如下:

创建系统模型
确定系统输入
验证预期输出
执行测试
比较并验证系统实际输出与预期输出

基于模型的方法具有显著优势,因为它能够实现更高程度的自动化,同时覆盖更多的系统状态,从而提高测试覆盖率。

基于人工智能的新型UI测试方法

  1. 人工智能辅助用户界面测试:

人工智能辅助用户界面测试利用人工智能的强大功能,彻底革新了图形用户界面的测试流程。与传统方法不同,该方法集成了机器学习算法和智能决策机制,能够自主识别、分析并操作UI元素。这一方法从多个方面显著提升了测试的深度和广度:

与UI元素的动态交互:基于AI的测试可以适应UI的变化,例如按钮位置的调整或元素属性的改变。这种灵活性得益于训练有素的AI模型,这些模型能够识别并操作各种UI组件,而无需关注表面变化。
学习与模式识别:通过机器学习技术,人工智能辅助UI测试系统可以从以往的交互、测试运行以及用户反馈中不断学习。这使得AI能够识别模式并预测潜在问题,从而在每次迭代中不断提升测试效果,实现更全面的测试覆盖。
自动化测试用例生成:AI可以根据对应用程序功能和用户行为模式的理解,自动生成测试用例。这不仅节省了时间,还能确保覆盖更广泛的场景,包括手动测试中可能被忽略的边界情况。
自然语言处理(NLP):AI测试工具通常会集成NLP技术,以解析并执行用自然语言编写的测试脚本。这一特性使非技术人员也能更轻松地参与测试过程,并促进团队内部的沟通协作。
实时反馈与数据分析:AI系统能够提供测试过程中的实时洞察,及时发现缺陷、性能问题和可用性问题。这种即时反馈机制有助于快速修复问题,从而提升产品的整体质量。
预测分析与风险评估:通过分析历史数据,人工智能辅助UI测试工具可以预测潜在的问题区域,并更高效地分配测试资源。这种主动的风险管理方式确保在开发周期的早期就能识别并解决关键问题。

综上所述,人工智能辅助用户界面测试标志着软件质量保证领域的一次重大飞跃。通过自动化和优化测试流程,基于AI的工具能够提供更高的准确性、更快的速度和更全面的覆盖,为开发更加可靠、更易用的应用程序铺平了道路。

备注:

该项目自2024年初开始持续更新中。需求列表也在不断更新。

版本历史

Pre-Database2024/01/03

常见问题

相似工具推荐

stable-diffusion-webui

stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。

162.1k|★★★☆☆|今天
开发框架图像Agent

everything-claude-code

everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上

139k|★★☆☆☆|今天
开发框架Agent语言模型

ComfyUI

ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。

107.7k|★★☆☆☆|2天前
开发框架图像Agent

ML-For-Beginners

ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程,旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周,包含 26 节精炼课程和 52 道配套测验,内容涵盖从基础概念到实际应用的完整流程,有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。 无论是希望转型的开发者、需要补充算法背景的研究人员,还是对人工智能充满好奇的普通爱好者,都能从中受益。课程不仅提供了清晰的理论讲解,还强调动手实践,让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持,通过自动化机制提供了包括简体中文在内的 50 多种语言版本,极大地降低了全球不同背景用户的学习门槛。此外,项目采用开源协作模式,社区活跃且内容持续更新,确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路,ML-For-Beginners 将是理想的起点。

85k|★★☆☆☆|今天
图像数据工具视频

ragflow

RAGFlow 是一款领先的开源检索增强生成(RAG)引擎,旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体(Agent)能力相结合,不仅支持从各类文档中高效提取知识,还能让模型基于这些知识进行逻辑推理和任务执行。 在大模型应用中,幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构(如表格、图表及混合排版),显著提升了信息检索的准确度,从而有效减少模型“胡编乱造”的现象,确保回答既有据可依又具备时效性。其内置的智能体机制更进一步,使系统不仅能回答问题,还能自主规划步骤解决复杂问题。 这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统,还是致力于探索大模型在垂直领域落地的创新者,都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口,既降低了非算法背景用户的上手门槛,也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目,它正成为连接通用大模型与行业专有知识之间的重要桥梁。

77.1k|★★★☆☆|2天前
Agent图像开发框架

PaddleOCR

PaddleOCR 是一款基于百度飞桨框架开发的高性能开源光学字符识别工具包。它的核心能力是将图片、PDF 等文档中的文字提取出来,转换成计算机可读取的结构化数据,让机器真正“看懂”图文内容。 面对海量纸质或电子文档,PaddleOCR 解决了人工录入效率低、数字化成本高的问题。尤其在人工智能领域,它扮演着连接图像与大型语言模型(LLM)的桥梁角色,能将视觉信息直接转化为文本输入,助力智能问答、文档分析等应用场景落地。 PaddleOCR 适合开发者、算法研究人员以及有文档自动化需求的普通用户。其技术优势十分明显:不仅支持全球 100 多种语言的识别,还能在 Windows、Linux、macOS 等多个系统上运行,并灵活适配 CPU、GPU、NPU 等各类硬件。作为一个轻量级且社区活跃的开源项目,PaddleOCR 既能满足快速集成的需求,也能支撑前沿的视觉语言研究,是处理文字识别任务的理想选择。

74.9k|★★★☆☆|今天
语言模型图像开发框架