Agent SkillsmobileAiDev/ai-app-bridge › ai-app-bridge-use

ai-app-bridge-use

GitHub

提供 AI App Bridge 的 CLI/MCP 使用指南,涵盖 Android/iOS/Web 等平台的观察、自动化操作与诊断。明确 Intent/Script 入口选择、参数契约、响应提取及目标绑定规范,辅助 Agent 高效交互验证。

skills/ai-app-bridge-use/SKILL.md mobileAiDev/ai-app-bridge

Trigger Scenarios

需要操作或观察移动端/Web应用界面 执行跨平台UI自动化流程 进行设备连接与故障诊断

Install

npx skills add mobileAiDev/ai-app-bridge --skill ai-app-bridge-use -g -y
More Options

Use without installing

npx skills use mobileAiDev/ai-app-bridge@ai-app-bridge-use

指定 Agent (Claude Code)

npx skills add mobileAiDev/ai-app-bridge --skill ai-app-bridge-use -a claude-code -g -y

安装 repo 全部 skill

npx skills add mobileAiDev/ai-app-bridge --all -g -y

预览 repo 内 skill

npx skills add mobileAiDev/ai-app-bridge --list

SKILL.md

Frontmatter
{
    "name": "ai-app-bridge-use",
    "description": "使用 AI App Bridge 观察、操作和验证 Android、iOS、Flutter、WebView 或 Web App;适用于真实交互、流程自动化和设备诊断。"
}

AI App Bridge Use

选择入口

  • Intent:日常操作和未知流程,观察与 Agent 决策绑定;适合页面探索、系统窗口交互。
  • Script:固定流程和重复运行,自由编写 JavaScript/Python(trusted-local-code),用 ctx.call 调用设备能力;权限声明不是 OS 沙箱。
  • 单次命令:观察、单步动作、安装、权限夹具和诊断可独立调用,无须包装成完整流程。

共享调用合同

MCP 入口是 capabilitiesruncapabilities 是独立工具,不是 run 的命令。命令参数全部放在 run.arguments,包括目标和 operation,使用当前命令名与 JSON 类型。默认 capabilities 或 domain 查询只取目录;domain 取值为 execution、evidence、core、app、action、flutter、webview、ios、web、diagnostics、advanced;android 是平台不是 domain,平台筛选只用于 Intent decide 的 platform。用 command 查合同,Intent/Script/evidence 加 operation 只取当前操作。Intent decide 可再加实际 platformprovideraction,例如 {"command":"intent","operation":"decide","platform":"android","provider":"native","action":"tap"}。CLI --help COMMAND 接受相同筛选;发现正文上限 96 KiB,宽查询超限时按提示用 command/operation 收窄,不反复读取整个 schema。

每次 run 顶层必填 extract:只需整个小结果时显式 null;树、网络、日志等大结果优先用 regex 或 JS/Python 提取需要的字段。业务参数仍在 argumentsextract/output 不传入设备命令。CLI 使用 --extract null 或 JSON 对象。

CLI 与 MCP 共用独立执行 Runtime、命令合同和 operationId。CLI 响应是一行紧凑 JSON,业务值在 value;MCP 工具正文同样是紧凑 JSON。Script 的调用返回值另见下文。客户端退出不会取消任务,用原 operationId 显式 cancel。取消不撤销已派发效果;版本错误会列出两侧身份,只在确定 Runtime 是待更新一侧时安排显式 stop。

旧 MCP 实例可能与已安装 CLI 不同。缺少 Intent/Script 或参数不匹配时,核对实际入口版本,选用支持当前合同的入口;不要套用旧 batch、工具别名或外层参数。

响应与提取

先看 execution 的原执行事实及 failureStage,再消费 value;Script 内部 ctx.call 仍按 ok/result 处理,不加 extract。control 保留续跑字段和采集覆盖;当前 Script 问题从 control.pendingQuestion 读取,即使 events 被游标过滤也可回答。

默认最终正文预算 96 KiB,可用 output.maxBytes 设为 16–256 KiB。提取失败或超预算不等于动作失败;存在 control.source.persisted:true 时,用 responseoperation:read、原 ref 和新的 extract 重读,不重发原动作。未保存或留存已过期时没有可恢复的大结果,不捏造 ref。提取会减少交付内容,不承诺减少采集耗时。

提取脚本只使用 ctx.inputs = {kind, response, execution, control},返回严格 JSON;没有 ctx.call。保留实际断言需要的来源身份、时间和状态,不能将选出的几条成功记录当作完整覆盖。完整示例见 docs/RESPONSE_EXTRACTION.md

目标与动作

  • Android:明确 serialpackageName。iOS:deviceId/bundleId;Native Intent 还需原 WDA Runner/session 绑定。Web:从当前连接取得 sessionId/runtimeEpoch/targetId
  • Intent/Script 的目标带 platform。目标标识、当前前台和返回的观察必须对应;更多绑定按平台合同补齐。
  • selector、nodeRef、pageRef 和坐标来自当前观察。多重匹配、过期引用、前台变化或 reobserve_required 需要重新观察;Intent 切 provider 通过 observe 完成。
  • 已派发但结果未知(ambiguous)时先观察,避免换 provider 或端点重放动作。保留原 errormessagedispatched 和操作状态。
  • 若使用 freeze,后续操作和结束交付前先 thaw。

Intent

start 提供 goal、显式 target 和所需 provider;默认 supervised。 保留返回的 operationId,读取当前观察后以 decide 提交决策。 decision 包含唯一 decisionId、当前 basedOnRevisionagentDecisionact 的 action 遵循该观察的 provider 合同,控件动作使用唯一 selector。 需要刷新或切换 provider 时用 observe,随后使用新 revision。 complete/fail/inconclusive 也需要当前 revision,且不带 action;完成决策不能代替实际结果证据。 supervised 不会仅凭 goal 自动执行:没有决策时停在 waiting_for_decision 直到 timeoutMsstatus 显式给 limit(限制条数,不限制字节);续读历史用上一页的 history.lastSequence 作为 afterSequence,不能用 Script 的 eventSequence。完整 start → decide → status → complete 范例见 COMMAND_CONTRACT.md Execution operation contracts。 安装与权限弹窗命令会返回受监督 Intent,须继续观察和决策;具体收尾条件见对应合同章节。

Script

startscript 内提供 targetlanguagejavascriptpython),以及 source/sourcePath 二选一。源码入口、权限和 API 按需查 SCRIPT_AUTHORING.mdctx.call 返回 envelope:先检查 ok,设备数据在 result;调用失败和 ctx.assert 的 verdict 由源码处理。 用原 operationId 查询 status/wait;每次 waitMs 最多 60000,runningfinishing 时用上一响应的 eventSequence 作为 afterSequence 继续等待。 waiting_for_agent 是源码的 ctx.askAgent:用 control.pendingQuestion(或本页 agent_question_created 事件)里的 requestId/revisiondecide,或 cancel;不要等到超时。完整 start → wait → result 范例见 SCRIPT_AUTHORING.md Lifecycle: start, wait, resultcompleted 仅说明源码返回并持久化;status/wait 的 resultRef 不是最终值。 完成后调用 scriptoperation:"result" 读取 resultresultRefpersisted,检查 representation 及实际断言结果。读取失败保留错误,不从进度事件拼出返回值。

验证与证据

按用户要求的结果选取本轮证据;动作回执、UI 变化、业务结果和证据覆盖分别判断,证据不足保留为 inconclusive。 要保留可移交的过程文件,在 Intent/Script start 时设置新的 recordingDir;已有操作的保留记录可通过 evidence 导出。 evidence export 使用原 operationId 和对应 namespace(intent/script);包含已记录文件需 includeRecordedPayloads:true。保存返回的 manifestSha256,交给离线 evidence verify。 归档校验只证明保留内容的完整性和覆盖范围;缺页、缺引用或已淘汰记录仍需如实报告,不能据此推断业务通过。

按需文档

command -v ai-app-bridge 取得入口并解析符号链接;其 bin/.. 是 CLI 发布包根目录。源码仓库中为 desktop/ai-app-bridge-cli。以下路径均相对此包根目录,不相对本技能;先查标题或关键词,只读相关章节。

  • docs/COMMAND_CONTRACT.md:入口与 Runtime 看 Discovery and entrypoints;Intent 看 Execution operation contracts;目标看 Target and dispatch 及对应 iOS/H5/Web 章节;安装/权限看 Installation is an Intent operation / Runtime permission requests use Intent

  • docs/SCRIPT_AUTHORING.md:首次写脚本看 Start and observeLifecycle: start, wait, result(含可运行的 JS/Python 回归范例)、Calls and assertions;命令准入看 Capability selection;采集或暂停需求再读对应章节。

  • docs/EVIDENCE_ARCHIVE.md:需要记录、导出或离线校验时读取,包含文件范围与 coverage 的具体边界。

  • docs/RESPONSE_EXTRACTION.md:单次提取、两语言源码、正文预算、失败后原 ref 重读及退出码。

Version History

  • 0.4.1 Current 2026-09-22 07:54

    更新0.4.0版本指导,优化设备提取工作流;修复M1阶段判别器名称、域指引及生命周期示例;统一CLI/MCP紧凑JSON格式;完善Intent决策循环与脚本编写规范。

  • 0.2.12 2026-07-24 11:37

Same Skill Collection

desktop/ai-app-bridge-cli/skills/ai-app-bridge-use/SKILL.md

Metadata

Files
0
Version
0.4.1
Hash
99635722
Indexed
2026-07-24 11:37

inicio - Wiki
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-09-23 07:39
浙ICP备14020137号-1