基本概念
本文介绍 Midscene 的视觉路线、使用方式和关键 API,帮助你理解并使用 GUI Agent。想先动手体验,可以直接阅读快速体验 GUI Agent。
基于视觉的自动化路线
Midscene 根据截图理解界面、定位目标并执行操作,再观察结果。UI 定位和操作不依赖 DOM、Selector 或额外标注,主要有四个优势:
- 契合 E2E 测试的初衷:像用户一样操作软件,从用户视角验证完整流程。根据屏幕上的文字、图标和布局操作,检查实际呈现的结果,包括选中状态、错误提示和元素遮挡。
- 与界面技术栈无关:HTML、Canvas、移动端和桌面应用都以截图呈现。平台提供截图和操作能力后,即可使用同一套 Agent API,减少对应用内部结构的依赖。
- 与主流模型路线一致:Gemini Computer Use 和 UI-TARS 都采用截图驱动 的交互方式。Midscene 通过模型适配,让用户在统一 API 下选择模型,并受益于模型能力的进步。
- 成本可承受:在 AppControlBench 评测中,豆包 Seed 2.1 Turbo 执行 60 项任务、通过 58 项,模型调用总费用约 $0.59。实际费用随模型、任务和缓存命中情况变化。
视觉路线需要模型具备 UI 定位能力,支持的模型见模型选择指南。数据提取和页面理解仍可按需附带 DOM 信息,详见 API 参考。
选择适合你的使用方式
Midscene 提供了一个跨平台 GUI Agent,支持 Web、移动端和桌面应用。它能根据自然语言指令操作界面、检查结果和提取数据,也可以集成到 Vitest、Playwright 等已有项目中,为测试工程增加视觉操作与断言能力。
Midscene 还提供了完整的 E2E 测试框架 Midscene Test。它在集成 GUI Agent 的基础上,提供测试用例组织与执行管理能力。你可以用 YAML 描述测试步骤和预期结果,用 TypeScript 扩展业务操作,并由框架统一管理数据准备、清理、重试和执行报告。
关键 API
规划并交互
aiAct
aiAct 接收用自然语言描述的目标。它会观察界面,规划操作步骤,定位目标元素并执行操作,直至完成目标。提示词也可以包含断言条件。Midscene 会在执行过程中验证这些条件,并在断言失败时及时抛出错误。
aiAct 灵活且自主,适合处理多步骤、包含条件分支或执行路径不确定的任务。执行期间,aiAct 会基于最新的界面状态持续进行 AI 规划,因此它通常比即时交互消耗更多时间和 token。
典型用法:
即时交互
即时交互类 API 每次只执行一个指定操作:先定位 UI 元素,再对该元素执行固定动作。
这类 API 不会规划多个步骤。对于“如果出现弹窗,先关闭弹窗,然后点击结账按钮”这类需求, 请使用 aiAct。即时交互 API 会将提示词视为目标元素的描述,而非工作流。
aiTap
aiTap 用于定位并点击元素。
典型用法:
aiInput
aiInput 用于定位输入框并输入指定内容。它默认使用 replace 模式:先清空输入框中的现有内容,再输入新内容。
典型用法:
其他输入模式包括 typeOnly 和 clear。typeOnly 会保留现有内容,clear 仅清空输入框。
即时交互 API 还包括 aiHover、aiClearInput、aiKeyboardPress、aiScroll、aiPinch、aiLongPress、aiDoubleClick 和 aiRightClick。各 API 支持的平台不同,详见 API 参考中的规划与交互。
界面理解(Insight)
界面理解类 API 只观察界面并返回分析结果,不会操作界面。它们默认使用当前截图。在 Web 页面中,如果任务需要读取截图中不可见的 DOM 信息,可以传入 domIncluded。
aiAssert
aiAssert 用于检查自然语言描述的条件。条件成立时,该方法正常结束;条件不成立时,该方法会抛出错误,并在错误信息中说明模型返回的原因。
典型用法:
aiQuery
aiQuery 用于从界面中提取结构化数据。请在提示词中描述所需数据,以及数据的预期类型或结构。
典型用法:
aiBoolean
aiBoolean 用于询问与界面有关的问题,并返回布尔值。
典型用法:
其他便捷方法包括:返回数字的 aiNumber,以及返回字符串的 aiString 和 aiAsk。
按需增强规划与定位
deepThink:增强规划。用于aiAct,更注重任务拆解,并将规划和元素定位拆成不同的模型调用,适合复杂的多步骤任务。详见deepThink规划模式。deepLocate:增强定位。用于aiAct、aiTap等需要定位元素的 API,通过额外一次模型调用提高定位准确性,适合较小或难以区分的目标。详见深度定位。
两者默认关闭,可以独立开启,也可以在 aiAct 中组合使用。它们会增加模型调用开销,建议先使用默认配置,遇到规划或定位问题时再按需开启。
下一步
- 模型选择指南:了解何时使用默认模型,以及何时组合多个模型。
- 快速体验 GUI Agent:在 Playground 中执行操作并验证结果。
- 创建和使用 Midscene Test 项目:编写和运行 YAML 测试。
- API 参考:查询完整参数和平台支持情况。

