ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Midscene.js 3 条演进线:多模型、跨设备与可复用执行

Midscene.js 3 条演进线:多模型、跨设备与可复用执行 Midscene.js 3 条演进线多模型、跨设备与可复用执行【免费下载链接】midsceneGUI Agent for E2E Testing项目地址: https://gitcode.com/GitHub_Trending/mid/midsceneMidscene.js 最近一次结构重组把三件事同时推到了主干底层视觉模型可插拔、设备的画面与输入被统一抽象、重复执行开始靠缓存而不是每次都重新调模型。对写 GUI Agent 的开发者来说实际影响是三件事——同一份 Agent 代码可以在 Web、Android、iOS 上跑换模型不再要连提示词一起改而 CI 里重复跑的用例能明显省掉一部分模型调用。 从写脚本到管 Agent平台化的边界在哪过去用 Midscene 更像在写自动化脚本你描述要点哪个元素、做哪个动作它替你执行。现在项目把重心往平台层挪了。这个转变不是再堆几个 API而是把三类变化都收口成注册进来就能用的插件位——模型、设备、执行环境各自独立彼此之间靠一层抽象接口对话。模型侧packages/core/src/ai-model/models/registry.ts 里已经把 qwen、deepseek、gemini、ui-tars、glm、gpt、kimi 等一批模型家族注册成了统一的 ModelAdapter每个家族都实现同样的四块能力对话补全、元素定位、任务规划、只读洞察。设备侧则把这一帧画面从哪来抽象成了统一帧源接口Android 的 H.264 关键帧和 iOS/网页的 JPEG在到达 Agent 之前就被抹平成同一种上下文。执行环境侧CLI、浏览器 Playground、桌面 Studio 共享同一套 Agent 与报告逻辑。这套收口思路的直接效果是换模型、换设备、换跑在哪中间的业务脚本基本不用动。 单点能力把换模型降到改一个字段坦白说GUI Agent 里最容易反复折腾的就是模型绑定——某家的视觉模型定位准但贵另一家便宜但规划容易飘。以前想切换往往要把请求格式、提示词、坐标解析一起翻一遍。现在模型被拆成家族配置 统一适配器两层。registry.ts中的MODEL_ADAPTER_CONFIGS按家族给出各自的连接方式和能力声明外层只暴露一个modelFamily入口运行时再 resolve 成具体适配器。业务代码关心的变成这个模型能不能做我要的事而不是它内部怎么调接口。定位、规划、洞察都会自动跟着家族走。下面这段演示了只改配置字段就能切换模型家族、业务逻辑不动// 切换视觉模型只需改 modelFamily定位/规划/洞察自动切到该家族适配器 const agent new Agent(interfaceInstance, { modelFamily: qwen, // 换成 gemini 或 ui-tars 即可 }); 组合能力一套 Agent 横跨 Web 与移动端模型可插拔之后下一步是让同一套 Agent 逻辑不被设备绑死。这里有个细节值得注意不同平台取画面的方式差别很大Android 走 H.264 视频流iOS 和网页是 JPEG。如果上层 Agent 直接感知这些差异跨端脚本就根本写不动。项目在 packages/core/src/device/index.ts 里把画面来源抽象成了DeviceFrameSourcelatest()拿到的是近乎零成本的帧句柄真正昂贵的解码只在需要保留的那一帧做一次。上层 Agent 拿到的都是统一的 UI 上下文不知道底层是手机还是浏览器。配合 Playground 的多平台会话注册Web 与移动设备用同一套字段协议管理录制到的操作也能跨端回放。下面演示用统一入口拉起跨端会话、在浏览器里预览并操控移动设备// 统一入口启动跨平台 Playground浏览器内即可预览并操控移动设备 const session await prepareMultiPlatformPlayground({ title: 跨端会话, // 各平台 prepare 后统一暴露预览与输入能力 });♻️ 生态能力让重复执行开始省钱单点省在模型调用上组合省在设备适配上到生态层省的是每次都重跑的成本。跑一轮 E2E 不难难的是 CI 里每天重复跑同一批用例模型调用费和耗时都在往上涨。packages/core/src/agent/task-cache.ts里的TaskCache把两类结果落盘成.cache.yaml规划缓存PlanningCache记下这句自然语言当时被拆成了哪些步骤定位缓存LocateCache记下那个元素当时在什么位置。命中缓存就跳过对应模型调用未命中才回退到实时推理。验证环节则走独立的 Insight 通道支持对一份固定 UI 上下文做只读查询与断言不产生任何写操作很适合做回归校验。下面演示一次命中缓存优先、未命中回退实时推理的只读提取// aiQuery 对固定 UI 上下文做只读提取不触发设备动作 const title await agent.aiQuery(当前页面的主标题是什么); 实践上手现在就能做的最小路径接下来你可以按这几步先跑起来准备 Node 与 pnpm 环境git clone https://gitcode.com/GitHub_Trending/mid/midscene拉取仓库并安装工作区依赖。先在packages/core跑一遍现有单测确认本机能加载各模型适配器与设备抽象。用一个 Web 用例配好一个modelFamily验证元素定位与断言都能通过。把同一条用例指向 Android Playground确认跨端帧源和 UI 上下文一致。打开执行缓存重跑观察.cache.yaml是否生成、重复执行的模型调用是否减少。 演进节奏你会先感知到什么阶段你作为用户能感知到什么需要关注的前置条件当前多模型可切换、跨设备统一 Agent、执行缓存落盘选定一个视觉模型并配好接口近期更完整的跨端 Playground 会话与录制转脚本目标设备驱动adb/wda就绪后续报告诊断与可复用执行模板稳定的模型输出与缓存命中率收尾Midscene.js 正在从帮你操作界面的库长成一个管理 GUI Agent 全生命周期的平台。想先上手从文档里的模型选择与跨端 Playground 章节开始即可。以上基于当前主干代码整理具体接口与命名可能随版本演进调整。【免费下载链接】midsceneGUI Agent for E2E Testing项目地址: https://gitcode.com/GitHub_Trending/mid/midscene创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表