Zurück zur Startseite

KMP für KI-Agenten: Erfahrung auf 4 Plattformen

Der Artikel beschreibt die Erfahrung bei der Erstellung von KI-Agenten auf Kotlin Multiplatform für 4 Plattformen. Identifizierte macOS-Release-Probleme, Abhängigkeitskonflikte, Vorteile der eigenen Graph-Implementierung. Empfehlungen für Tests und Bibliotheksauswahl für Middle-/Senior-Entwickler.

KI-Agenten auf KMP: vom Code bis zum Release auf 4 Plattformen
Advertisement 728x90

Kotlin Multiplatform für KI-Agenten: Vor- und Nachteile sowie Veröffentlichungsfallen

Sechs Monate Arbeit an zwei Apps mit Kotlin Multiplatform (KMP) haben zentrale Erkenntnisse geliefert: Code-Wiederverwendung über Android, iOS, Web, Desktop und Backend hinweg. Der gemeinsame Agent-Code integrierte Bibliotheken wie koog, mcp-sdk und cactus für lokale Modelle. Praktische Erfahrungen zeigten das Gleichgewicht zwischen dem robusten JVM-Ökosystem und plattformspezifischen Hürden.

Wichtige Vorteile von KMP

KMP zentralisiert die Geschäftslogik von Agenten und reduziert Duplikate massiv. Das JVM-Ökosystem bietet SDKs für LLM-Anbieter, während Compose Multiplatform die UI mit Hot Reload vereinfacht. Native Android-Builds nutzen Skia für iOS, wobei Desktop auf JAR-Wrappers angewiesen ist.

Wichtige Vorteile:

Google AdInline article slot
  • Wiederverwendung plattformunabhängigen Codes über 4+ Ziele hinweg.
  • Umfangreiches JVM-Ökosystem für Agenten und Modelle.
  • Stabiles Kotlin mit Abwärtskompatibilität.
  • Compose mit minimalen UI-Problemen.

Klare Einschränkungen

Multiplattform-Support erfordert expect/actual für plattformspezifischen Code. Desktop-Apps blähen sich durch JVM- und Swing-Abhängigkeiten auf, Web ist noch Beta mit Bibliotheksfehlern und SEO-Problemen. iOS-Debugging wirkt rudimentär, Swift-Interop hinkt der JVM hinterher. Desktop-UIs sehen oft unprofessionell aus.

Versteckte Entwicklungsherausforderungen

macOS-Release-Builds dauern Wochen: zwei App-IDs (JRE und App), drei Signierschlüssel, separate Konfigs für App-Stores und DMG mit Notarisierung (15+ Minuten pro Iteration). Native Bibliotheken erschweren alles – Ressourcen in JARs vor dem Signieren, ProGuard-Ausschlüsse, Catalina-Kompatibilität (63 % der Nutzer). TestFlight braucht JDK 18+, dazu separate aarch64/x86_64-Builds.

Typische Release-Schritte:

Google AdInline article slot
  • Schlüssel für Stores und direkte Verteilung generieren.
  • Native Ressourcen in JARs einbetten.
  • ProGuard-Verwirrung handhaben.
  • Notarisierung und Debugging (5+ Iterationen).
  • Test auf älteren macOS-Versionen.

Mangel an KMP-Senior-Experten: Der Arbeitsmarkt bevorzugt Single-Platform-Entwickler. Plattformspezifische Aufgaben (z. B. iOS-Regierungszertifikate vs. Android) erfordern tiefes Know-how. LLMs scheitern an Edge-Cases.

Bibliotheks-Konflikte und Überengineering

Alpha-Bibliotheken wie kotlinx-datetime verursachen Versionskonflikte: koog zieht seit September inkompatible Abhängigkeiten nach. Web fehlt Dispatchers.IO, was Branches im gemeinsamen Code erzwingt. Auslagerung von JVM-Logik für Android/Desktop/Backend erhöht Kompilierzeit, dupliziert aber Reflection.

Kluge Entscheidungen:

Google AdInline article slot
  • JVM-gemeinsamer Code: Kompromisse bei Reflection eingehen.
  • Logger: logback und sinnvolle Defaults balancieren.
  • Tests: Android-Kontext mocken, Desktop für Geschwindigkeit hinzufügen.

Xcode verschärft den Schmerz: Langsame Starts, verzögerte Autovervollständigung, zufällige Abstürze. Nur 6,1 % der Stack-Overflow-Entwickler 2025 sind bereit, das zu ertragen.

KI-Agenten ohne Frameworks bauen

Langchain4j ( aufgebläht, veraltet) und koog (Alpha, überflüssige Abhängigkeiten wie simpleOpenAIExecutor) verworfen. Eigene Implementierung: Knotengraph mit Übergangs-Callbacks, Klassifikation, RAG, Fehlerbehandlung. Gewinne: Volle Kontrolle, minimale Abhängigkeiten, kein OpenTelemetry-Ballast.

Agent-Graphen visualisieren für Debugging, Zustandsmaschinen-Persistenz manuell für Resilienz gebaut. Tests zielen auf gemeinsamen Code mit Plattform-Mocks ab.

Testen von Agent-Code

Tests laufen auf iOS/Android mit Kontext-Mocking. Desktop beschleunigt CI. Probleme: Lange Kompilierzeiten, plattformabhängige Dispatchers. Best Practice: JVM-Unit-Tests, plattformspezifische Integrationstests.

Zentrale Erkenntnisse:

  • macOS-Releases brauchen Wochen für Schlüssel, Notarisierung, ProGuard.
  • Alpha-Bibliotheks-Versionkonflikte (kotlinx-datetime) brechen Builds.
  • Eigene Agenten schlagen Frameworks für Nischen-LLMs (wie GigaChat).
  • KMP-Senioren sind rar; Plattform-Kenntnisse essenziell.
  • Xcode ist ein Engpass für iOS-Entwicklung.

Gesamteinschätzung: KMP lohnt sich für KI-Agenten mit JVM-Backends, aber Releases und iOS/Web erfordern echtes Fachwissen.

— Editorial Team

Advertisement 728x90

Weiterlesen