En öppen standard för transparent agent–app-styrning
App Use är portabelt med avsikt. Det finns inget antagande om vilken agent, vilket ramverk eller vilken leverantör som sitter i andra änden. Vilken agent som helst som talar Model Context Protocol (MCP) kan beskriva, läsa och styra vilken applikation som helst som exponerar en App Use-yta. Vi publicerar protokollet öppet så att hela branschen kan införa det.
Fyra lager, en ledning
Varje lager äger en uppgift. Tillsammans låter de en agent beskriva och styra vilken deltagande app som helst — utan skräddarsydd integration per app.
AppSpec
Ett deklarativt dokument som appen publicerar: dess skärmar, de styrbara elementen på var och en (textrutor, knappar, listor), namngivna flerstegsflöden, händelser och åtgärdskatalogen. Varje element bär ett syfte, validering, stödda åtgärder och om det är hemligt.
MCP-transport
Appen hostar standardverktygen app.* över en loopback-SSE-MCP-server med en bearer-token per instans. Beskriv, läs en skärm, hämta eller sätt ett värde, anropa en åtgärd, navigera — allt över en enda ledning.
Hub-förmedling
En hub samlar många körande appar till en enda MCP-yta: apps.list, apps.launch, apps.stop och app.call för att dirigera ett verktyg till rätt instans. En enda agentanslutning styr varje app.
Federering (valfritt)
Många hubbar över enheter bildar ett enda kluster. En agent som är ansluten till vilken hub som helst kan transparent styra appar på varje annan — över ömsesidigt autentiserad TLS på LAN, eller ett totalsträckskrypterat relä över internet.
En liten, förutsägbar verktygsuppsättning
Varje App Use-app besvarar samma vokabulär, så en agent lär sig den en gång och styr vad som helst. Varje verktyg bär en risknivå; skriv- och exekveringsverktyg går genom samtyckesporten.
| Verktyg | Vad det gör | Risk |
|---|---|---|
app.describe | Returnera AppSpec | läs |
app.read_screen | Ögonblicksbild av aktuellt skärmtillstånd | läs |
app.get_value | Läs ett elements värde | läs |
app.set_value | Sätt ett elements värde | skriv |
app.invoke | Utlös en knapp/åtgärd | exekvera |
app.navigate | Gå till en annan skärm | skriv |
apps.list / app.call | Hub: räkna upp + dirigera till en instans | förmedla |
Säkert i sin konstruktion
Kapacitetsomfång
Varje token bär ett av tre omfång — ReadOnly, ReadWrite eller Admin — och varje verktyg styrs av det minsta omfång det behöver. En skrivskyddad agent kan fysiskt inte anropa en åtgärd.
Samtycke med människan i loopen
Innan något skriv- eller exekveringsverktyg körs kan en samtyckesport i processen pausa för ett mänskligt beslut: Tillåt en gång, Tillåt för sessionen eller Blockera. Operatören ser exakt vilken åtgärd som väntar.
Manipuleringssäker granskning
Varje anrop läggs till i en beständig, HMAC-hashkedjad logg. Att redigera eller radera en tidigare post bryter kedjan vid nästa verifiering — så loggen över vad en agent gjorde är tillförlitlig.
Redigering av hemligheter
Element märkta som hemliga redigeras bort överallt — läsningar, ögonblicksbilder, live-flödet och granskningsloggen — så att lösenord och nycklar aldrig läcker genom ytan.
Krypterat mellan enheter
Hub-till-hub-trafik på ett LAN körs över ömsesidigt autentiserad TLS, fäst till en privat kluster-CA. Över internet krypterar en Noise-IK-handskakning varje ram totalsträckskrypterat — även reläet ser bara ogenomskinliga byte.
Snabb återkallelse
Signerade, monotona återkallelselistor sprids över ett kluster inom ungefär 60 sekunder, så en komprometterad behörighet är en enda spak att dra i.
Den fullständiga specifikationen publiceras
Det fullständiga ledningsformatet — AppSpec-schemat, den fullständiga verktygsreferensen app.* och apps.*, granskningsloggformatet och federeringens peer-kontrakt — förbereds för öppen publicering här. Vill du ha tidig åtkomst eller hjälpa till att forma specifikationen? Hör av dig.