Siri Intent: Schlüsselkonzepte, SiriKit und Integration mit Siri

Autor: IT Sectr Veröffentlicht: 2026-02-15 Lesezeit: 9 Min.

Siri Intent ist ein Mechanismus zur Integration einer iOS-App mit dem Sprachassistenten Siri, der es Benutzern ermöglicht, Aktionen per Sprache auszuführen, ohne die App zu öffnen. Die Entwicklung erfolgt in Swift mit den Frameworks Intents (Intents.framework) und SiriKit. Ab iOS 16 erschien App Intents — ein neues, flexibleres Framework zum Erstellen benutzerdefinierter Sprachbefehle. Siri Intent unterstützt 10 Domänen (Nachrichten, Anrufe, Zahlungen, Notizen, Workouts und andere) und ermöglicht der App, Sprachanfragen über IntentHandler zu verarbeiten. Lassen Sie uns Schlüsselkonzepte, Architektur und Codebeispiele erkunden.

Das Wichtigste

  • Siri Intent — ein Sprachbefehl, der eine Aktion in einer App über Siri ausführt, ohne sie zu öffnen
  • SiriKit (iOS 10+) — ein Framework mit vordefinierten Domänen (Nachrichten, Anrufe, Zahlungen)
  • App Intents (iOS 16+) — ein neues Framework zum Erstellen beliebiger benutzerdefinierter Sprachbefehle
  • IntentHandler — ein Handler, der eine App-Aktion als Reaktion auf einen Siri-Sprachbefehl ausführt
  • INInteraction — ein Objekt, das das Ergebnis der Ausführung eines Intents darstellt, zum Lernen in Siri gespeichert

Was ist Siri Intent

Siri Intent ist ein Mechanismus, der einer iOS-App ermöglicht, vom Benutzer gesprochene Sprachbefehle über Siri zu verarbeiten. Wenn der Benutzer sagt “Siri, send a message to Ivan on Telegram,” Siri erkennt den Intent (INSendMessageIntent), identifiziert die App, die ihn verarbeiten kann (Telegram), übergibt die Parameter (contact “Ivan,” message text), und startet den IntentHandler der App. Der gesamte Vorgang dauert 0.5–2 seconds und erfordert kein Öffnen der App.

Die Architektur von Siri Intent umfasst drei Komponenten. Die erste ist die .intentdefinition-Datei, die die Intent-Struktur beschreibt: Parameter (String, Integer, INPerson), Trigger-Phrasen und Antworten. Die zweite ist IntentHandler, der das Handling-Protokoll implementiert: Parameter empfangen, die Aktion ausführen (z.B. eine Nachricht über die App-API senden) und eine INInteraction mit einem Ergebniscode zurückgeben. Die dritte ist Intents Extension, ein separates Target in Xcode, das in einem eigenen Prozess läuft. Siri startet die Intents Extension bei einer Sprachanfrage, übergibt ihr Daten und erhält das Ergebnis. Die Extension hat keine UI — sie läuft im Hintergrund und muss innerhalb von 5–10 Sekunden abgeschlossen sein.

Anwendungsfälle von Siri Intent: sending messages (INSendMessageIntent), making calls (INStartCallIntent), sending payments (INSendPaymentIntent), creating notes (INCreateNoteIntent), workouts (INStartWorkoutIntent), photos (INSucheForFotosIntent), booking trips (INBookRestaurantReservationIntent), car functions (INSetCarLockStatusIntent). Jede Domäne hat ein strenges Parameterschema und von Apple definierte Einschränkungen aus Sicherheitsgründen.

SiriKit: Architektur und Domänen

SiriKit ist ein von Apple in iOS 10 (2016) eingeführtes Framework. Es bietet vorgefertigte Domänen (Intents) für typische Aktionen: messages, calls, payments, notes, reminders, photos, workouts, booking, car functions, search. Für jede Domäne hat Apple eine Reihe von Intent-Klassen definiert (INSendMessageIntent, INStartCallIntent) die die App über IntentHandler implementiert. SiriKit generiert automatisch eine UI-Bestätigung vor der Ausführung (bei Zahlungen und Nachrichten ist Bestätigung obligatorisch).

SiriKit Domänen:

  • Nachrichten — INSendMessageIntent, INSucheForNachrichtenIntent, INSetMessageAttributeIntent
  • Anrufe — INStartCallIntent, INSucheForCallHistoryIntent
  • Zahlungen — INSendPaymentIntent, INRequestPaymentIntent
  • Notizen — INCreateNoteIntent, INSucheForNotizenIntent, INAddTasksIntent
  • Erinnerungen — INCreateTaskListIntent, INAddTasksIntent, INSetTaskAttributeIntent
  • Workouts — INStartWorkoutIntent, INPauseWorkoutIntent, INEndWorkoutIntent
  • Fotos — INSucheForFotosIntent, INStartPhotoPlaybackIntent
  • CarPlay — INSetCarLockStatusIntent, INGetCarLockStatusIntent
  • Suche — INSucheForNachrichtenIntent, INSucheForNotebookItemsIntent

SiriKit Einschränkungen: Entwickler können keine benutzerdefinierten Domänen erstellen — sie können nur vordefinierte verwenden. Diese Einschränkung wurde in iOS 16 mit der Einführung von App Intents gelöst, das die Erstellung beliebiger Sprachbefehle für beliebige App-Aktionen ermöglicht.

App Intents: das neue Framework

App Intents ist ein Apple-Framework, das in iOS 16 (2022) eingeführt und in iOS 17–18 erheblich erweitert wurde. Im Gegensatz zu SiriKit mit seinen festen Domänen ermöglicht App Intents Entwicklern, ihre eigenen Sprachbefehle für beliebige App-Aktionen zu definieren: “Siri, add milk to the shopping list in AnyList,” “Siri, schedule a meeting in Fantastical,” “Siri, turn on the living room light in Home.” Benutzerdefinierte Intents werden über das AppIntent-Protokoll mit Parametern, Phrasen und einem Bestätigungsschema definiert.

App Intents Komponenten:

  • AppIntent — ein Protokoll zum Beschreiben einer Aktion: title, description, parameters, perform()
  • IntentParameter — Befehlsparameter mit Typen (String, Int, URL, Entity, Measurement)
  • IntentDialog — Dialoge für Siri: Bestätigungsanfrage, Erfolgs- oder Fehlerantwort
  • WidgetIntent — eine Teilmenge von App Intents zur Behandlung von Widget-Taps (iOS 17+)
  • Shortcuts — App Intents integriert sich automatisch mit der Shortcuts-App

App Intents vs SiriKit: der Hauptunterschied ist die Flexibilität. SiriKit ist auf 10 Domänen beschränkt, App Intents ermöglicht das Erstellen beliebiger Befehle. SiriKit benötigt ein separates Intents Extension-Target, App Intents funktioniert innerhalb der Haupt-App. SiriKit verwendet Intents.framework (Objective-C/Swift), App Intents verwendet eine neue deklarative Swift-Syntax mit @Intent- und @Parameter-Makros. Laut Apple wird App Intents in 70% der neuen Projekte mit Siri-Unterstützung ab 2025 verwendet.

Codebeispiel: Swift Intents

Ein Beispiel zum Erstellen eines benutzerdefinierten App Intents zum Hinzufügen einer Notiz in der App. Demonstriert den modernen Ansatz mit dem App Intents Framework in iOS 16+.

swift
import AppIntents

// 1. Benutzerdefinierter Intent zum Hinzufügen einer Notiz
struct AddNoteIntent: AppIntent {
    // Befehlsname (sichtbar in Shortcuts)
    static var title: LocalizedStringResource = "Notiz hinzufügen"

    // Befehlsbeschreibung
    static var description: LocalizedStringResource = "Erstellt eine neue Notiz in der App"

    // Befehlsparameter
    @Parameter(title: "Notiztext")
    var noteContent: String

    @Parameter(title: "Kategorie", default: "Allgemein")
    var category: String

    // Ausführen der Aktion
    func perform() async throws -> some IntentResult {
        // Erstellen einer Notiz über den lokalen Speicher
        let note = Note(content: noteContent, category: category)
        try await NoteStore.shared.save(note)

        // Ergebnis mit einem Dialog für Siri zurückgeben
        return .result(
            dialog: .response("Notiz "(noteContent)" erstellt")
        )
    }
}

// 2. App Shortcut Provider — Registrieren von Befehlen
struct NotesShortcuts: AppShortcutsProvider {
    @AppShortcutsBuilder
    static var appShortcuts: [AppShortcut] {
        AppShortcut(
            intent: AddNoteIntent(),
            phrases: [
                "Notiz zu (.applicationName) hinzufügen",
                "Notiz mit (.$noteContent) in (.applicationName) erstellen",
                "(.$noteContent) in (.applicationName) schreiben",
            ]
        )
    }
}

// 3. SiriKit Intent für Nachrichten (klassischer Ansatz)
class MessageIntentHandler: NSObject, INSendMessageIntentHandling {

    func resolveRecipients(
        for intent: INSendMessageIntent,
        completion: @escaping ([INPersonResolutionResult]) -> Void
    ) {
        guard let recipients = intent.recipients else {
            completion([.needsRequired()])
            return
        }
        // Kontakte über das Adressbuch der App auflösen
        let results = recipients.map { INPersonResolutionResult.success(with: $0) }
        completion(results)
    }

    func handle(
        intent: INSendMessageIntent,
        completion: @escaping (INSendMessageIntentResponse) -> Void
    ) {
        // Nachricht über die App-API senden
        let response = INSendMessageIntentResponse(
            code: .success, userActivity: nil
        )
        completion(response)
    }
}

Wichtige Punkte: AppIntent — Protokoll für benutzerdefinierte Sprachbefehle; @Parameter — Makro zur Definition von Befehlsparametern; perform() — Methode, die die Aktion ausführt und ein Ergebnis mit einem Dialog für Siri zurückgibt; AppShortcutsProvider — registriert die Befehle der App in Siri und Shortcuts; INSendMessageIntentHandling — SiriKit-Protokoll zur Behandlung der Nachrichtendomäne. Trigger-Phrasen werden über .applicationName und \.$parameter für Variabilität festgelegt.

Empfehlungen und Einschränkungen

Empfehlungen zum Erstellen von Siri Intents: definieren Sie klare Trigger-Phrasen mit Aussprachevarianten; geben Sie einen informativen Dialog nach der Ausführung zurück (Erfolg/Fehler); behandeln Sie Fälle unvollständiger Parameter durch resolve-Methoden mit Klärungsanfragen; speichern Sie INInteraction nach der Ausführung für Siri-Lernen; testen Sie auf einem echten Gerät (der Simulator unterstützt Siri nicht). Für App Intents verwenden Sie @Intent mit inAppSucheKeywords zur Verbesserung der Erkennung.

Limitations: SiriKit Intents sind auf 10 Domänen beschränkt. Intents Extension läuft mit einem 5–10-Sekunden-Limit — bei Überschreitung meldet Siri einen Fehler. Siri Intent hat keine UI — die gesamte Oberfläche wird von Siri generiert. App Intents ist nur auf iOS 16+ verfügbar (~85% Geräteabdeckung ab 2026). Zur Unterstützung von iOS 13–15 muss SiriKit verwendet werden. Datenschutz: Siri überträgt keine Audioaufnahmen an die App — nur den erkannten Parametertext. Für sensible Aktionen (Zahlungen, Nachrichten) ist die Bestätigung des Benutzers obligatorisch.

ParameterSiriKitApp Intents
Minimum iOSiOS 10iOS 16
Domains10 predefinedArbitrary
LanguageObjective-C / SwiftSwift (macros)
TargetIntents ExtensionMain app
UISiri UI (generation)Siri UI (generation)
ConfirmationFor payments/messagesOptional
ShortcutsManualAutomatic
Widget integrationNoWidgetIntent (iOS 17+)

Performance and debugging: Intents Extension läuft in einem separaten Prozess mit einem Speicherlimit von 30–50 MB. Verwenden Sie zum Debuggen das Schema «Intents Extension» in Xcode, das an den Siri-Prozess angehängt ist. Protokolle werden auf der Gerätekonsole ausgegeben. App Intents wird über die Shortcuts-App auf dem Gerät debuggt. INInteraction wird lokal gespeichert und von Siri für Vorschläge verwendet — löschen Sie veraltete Interaktionen über INInteraction delete.

Häufig gestellte Fragen

Was ist Siri Intent in simple words?

Siri Intent ist ein Sprachbefehl, der eine bestimmte Aktion in einer App auslöst, ohne sie zu öffnen. Der Benutzer sagt «Siri, sende eine Nachricht auf WhatsApp» und Siri führt die Aktion über den IntentHandler of the WhatsApp app.

Wie unterscheidet sich SiriKit von App Intents?

SiriKit (iOS 10+) ist ein älteres Framework mit vordefinierten Domänen (Nachrichten, Anrufe, Zahlungen). App Intents (iOS 16+) is a new framework that allows creating custom intents for any actions without domain limitations.

Welche Domänen unterstützt SiriKit?

SiriKit unterstützt 10 Domänen: messages (INSendMessageIntent), calls (INStartCallIntent), payments (INSendPaymentIntent), notes, reminders, photos, workouts, trip booking, car functions, and search.

Wie verarbeitet Siri Intent Spracheingabe?

Siri erkennt Sprache und ordnet sie einem bestimmten Intent basierend auf in .intentdefinition definierten Phrasen zu. IntentHandler führt die Aktion aus und gibt das Ergebnis zurück. Der gesamte Vorgang dauert 0.5–2 seconds.

Kann die Ausführung von Siri Intent abgebrochen werden?

Ja, nach dem Erkennen des Intents aber vor der Ausführung zeigt Siri dem Benutzer eine Bestätigung. Der Benutzer kann die Ausführung per Sprache («Abbrechen») oder durch Berührung abbrechen. Bei Zahlungen und Nachrichten ist die Bestätigung obligatorisch.

Summary

  • Siri Intent — ein Mechanismus zur Integration einer App mit Siri über Sprachbefehle ohne Öffnen des Bildschirms
  • SiriKit (iOS 10+) — ein Framework mit 10 festen Domänen (Nachrichten, Anrufe, Zahlungen) über Intents Extension
  • App Intents (iOS 16+) — ein neues Framework für beliebige benutzerdefinierte Befehle mit @Intent- und @Parameter-Makros
  • IntentHandler — führt die App-Aktion aus, empfängt Parameter von Siri und gibt eine INInteraction mit dem Ergebnis zurück
  • Trigger phrases are set via .intentdefinition (SiriKit) or @AppShortcutsBuilder (App Intents)
  • Limitations — Ausführungslimit von 5–10 Sekunden, Speicher 30–50 MB, Bestätigung für sensible Aktionen
  • App Intents — bevorzugter Ansatz für iOS 16+, SiriKit — zur Unterstützung von iOS 13–15

Wir entwickeln eine mobile Applikation schlüsselfertig

IT Sectr entwickelt seit 2017 iOS- und Android-Apps für Startups und Unternehmen. Wir beraten Sie und schlagen die beste Lösung vor.

Projekt besprechen

Lesen Sie auch