透明なエージェントとアプリの制御のためのオープンスタンダード
App Use は意図的にポータブルです。どのエージェント、フレームワーク、ベンダーが反対側にいるかについて前提を置きません。Model Context Protocol(MCP)を話すどんなエージェントでも、App Use サーフェスを公開するどんなアプリケーションでも、記述し、読み取り、操作できます。私たちは業界全体が採用できるよう、プロトコルをオープンに公開しています。
4 つのレイヤー、一つのワイヤ
各レイヤーは一つの仕事を担います。それらが組み合わさることで、アプリごとの専用統合なしに、エージェントは参加するどんなアプリでも記述し操作できます。
AppSpec
アプリが公開する宣言的なドキュメント:その画面、各画面上の操作可能な要素(テキストボックス、ボタン、リスト)、名前付きの複数ステップのフロー、イベント、そしてアクションカタログ。各要素は、目的、検証、サポートするアクション、そしてシークレットかどうかを持ちます。
MCP トランスポート
アプリは、インスタンスごとのベアラートークンを備えたループバック SSE MCP サーバー上で、標準の app.* ツールをホストします。記述、画面の読み取り、値の取得や設定、アクションの呼び出し、ナビゲーション — すべて一つのワイヤ上で。
ハブの仲介
ハブは、実行中の多数のアプリを一つの MCP サーフェスに集約します:apps.list、apps.launch、apps.stop、そしてツールを適切なインスタンスにルーティングする app.call。一つのエージェント接続がすべてのアプリを操作します。
フェデレーション(任意)
デバイスをまたぐ多数のハブが一つのクラスターを形成します。どのハブに接続したエージェントも、他のすべてのハブ上のアプリを透過的に操作できます — LAN 上の相互認証された TLS、またはインターネット越しのエンドツーエンド暗号化リレーを通じて。
小さく予測可能なツールセット
すべての App Use アプリは同じ語彙に応答します。だからエージェントは一度学べば何でも操作できます。各ツールはリスクレベルを持ち、書き込みと実行のツールは同意ゲートを経由します。
| ツール | 何をするか | リスク |
|---|---|---|
app.describe | AppSpec を返す | 読み取り |
app.read_screen | 現在の画面状態をスナップショットする | 読み取り |
app.get_value | 一つの要素の値を読み取る | 読み取り |
app.set_value | 要素の値を設定する | 書き込み |
app.invoke | ボタン/アクションをトリガーする | 実行 |
app.navigate | 別の画面に移動する | 書き込み |
apps.list / app.call | ハブ:列挙してインスタンスにルーティングする | 仲介 |
設計により安全
機能スコープ
すべてのトークンは 3 つのスコープのいずれか — ReadOnly、ReadWrite、または Admin — を持ち、各ツールはそれが必要とする最小のスコープでゲートされます。読み取り専用のエージェントは、物理的にアクションを呼び出せません。
人間が介在する同意
書き込みや実行のツールが動く前に、プロセス内の同意ゲートが人間の判断のために一時停止できます:一度だけ許可、セッション中許可、またはブロック。オペレーターは、どの操作が保留中かを正確に見られます。
改ざん検知可能な監査
すべての呼び出しは、耐久性のある HMAC ハッシュチェーン化ログに追記されます。過去のエントリーを編集または削除すると、次回の検証時にチェーンが壊れます — だからエージェントが何をしたかの記録は信頼できるのです。
シークレットのマスキング
シークレットとマークされた要素は、あらゆる場所でマスキングされます — 読み取り、スナップショット、ライブフィード、監査ログ — だからパスワードやキーがサーフェスを通じて漏れることはありません。
デバイスをまたいで暗号化
LAN 上のハブ間トラフィックは、プライベートなクラスター CA にピン留めされた相互認証 TLS 上で動作します。インターネット越しでは、Noise-IK ハンドシェイクがすべてのフレームをエンドツーエンドで暗号化します — リレーでさえ不透明なバイト列しか見えません。
高速な失効
署名された単調増加の失効リストは、約 60 秒以内にクラスター全体に伝播します。だから侵害された認証情報は、引くべき単一のレバーで済みます。