Claude im Foundation Models Framework: der Handoff wird zum Pattern

Claude im Foundation Models Framework: der Handoff wird zum Pattern

Anthropic hat ein Swift-Package veröffentlicht, das Apples Foundation Models Framework an Claude anschließt. Verfügbar ab heute, auf iOS 27, iPadOS 27, macOS 27, visionOS 27 und watchOS 27. Die Schlagzeile ist „Claude in einer Swift-App". Das eigentlich Interessante steckt eine Ebene tiefer: das Übergabe-Muster zwischen dem lokalen Modell und der Cloud, und der Punkt, an dem Apple dieses Muster zum dokumentierten Standardweg macht.

Was das Foundation Models Framework ist — und wo seine Decke liegt

Mit der Foundation-Models-Schicht gibt Apple Swift-Entwicklern direkten Zugriff auf ein kompaktes, für das Gerät optimiertes Sprachmodell. Es läuft auf der Neural Engine, ohne Netzwerk, ohne API-Key, und es ist auf genau die Aufgaben zugeschnitten, bei denen Latenz und Datenschutz zählen: Texte zusammenfassen, Felder aus einem Dokument extrahieren, Eingaben klassifizieren, kurze Vorschläge generieren.

Diese Stärke hat eine Kehrseite. Das On-Device-Modell ist klein. Es hat einen begrenzten Kontext, keinen Zugriff auf aktuelle Informationen, und es ist nicht für mehrstufiges Reasoning oder ernsthafte Code-Generierung gebaut. Wer es an diese Grenze treibt, bekommt entweder dünne Antworten oder eine Aufgabe, die schlicht nicht in den lokalen Rahmen passt. Genau diese Grenze ist der Grund, warum ein Handoff überhaupt Sinn ergibt.

Typed outputs statt roher Text

Der Kern des Frameworks ist Guided Generation. Statt das Modell freien Text produzieren zu lassen, beschreibt man mit @Generable eine Swift-Struct, und das Modell füllt sie mit getypten Werten. Das Ergebnis ist kein Markdown-Block, den man hinterher parsen muss, sondern eine Instanz, die der Compiler kennt.

@Generable
struct StudyPrompt {
    @Guide(description: "Der Fachbegriff, um den es geht")
    let term: String
    let difficulty: Int
    let followUp: String
}

In wenigen Zeilen kommt man so von roher Nutzereingabe zu einem strukturierten Objekt. Und hier setzt das neue Package an. Weil die On-Device-Stufe bereits getypte Werte liefert, kommt man am Claude-Aufruf mit sauberen, validierten Inputs an — nicht mit dem ungefilterten Originaltext des Nutzers. Die Vorverarbeitung ist erledigt, bevor der erste Token an die API geht. Das ist mehr als Kosmetik: Es macht die Schnittstelle zwischen lokal und entfernt zu einer typisierten Grenze, an der klar ist, was überhaupt weitergereicht wird.

On-Device generiert, Claude denkt nach

Das Muster ist eine Arbeitsteilung, und sie ist im Kern eine Routing-Entscheidung. Die lokalen Modelle übernehmen, was billig und latenzkritisch ist. Sobald ein Request mehrstufiges Reasoning, Code-Generierung oder aktuelle Informationen braucht, wird an Claude übergeben.

Anthropics eigene Beispiele zeichnen die Linie sauber nach. Eine Journaling-App erzeugt Tagesimpulse on-device — schnell, lokal, kostenlos — und fragt Claude erst dann, wenn es darum geht, Fäden über Monate von Einträgen hinweg zu finden. Eine Lern-App definiert einen Begriff lokal und reicht an Claude weiter, wenn der Lernende nachhakt: „warum ist das für alles andere wichtig, das wir behandelt haben?" Der erste Schritt ist eine Definition, der zweite eine Synthese über viel Kontext. Verschiedene Aufgaben, verschiedene Modelle.

Für den Nutzer bleibt es eine Oberfläche. Das Package kümmert sich um Streaming, Tool Calls und strukturierte Antworten, die direkt in dieselbe SwiftUI-View zurückfließen. Claude kann dabei auch das Web nach aktuellen Informationen durchsuchen und Code zur Datenanalyse ausführen — beides Dinge, die das lokale Modell prinzipiell nicht kann. Was wechselt, ist nur das Modell hinter dem jeweiligen Schritt, nicht die View und nicht der Datenfluss drumherum.

Vorher ging das auch — und was jetzt anders ist

Man konnte die Anthropic-API schon vorher aus Swift aufrufen. Eine URLSession, ein JSON-Body, ein bisschen SSE-Parsing für das Streaming, und Claude antwortet. Daran ist nichts neu, und für viele Apps bleibt der direkte API-Aufruf der richtige Weg.

Neu ist die Einbettung in die Session-Abstraktion des Frameworks. Der Claude-Aufruf sieht aus wie ein Foundation-Models-Aufruf: dieselbe Art, eine Session zu führen, dieselbe getypte Generable-Ausgabe, dasselbe Streaming-Interface in die View. Tool Calls und strukturierte Antworten sind verdrahtet, statt dass man sie pro Projekt von Hand zusammensteckt. Der Unterschied ist nicht „man kann Claude erreichen", sondern „Claude und das lokale Modell sehen aus der App heraus gleich aus". Und das ist die Voraussetzung für den nächsten Schritt.

Apples Framework wird providerneutral

Der Rahmen drumherum ist der eigentliche Schritt. Auf der WWDC 2026 hat Apple das Foundation Models Framework so geöffnet, dass sich der Provider hinter der Session austauschen lässt — Apples On-Device-Modell, Googles Gemini oder Anthropics Claude — über eine Swift-Package-Manager-Dependency, ohne Änderung an der Session-Logik oder dem Rest der App. Man prototypt lokal und entscheidet später, welcher Cloud-Anbieter die schweren Schritte übernimmt, indem man eine Abhängigkeit austauscht.

Damit verschiebt sich die Rolle des lokalen Modells. Es ist nicht mehr nur der günstige Allrounder, sondern auch die getypte Vorstufe und der Router: Es nimmt den rohen Input entgegen, formt ihn in eine @Generable-Struktur und entscheidet, ob die Anfrage lokal bleibt oder hochgereicht wird. Das Framework wird zur providerneutralen Front, die App-Logik bleibt vom konkreten Modell entkoppelt. Für Apple ist das strategisch bequem: Das Unternehmen muss nicht das beste Reasoning-Modell der Welt bauen, es muss nur die Schicht besitzen, durch die alle anderen Modelle hindurchmüssen.

Die Grenze verläuft beim Handoff

Eine Sache sollte man dabei nicht übersehen. Der Claude-Teil braucht einen Anthropic-API-Key, und mit der Übergabe verlässt der Inhalt das Gerät. Die On-Device-Stufe bleibt lokal — der Handoff nicht. Wer das Muster für sensible Daten nutzt, trifft genau an dieser Grenze eine Entscheidung, und zwar pro Request: bleibt das hier auf dem Gerät, oder geht es an einen Cloud-Anbieter?

Die getypte Vorstufe hilft dabei mehr, als es zunächst aussieht. Weil das lokale Modell den Rohtext bereits in eine definierte Struktur überführt, lässt sich kontrollieren, welche Felder überhaupt hochgereicht werden. Statt das komplette Tagebuch an die API zu schicken, geht nur die extrahierte Frage. Die Grenze ist nicht nur eine Datenschutz-Linie, sie ist auch eine Kostenlinie: Jeder lokale Schritt ist gratis und ohne Latenz, jeder Handoff kostet Tokens und einen Netzwerk-Roundtrip. Gutes Routing ist hier dasselbe wie gutes Datenschutz- und gutes Kostenmanagement.

Einordnung

Für mich ist das die relevantere Nachricht hinter der Ankündigung. Nicht „Claude lässt sich in Swift aufrufen" — das ging vorher auch. Sondern dass Apple die Übergabe zwischen lokalem und entferntem Modell zum dokumentierten Standardweg macht, mit getypten Grenzen dazwischen und einem austauschbaren Anbieter dahinter.

Das ist dieselbe Architekturfrage, die gerade überall auftaucht: nicht größere Modelle, sondern die saubere Verdrahtung zwischen ihnen. Wer wann welches Modell aufruft, wie der Übergang typisiert ist, wo die Daten die Grenze überschreiten — das sind die Entscheidungen, die eine App heute gut oder schlecht machen. Apple liefert dafür jetzt die Schiene. Welches Modell am Ende auf der anderen Seite steht, ist eine Zeile in der Dependency-Liste.