与任意界面集成
你可以使用 Midscene 的 Agent 来控制任意界面,比如 IoT 设备、内部应用、车载显示器等,只需要实现一个符合 AbstractInterface 定义的 UI 操作类。
在实现了 UI 操作类之后,你可以获得 Midscene Agent 的全部特性:
- TypeScript 的 GUI 自动化 Agent SDK,支持与任意界面集成
- 用于调试的 Playground
- 通过 yaml 脚本控制界面
- 通过 CLI 命令接入 Skills
演示和社区项目
我们已经为你准备了一个演示项目,帮助你学习如何定义自己的界面类。强烈建议你查看一下。
-
演示项目 - 一个简单的演示项目,展示如何定义自己的界面类
-
Android (adb) Agent - 这是 Midscene Android (adb) Agent,同样依赖此特性实现
-
iOS (WebDriverAgent) Agent - 这是 Midscene iOS (WebDriverAgent) Agent,同样依赖此特性实现
还有一些使用此功能的社区项目:
- midscene-ios - 使用 Midscene 驱动 "iPhone 镜像" 应用的项目
配置 AI 模型服务
通过环境变量设置模型。选择模型时,请参考模型策略。
全部配置项请参考模型配置。
实现你自己的界面类
关键概念
AbstractInterface类:一个预定义的抽象类,可以连接到 Midscene 智能体- 动作空间:描述可以在界面上执行的动作集合。这将影响 AI 模型如何规划和执行动作
步骤 1. 从 demo 项目开始
我们提供了一个演示项目,运行了本文档中的所有功能。这是最快的启动方式。
步骤 2. 实现你的界面类
定义一个继承 AbstractInterface 类的类,并实现所需的方法。
你可以从 ./src/sample-device.ts 文件中获取示例实现。让我们快速浏览一下。
需要实现的关键方法有:
screenshotBase64()、size():帮助 AI 模型获取界面上下文actionSpace():一个由DeviceAction组成的数组,定义了在界面上可以执行的动作。AI 模型将使用这些动作来执行操作。Midscene 已为常见界面与设备提供了预定义动作空间,同时也支持定义任何自定义动作。
使用这些命令运行 Agent:
npm run build重新编译 Agent 代码npm run demo使用 JavaScript 运行智能体npm run demo:yaml使用 yaml 脚本运行智能体

