Universal Automation Protocol (UAP)
Info
UAP は、自動化をより分かりやすく、持ち運びやすく、将来にも対応しやすいものにします。
Universal Automation Protocol (UAP) は、あらゆる端末やプラットフォームで自動化タスクを定義・実行するために HuBrowser が作ったオープン標準です。初心者でも上級者でも、UAP を使えば、シンプルで読みやすい形式で自動化タスクを記録・インポート・エクスポートできます。UAP 対応アプリならどれでも実行できるので、特定ベンダーに縛られません。
Tip
技術知識がなくても、このページを読めば自分用の自動化ステップをかなり分かりやすく理解して書けます。 技術知識があるなら、これが企業向け UI テストやクロスプラットフォーム自動化にどうつながるかも見えてきます。
- 人にやさしい:
JSONを使うので、読み書きしやすいです。 - 型安全: プロトコル型は
TypeScriptで定義されており、信頼性を高めています。 - AI-first: モバイル AI エージェント時代を前提に設計されていて、Playwright や Selenium のような従来標準では解きにくい課題に対応します。
- クロスプラットフォーム: プラットフォームをまたいで自動化スクリプトを共有できます。たとえ HuBrowser が iPhone をサポートしていなくても、スクリプト自体は動かせる可能性があります。
用語
- Mode: 私たちがサポートする 3 つのモード:
instruction: アクションを自然言語で指示するモード。recording: 録画した自動化ステップを使うモード。script: スクリプト化された自動化ステップを使うモード。
- Harden: より柔軟なモードから、より決定論的なモードへ切り替えること。たとえば
instructionからscriptへ移ることで、自動化が速く正確になります。 - Soften: より決定論的なモードから、より柔軟なモードへ切り替えること。たとえば
scriptからinstructionへ移ることで、適応力は上がりますが、そのぶん遅くなることがあります。
例: UAP アクション(JSON)
この例は、シンプルなフォーム送信ワークフローを示しています。UAP アクションは書きやすく、読みやすいのが特徴です。
自動化設定(TypeScript)
構造制御の基本
UAP は、分かりやすく拡張しやすい定義を保つために、見慣れた schema 概念を使います。
- properties: オブジェクトの属性を定義します。
- anyOf: 複数の型や構造を許可します。
- required: 必須フィールドを指定します。
- type: 値のデータ型を制限します。
- default: 既定値を与えます。
- item_count_range: 配列の最小長と最大長を制御します。
ツール利用
UAP では、ツール呼び出しや function call も構造化して表現できます。
この構造により、UAP でツールや関数をどう記述するかが定義されます。
保守とバージョニング
- version: v25.1
- オープンソースライセンス: Apache License 2.0
- AI は速く進化しますが、変更はできるだけ予測しやすく保つようにしています。
- 大きな破壊的変更は多くても 2 か月に 1 回まで。その際は自動化プロトコルファイルを再ダウンロードする必要があります。
- Graceful fallback: ある環境が特定のアクションをサポートしていない場合でも、UAP 対応アプリは自動化が予想外に壊れないよう配慮すべきです。
