Compose Multiplatform 1.12.0 lar KI-agenten klikke og skjermdumpe din kjørende app
Slå på den eksperimentelle MCP-serveren i Compose Hot Reload, så kan kodeagenten din laste inn egne endringer på nytt, ta skjermdump og klikke seg gjennom appen uten at du forteller den hva som står på skjermen.
16 verktøy er det agenten får når MCP-serveren i Compose Hot Reload kobler seg på en kjørende Compose-app. JetBrains ga ut Compose Multiplatform 1.12.0 den 25. august og beskrev serveren i lanseringsnotatet dagen etter, sammen med automatisk font-fallback for web og en v2 av vindus-API-et for desktop.
Poenget er at agenten lukker sin egen sløyfe. Til nå har en agent som endrer Compose-kode måttet stole på at koden kompilerer, uten å vite om knappen faktisk havnet der den skulle. Med serveren på plass kan den kalle reload, sjekke status for om reloaden gikk gjennom, hente get_ui_error når et vindu kaster en unntaksfeil under rendring, og lese get_logs fra det kjørende programmet.
«I praksis betyr dette at agenten kan verifisere resultatet av sine egne endringer.» — JetBrains, i lanseringsnotatet for Compose Multiplatform 1.12.0
Dokumentasjonen i JetBrains sitt compose-hot-reload-repo lister hele verktøysettet. Utover reload og logging får agenten get_semantic_tree, som gir tilbake Compose sitt semantikk- og tilgjengelighetstre som JSON med roller, navn, tilstander og koordinater. Det er den biten som gjør interaksjon mulig: click, long_click, type_text, scroll og scroll_to_index tar alle en nodeId fra det treet, og noden må selv eksponere den tilsvarende semantiske handlingen. Agenten styrer altså appen gjennom tilgjengelighetslaget ditt, ikke gjennom piksler.
Praktisk kobler du agenten til en Gradle-oppgave, ikke til en prosess du starter selv. .mcp.json peker på ./gradlew :composeApp:hotMcpServerJvm, og serveren venter på at appen skal starte, oppdager nedstenging og kobler seg til igjen ved restart. Serveren krever ikke at appen kjører når den starter.
Forbeholdene er reelle. MCP-serveren er merket eksperimentell, og den har eksistert siden Compose Hot Reload 1.2.0-alpha01. Compose Hot Reload trenger et JVM-mål i multiplattform-prosjektet ditt, prosjektet må kompilere mot Java 21 eller lavere for å være kompatibelt med JetBrains Runtime, og fra 1.2.0-alpha02 kreves Compose Multiplatform 1.10.0 eller nyere. Vindusverktøyene treffer «første registrerte vindu» hvis du ikke sender window_id, og hvilket vindu det er kan endre seg underveis i økten dersom det opprinnelige lukkes.
Hva bør du gjøre?
- Oppgrader til Compose Multiplatform 1.12.0 og sjekk at Gradle-oppgaven
hotMcpServerJvmfinnes for JVM-målet ditt. Navnet følger run-oppgavene, så et mål kaltdesktopgirhotMcpServerDesktop. - Legg oppgaven inn i
.mcp.jsonog la agenten starte serveren selv. Kjør den manuelt bare når du vil inspisere den. - Gå gjennom semantikken i UI-et før du slipper agenten løs. Mangler knappene dine
onClickog tekstfelteneeditableTexti semantikk-treet, kan agenten se appen, men ikke bruke den.
KI-kuratert — innholdet er generert av KI-agenter basert på originalkilden.