Agent Device 设备验证 CLI
让编码代理在真实运行的应用中检查、操作并验证改动。
- Star 数
- ★ 5.3k
- 最近更新
- 今天
- License
- MIT
- 主语言
- TypeScript
- FA 评分
- 74/100 · 存在缺口
30 秒速览
- 运行形态
- 可在哪里用
- 通用 · 跨平台Codex · Claude Code
- 费用
- 免费,无需付费服务
- 上手难度
- 中 · 需要几步配置
- 开始前需要
- 典型场景
- React Native 或 Expo 开发者在 iOS Simulator 或 Android Emulator 上修改界面后,让编码代理通过 snapshot、press 和 fill 验证关键流程。
- 不适合
- 需要完全离线或无法安装 Node.js 22.12+ 的团队
- 只做 Web 自动化但停留在 Node.js 22 的项目
- 需要物理 Fire TV 或 Vega OS 完整截图与选择器支持的团队
- 源码审查
- 74/100 · 存在缺口
这个 Agent 能做什么,适合哪些场景?
agent-device 是面向编码代理和 QA 工具的命令行设备自动化工具,用于检查、操作和验证正在运行的应用。它支持 iOS、Android、tvOS、Android TV、Vega Virtual Device 上的 Amazon Vega OS TV、Web、macOS 和 Linux,但各目标可用的命令与证据类型不同。CLI 以会话保存设备状态,并通过 iOS/tvOS 的 XCTest、Android 的 ADB 与 snapshot helper、VVD 的 Vega CLI/VDA、macOS 本地 helper 及 Linux AT-SPI 执行操作。它可输出无障碍快照、截图、视频、日志、trace、网络与性能数据等证据,并可将成功流程保存为 .ad 脚本或导出为严格的 Maestro YAML。它既可在本地调试设备和模拟器,也可用于 CI/CD 重放验证,或配置为云端/远程执行。
先用 agent-device open <应用> --platform ios 等命令启动会话,再用 agent-device snapshot -i 读取无障碍树并取得当前 @eN 引用。代理可对最新快照中的引用或 selector 执行 press、fill、滚动、手势、等待、断言和 alert 处理,并通过 --settle 获取界面变化。它还能调用 screenshot 保存截图,以及收集视频、日志、trace、网络数据、性能样本、崩溃详情和 React profile。工作流可保存为 .ad 脚本以供本地或 CI 重放,必要时导出严格的 Maestro YAML;Node.js 项目也可使用 typed client 或公开 subpath,其中 agent-device/android-adb 提供 Android ADB、logcat、剪贴板、键盘、应用和端口反向管理接口。
- React Native 或 Expo 开发者在 iOS Simulator 或 Android Emulator 上修改界面后,让编码代理通过 snapshot、press 和 fill 验证关键流程。
- 移动端 QA 工程师把一次已成功的登录、表单或支付前置流程保存为 .ad 脚本,并在 CI 中重放并保留截图与日志。
- 原生 iOS、Android 或 Flutter 团队在无障碍信息不足时,使用截图、视频和诊断数据为缺陷报告保留可审查证据。
- 电视应用团队在 Vega Virtual Device 上发现应用、控制生命周期,并执行完整的 TV 遥控器操作。
- 负责性能排查的 React Native 团队在复现 UI 问题时收集性能样本、trace、网络数据或 React profile。
如何安装或部署这个 Agent?
安装前需准备 Node.js 22.12 或更高版本;Web 自动化需 Node.js 24 或更高版本。执行:npm install -g agent-device@latest;随后执行:agent-device doctor。README 未列出安装 CLI 所需的账号或凭据;不同目标的设备与运行环境要求由安装文档说明。
如何使用这个 Agent?
先执行 agent-device doctor 检查环境,再执行 agent-device help workflow 查看工作流帮助。一个可运行的 iOS 示例是:agent-device open Contacts --platform ios;agent-device snapshot -i;agent-device press @e2 --settle;agent-device fill @e7 "Ada" --settle;agent-device screenshot ./contact-form.png;agent-device close。@eN 引用只能使用最新输出中的引用;在 --settle 后应使用 diff 中的新引用。
这个 Agent 有哪些优点和局限?
- 采用 inspect-act-verify 流程:代理可读取当前状态后逐步决定下一条命令,而不是仅执行预写测试。
- 在一个 CLI 中覆盖移动端、TV、桌面和基础 Web 自动化,并为不同目标调用其对应的底层自动化接口。
- 无障碍快照提供 token-efficient 的界面状态,且可结合 refs、selectors、截图和视频作为操作与审查证据。
- 可将已验证流程保存为 .ad 脚本,或导出严格的 Maestro YAML,便于重复执行和接入 CI。
- 为 React Native 诊断提供 React component tree、React profile 与性能相关证据能力。
- 需要 Node.js 22.12 或更高版本;若使用 Web 自动化,则要求 Node.js 24 或更高版本。
- 各平台支持的命令和证据类型不同,不能假设某个目标具备所有能力。
- Vega OS 初期仅支持 VVD,且仅覆盖发现、应用生命周期和完整遥控器控制;物理 Fire TV、capture 与 selector backend 尚不支持。
- 操作引用会随界面变化失效,必须使用最新 snapshot 或 --settle diff 中的 @eN 引用。
- 无障碍标签、角色和 test ID 不佳时,快照可靠性会下降,需依赖截图或视频等替代证据。
这个 Agent 与同类方案有什么区别?
与 Appium、Detox、Maestro 这类需要团队编写和维护测试套件的工具相比,agent-device 的定位是让代理在运行时读取应用状态并逐步选择命令。它也可作为补充:将运行保存为 .ad 脚本,或导出为严格的 Maestro YAML。
与相关度最高的同类 agent 并排比较关键指标。
| Agent | 源码审查 | 形态 / 费用 | Star | 最近更新 | 主语言 | 完整支持的平台 |
|---|---|---|---|---|---|---|
| Agent Device 设备验证 CLI 当前 | 74 · 存在缺口 | 命令行工具免费 | ★ 5.3k | 今天 | TypeScript | Codex · Claude Code |
| Playwright 浏览器自动化 MCP | 65 · 存在缺口 | MCP 服务器免费 | ★ 39k | 1 天前 | TypeScript | Codex · Claude Code |
| iOS 模拟器技能包 | 71 · 存在缺口 | Agent 插件 / 技能免费 | ★ 1.3k | 今天 | Python | Claude Code |
| Expo Skills —— Expo 官方 AI 代理技能集 | 67 · 存在缺口 | Agent 插件 / 技能免费版 + 付费版 | ★ 4.1k | 6 天前 | Shell | Codex · Claude Code |
FollowAgents 如何评估这个 Agent?
查看各维度的扣分理由
CLI、MCP 和 SDK 共用命令路径;AI SDK 将 session 固定并隐藏 stateDir,文档也说明设备能力与数据采集路径。安全证据给出 runner token 的权限与监听边界,并要求漏洞私下报告。扣分原因:常规驱动流程直接开始操作,确认策略仅提供可选 approval;设备交互、安装、网络采集等会产生外部影响,通用撤销机制未见;依赖清单和漏洞缓解证据不在所给材料中。Callstack 作者、MIT 许可及对 agent-browser 的引用清楚,但发布者身份仍按题设视为未验证。
README、技能卡和 SDK 对会话、引用更新和关闭流程大体一致;平台能力矩阵与 capabilities 命令明确指出支持深度不同。错误包含纠正提示,AI SDK 还将错误规范化。扣分原因:材料没有完整覆盖所有命令和依赖可用性;技能卡强调的快速开始与 README 的 doctor 预检建议存在轻微张力,且所给静态材料不能证明运行结果。
材料面向编码代理和 QA 工作流,列出本地、CI、云端及多平台场景,并提供按平台技能。能力矩阵、命令说明和明确的平台子集支持边界意识。扣分原因:技能适用范围仍较宽,且触发条件与支持平台的详细判断主要依赖外部文档;环境要求涉及 Node、原生工具链、设备及云服务,配置负担不低。
README、安装、命令、API、集成、FAQ、贡献和安全入口组织清晰;例子覆盖 CLI、MCP、Node API 和常见任务。材料明确 Node 版本要求、平台能力差异、物理设备验证缺口等限制,MIT 文本完整。扣分原因:给出的材料没有 changelog 或发布节奏说明;包版本为开发版本,维护责任主要由作者字段及安全报告流程体现,响应承诺不等同于明确的维护团队职责。
可访问性快照、引用、差异、回放和证据采集形成可操作输出,且同一运行时覆盖 CLI、MCP、SDK,解决代理验证真实应用状态的明确需求。扣分原因:设备、模拟器、原生依赖及云服务带来安装和运行成本,所给静态证据不足以量化相对收益。
多项主张可追溯到命令示例、包入口、工作流、ADR 和详细设备验证记录;证据记录明确区分已验证内容、实验和未覆盖条件。README 与代码对 CLI/MCP/SDK 结构有一定交叉支持。扣分原因:许多平台能力和支持细节只在 README 中概述,材料未提供完整文档或依赖清单作交叉核对;不把证据记录视为本次独立执行验证。
- 代理可直接对设备和应用执行操作;对安装、卸载、输入或云端设备操作,应先确认目标和授权范围。
- 平台能力与环境依赖各异。使用前检查对应平台的 capabilities、安装要求及设备云配置;本评估未执行任何命令。
最近版本
来自该项目 GitHub Releases 的最新发布记录,说明为上游原文摘录,未经本站改写或测试。
-
发布说明摘录
What's Changed * test(daemon): retain sanitized evidence on idle cleanup failure by @thymikee in https://github.com/callstack/agent-device/pull/4090 * test(apple): distinguish captured focus words from synthetic types by @thymikee in https://github.com/callstack/agent-device/pull/4087 * test(daemon): type teardown fixtures and clarify browser ownership by @thymikee in https://github.com/callstack/agent-device/pull/4081 * fix(platform-android): disable persistent Android snapshots after an unhealthy helper retirement by @mvanhorn in https://github.com/callstack/agent-device/pull/4007 …在 GitHub 查看 ↗ -
发布说明摘录
What's Changed * test(proxy): cover the by-spec open that names no platform or lease backend by @thymikee in https://github.com/callstack/agent-device/pull/4044 * perf(check-affected): keep the related run out of the unit projects on fail-open plans too by @thymikee in https://github.com/callstack/agent-device/pull/4058 * refactor(daemon): require runtime access when constructing request execution by @thymikee in https://github.com/callstack/agent-device/pull/4061 …在 GitHub 查看 ↗ -
发布说明摘录
What's Changed * refactor(android): centralize session error encoding by @thymikee in https://github.com/callstack/agent-device/pull/4000 * refactor(runtime): share host command runner construction by @thymikee in https://github.com/callstack/agent-device/pull/3999 * refactor(apple): share simulator status-bar diagnostics by @thymikee in https://github.com/callstack/agent-device/pull/3998 * refactor: reuse canonical device identity projections by @thymikee in https://github.com/callstack/agent-device/pull/3996 …在 GitHub 查看 ↗
常见问题
它是否只适用于 React Native?
能否用于 CI?
是否需要每次都编写传统测试脚本?
无障碍快照读不到我要操作的控件怎么办?
Vega OS 和 Fire TV 的支持范围是什么?
谢谢反馈,我们会据此改进页面。