Zpět na domů

KMP pro AI-agenty: zkušenosti na 4 platformách

Článek popisuje zkušenosti s tvorbou AI-agentů na Kotlin Multiplatform pro 4 platformy. Zjištěny problémy s vydáním macOS, konflikty závislostí, výhody vlastní implementace grafu. Doporučení k testování a výběru knihoven pro middle/senior-vývojáře.

AI-agenty na KMP: od kódu po vydání na 4 platformách
Advertisement 728x90

Kotlin Multiplatform pro AI agenty: výhody, nevýhody a nástrahy releasů

Vývoj dvou aplikací na Kotlin Multiplatform (KMP) během půl roku odhalil klíčové aspekty: opětovné využití kódu na Androidu, iOS, Webu, Desktopu a backendu. Společný kód agentů se integrovat s knihovnami jako koog, mcp-sdk a cactus pro lokální modely. Zkušenost ukázala rovnováhu mezi ekosystémem JVM a platformově specifickými omezeními.

Hlavní výhody KMP

KMP umožňuje centralizovat obchodní logiku agentů a minimalizovat duplikaci. Ekosystém JVM poskytuje SDK pro poskytovatele LLM, zatímco Compose Multiplatform zjednodušuje UI s hot reload. Nativní sestavy pro Android využívají Skia pro iOS, i když Desktop spoléhá na JAR obálky.

Klíčové výhody:

Google AdInline article slot
  • Opětovné využití společného kódu na 4+ platformách.
  • Bohatý ekosystém JVM pro agenty a modely.
  • Stabilní Kotlin se zpětnou kompatibilitou.
  • Compose s minimálními chybami UI.

Zřejmé omezení

Podpora více platform vyžaduje expect/actual pro specifický kód. Desktopové aplikace rostou kvůli JVM a Swing, Web zůstává v beta fázi s chybami knihoven a problémy s SEO. Ladění na iOS je primitivní, interop se Swift zaostává za JVM. UI na Desktopu vypadá neidiomaticky.

Neočekávané problémy vývoje

Releasové sestavy pro macOS trvají týdny: dva app ID (JRE a aplikace), tři podpisové klíče, oddělené konfigurace pro store a DMG s notářstvím (15+ min na iteraci). Nativní knihovny proces komplikují – zdroje v JAR před podpisem, výjimky ProGuard, kompatibilita s Catalina (63 % uživatelů). Vyžaduje JDK 18+ pro TestFlight, oddělené sestavy aarch64/x86_64.

Příklad typických kroků pro releasovou sestavu:

Google AdInline article slot
  • Generování klíčů pro store a přímou distribuci.
  • Umístění nativních zdrojů do JAR.
  • Zpracování obfuskace ProGuard.
  • Notářství a ladění (5+ iterací).
  • Ověření na starších macOS.

Chybí senior specialisté na KMP: trh se zaměřuje na jednu platformu. Platformově specifické úkoly (certifikáty ministerstva na iOS vs Android) vyžadují hluboké znalosti. LLM ne vždy zvládnou nestandardní scénáře.

Konflikty knihoven a předimenzování

Alfa knihovny jako kotlinx-datetime způsobují konflikty verzí: koog táhne nekompatibilní závislosti od září. Web bez Dispatchers.IO nutí větvení ve společném kódu. Vyvádění JVM logiky pro Android/Desktop/backend přidává kompilaci, ale duplikuje reflexi.

Řešení volby:

Google AdInline article slot
  • JVM společný kód: kompromis u reflexe.
  • Loggery: rovnováha logback a rozumných výchozích nastavení.
  • Testy: mockování kontextu Androidu, přidání Desktopu pro rychlost.

XCode zhoršuje bolest: pomalý start, zpomalené autodoplňování, náhodné chyby. 6,1 % vývojářů na Stack Overflow 2025 jsou ochotni to snášet.

Realizace AI agentů bez frameworků

Odmítnutí langchain4j (nafouknutý, legacy) a koog (alfa, zbytečné závislosti jako simpleOpenAIExecutor). Vlastní realizace: graf uzlů s callback na přechody, klasifikace, RAG, zpracování chyb. Výhody – kontrola, minimum závislostí, bez OpenTelemetry.

Graf agenta se vizualizuje pro ladění, persistence state machine se realizuje ručně pro odolnost vůči chybám. Testování se zaměřuje na společný kód s platformově specifickými mockery.

Testování agentního kódu

Testy běží na iOS/Android s mockováním kontextu. Desktop urychluje CI. Problémy: dlouhá kompilace, platformově závislé Dispatchers. Doporučení – unit testy na JVM, integrační na cílových platformách.

Co je důležité:

  • Releas macOS vyžaduje týdny na klíče, notářství, ProGuard.
  • Konflikty verzí alfa knihoven (kotlinx-datetime) láme sestavu.
  • Vlastní agenti jsou jednodušší než frameworky pro niche LLM (GigaChat).
  • Senior na KMP je vzácnost; potřebné platformově specifické dovednosti.
  • XCode je bottleneck pro iOS vývoj.

Celková zkušenost: KMP se vyplatí pro AI agenty s JVM backendem, ale releas a iOS/Web vyžadují expertizu.

— Editorial Team

Advertisement 728x90

Číst dál