ATL(Agent Touch Layer)是 AI 智能体与 iOS 之间的自动化层,通过 HTTP 接口在 iOS 模拟器上自动化移动版 Safari 浏览器和原生 App,定位类似移动端的 Playwright。
用途与架构:ATL 分为两个独立服务。浏览器服务运行在 9222 端口,用于移动版 Safari/WebView 的网页自动化,提供 goto、markElements、clickMark、evaluate 等命令,支持 CSS 选择器与 DOM 求值。原生服务运行在 9223 端口,通过 XCTest 的 XCUIApplication/XCUIElement 自动化任意 iOS App,基于无障碍树而非 DOM,提供 openApp、snapshot、tapRef、find 等命令。原生服务需以 UI Test 方式启动。
主要能力:浏览器侧支持导航、前进后退、等待页面就绪、截图(返回 base64 PNG)、标记交互元素、按标记点击、按 CSS 选择器点击、输入文本、滚动等。原生侧支持按 bundleId 打开/关闭 App、查询 App 状态、获取无障碍树快照(可仅返回可点击元素、限制遍历深度)、按 ref 点击、按文本查找并执行 tap/fill/exists/get 操作。
无视觉工作流:ATL 强调不依赖视觉模型的空间理解。markElements 为每个交互元素编号并记录坐标,captureForVision 生成带文本层和元素坐标的 PDF,getMarkInfo 可查询指定标记的位置,再用 tap 在精确坐标点击。官方称此方式无需视觉 API 调用、更快且坐标确定。当自动化卡住时,可按坐标、视觉回退(截图分析状态)、JS 注入三级递进排查。
使用方式:先启动模拟器并构建安装 AtlBrowser,浏览器服务随 App 自动启动,可用 curl http://localhost:9222/ping 验证;原生服务通过 xcodebuild test 运行 NativeServer 后,用 curl http://localhost:9223/ping 验证。命令以 POST 到 /command 的 JSON 形式发送,也可 source 辅助脚本 atl-helper.sh 使用 atl_goto、atl_mark、atl_screenshot、atl_click 等函数。
适用场景:移动网页与原生 App 的自动化测试、流程操作与截图取证,尤其适合需要确定性坐标交互、避免视觉模型开销的智能体任务。
限制:仅支持 iOS 模拟器,需 macOS 与 Xcode 环境;原生自动化依赖 XCTest UI Test;标记坐标为页面相对而非视口相对,滚动后可能失效;弹窗或遮罩会改变界面状态,需截图确认。收费、价格与平台支持等更多信息暂未提供。