用於透明代理與應用程式控制的開放標準
App Use 刻意設計成可移植。對另一端是哪個代理、框架或廠商不作任何假設。任何說 Model Context Protocol(MCP)的代理都能描述、讀取並驅動任何公開 App Use 介面的應用程式。我們公開發佈這套協定,讓整個業界都能採用。
四層,一條連線
每一層各司其職。它們合力讓代理描述並驅動任何參與的應用程式——無需逐個應用程式量身整合。
AppSpec
應用程式所發佈的一份宣告式文件:它的畫面、每個畫面上可驅動的元素(文字框、按鈕、清單)、具名的多步流程、事件,以及動作目錄。每個元素都帶有用途、驗證、支援的動作,以及它是否屬於機密。
MCP 傳輸
應用程式透過迴環 SSE MCP 伺服器寄存標準的 app.* 工具,並配以每執行個體的持有人權杖。描述、讀取一個畫面、取得或設定一個值、呼叫一個動作、導覽——全部透過同一條連線。
Hub 代理
一個 hub 把眾多運行中的應用程式匯聚成單一 MCP 介面:apps.list、apps.launch、apps.stop,以及把工具路由至正確執行個體的 app.call。一個代理連線便能驅動每個應用程式。
聯邦化(選用)
跨裝置的眾多 hub 構成一個叢集。連接至任何 hub 的代理都能透明地驅動其他每一個 hub 上的應用程式——透過區域網路上的雙向驗證 TLS,或跨互聯網的端對端加密中繼。
一套精簡、可預測的工具集
每個 App Use 應用程式都回應同一套詞彙,因此代理只需學一次便能驅動任何東西。每個工具都帶有一個風險等級;寫入與執行工具會經過同意關卡路由。
| 工具 | 它的作用 | 風險 |
|---|---|---|
app.describe | 回傳 AppSpec | 讀取 |
app.read_screen | 快照目前的畫面狀態 | 讀取 |
app.get_value | 讀取一個元素的值 | 讀取 |
app.set_value | 設定一個元素的值 | 寫入 |
app.invoke | 觸發一個按鈕/動作 | 執行 |
app.navigate | 移至另一個畫面 | 寫入 |
apps.list / app.call | Hub:列舉並路由至一個執行個體 | 代理 |
從構造上即安全
能力範圍
每個權杖都帶有三種範圍之一——唯讀、讀寫,或管理員——而每個工具都受其所需的最低範圍把關。一個唯讀代理在實體上根本無法呼叫一個動作。
人在迴路的同意
在任何寫入或執行工具運行之前,行程內的同意關卡可暫停以等候人手決定:允許一次、就此工作階段允許,或封鎖。操作員會清楚看見哪個動作正待處理。
防篡改審計
每個呼叫都會附加至一條持久、以 HMAC 雜湊串連的記錄。編輯或刪除過往項目,會在下次驗證時令鏈條斷裂——因此代理做過甚麼的記錄是可信的。
機密遮蔽
被標記為機密的元素會在所有地方被遮蔽——讀取、快照、即時饋送與審計記錄——因此密碼與金鑰永不會透過介面外洩。
跨裝置加密
區域網路上的 hub 對 hub 流量會透過雙向驗證、固定至私有叢集 CA 的 TLS 運行。跨互聯網時,Noise-IK 交握會把每個訊框端對端加密——就連中繼也只看見不透明的位元組。
快速撤銷
已簽署、單調遞增的撤銷清單會在約 60 秒內跨叢集傳播,因此一個遭入侵的憑證只需拉動一個槓桿便可處理。