iOS 27 expands App Intents to deeply integrate with Siri's on-device language model, enabling natural-language invocation of app actions with richer parameter resolution and multi-step task chaining. Apps can now expose capabilities that Siri understands contextually without rigid phrase matching.
⢠New @AssistantIntent macro replaces boilerplate AppIntent+AssistantSchema conformances from iOS 26
⢠Parameter resolution now uses the on-device Foundation Models LLM for fuzzy matching instead of strict enum binding
⢠Intents can return structured values consumed by downstream Siri actions via the new ReturnsValue protocol
⢠AssistantEntity replaces the older AppEntity+AssistantSchemaProtocol pattern for entities surfaced to Siri
⢠Siri can now infer intent parameters from conversation context, eliminating the need for users to speak exact trigger phrases
⢠App Intents can be chained by Siri across multiple apps in a single request, enabling powerful cross-app automation
⢠Developers get built-in confirmation dialogs, disambiguation UI, and streaming response support without writing custom Siri UI code
Demonstrates an App Intent that lets Siri create a task with natural-language due-date parsing and priority inference, using the new @AssistantIntent macro and ReturnsValue protocol introduced in iOS 27.
import AppIntentsimport Foundationā// Pre-iOS 27: manual AssistantSchema conformance, no @AssistantIntent macro+// MARK: - Entityāstruct LegacyTask: AppEntity, AssistantSchemaProtocol {+struct Task: AppEntity {static var typeDisplayRepresentation = TypeDisplayRepresentation(name: "Task")ā static var defaultQuery = LegacyTaskQuery()ā static var assistantSchema: AssistantSchema = .system.entity+ static var defaultQuery = TaskQuery()var id: UUIDvar title: Stringvar dueDate: Date?ā var priority: LegacyTaskPriority+ var priority: TaskPriorityvar displayRepresentation: DisplayRepresentation {ā DisplayRepresentation(title: "\(title)")+ DisplayRepresentation(title: "\(title)",+ subtitle: priority.rawValue)}}āenum LegacyTaskPriority: String, AppEnum {+enum TaskPriority: String, AppEnum {case low, medium, highstatic var typeDisplayRepresentation = TypeDisplayRepresentation(name: "Priority")ā static var caseDisplayRepresentations: [LegacyTaskPriority: DisplayRepresentation] = [+ static var caseDisplayRepresentations: [TaskPriority: DisplayRepresentation] = [.low: "Low", .medium: "Medium", .high: "High"]}āstruct LegacyTaskQuery: EntityQuery {ā func entities(for ids: [UUID]) async throws -> [LegacyTask] { [] }+struct TaskQuery: EntityQuery {+ func entities(for ids: [UUID]) async throws -> [Task] { [] }}ā// Pre-iOS 27: manual AssistantSchema conformance on the intent itselfāstruct LegacyCreateTaskIntent: AppIntent, AssistantSchemaProtocol {ā static var assistantSchema: AssistantSchema = .system.createTask+// MARK: - Intent (iOS 27 style)++@AssistantIntent(schema: .system.createTask)+struct CreateTaskIntent: AppIntent {static var title: LocalizedStringResource = "Create Task"+ static var description = IntentDescription("Creates a new task with optional due date and priority.")ā @Parameter(title: "Title") var title: Stringā @Parameter(title: "Due Date") var dueDate: Date?ā // No fuzzy LLM matching ā user must say exact enum valuesā @Parameter(title: "Priority") var priority: LegacyTaskPriority+ @Parameter(title: "Title")+ var title: Stringā // Pre-iOS 27: no ReturnsValue chaining; Siri cannot pass result to next actionā func perform() async throws -> some ProvidesDialog {ā let _ = LegacyTask(id: UUID(), title: title, dueDate: dueDate, priority: priority)ā return .result(dialog: "Task created.")+ @Parameter(title: "Due Date")+ var dueDate: Date?++ // iOS 27: Siri infers this from natural language (e.g. "urgent" ā .high)+ @Parameter(title: "Priority", default: .medium)+ var priority: TaskPriority++ // iOS 27: structured return value Siri can chain into follow-up actions+ func perform() async throws -> some ReturnsValue<Task> & ProvidesDialog {+ let newTask = Task(+ id: UUID(),+ title: title,+ dueDate: dueDate,+ priority: priority+ )+ // Persist task to your store here+ return .result(+ value: newTask,+ dialog: "Created '\(title)' with \(priority.rawValue) priority."+ )}}āstruct LegacyTaskShortcuts: AppShortcutsProvider {+// MARK: - App Shortcuts (makes intent discoverable by Siri without setup)++struct TaskShortcuts: AppShortcutsProvider {static var appShortcuts: [AppShortcut] {AppShortcut(ā intent: LegacyCreateTaskIntent(),ā phrases: ["Create a task in \(.applicationName)"],+ intent: CreateTaskIntent(),+ phrases: [+ "Create a task in \(.applicationName)",+ "Add \(\.$title) to \(.applicationName)",+ "Remind me to \(\.$title) in \(.applicationName)"+ ],shortTitle: "Create Task",systemImageName: "checkmark.circle")}}
Foundation Models is a new Apple framework introduced in iOS 27 that gives developers on-device access to the same Apple Intelligence language model powering system features, enabling text generation, structured output, and tool-calling entirely on-device without a network connection.
iOS 27 opens the Foundation Models framework to third-party LLM providers via a new public LanguageModel protocol, enabling anyone to integrate custom, server-based, or open-source models using the same Swift API as Apple's on-device system model.
App Schemas let developers describe their app's content and actions using pre-defined domain schemas (like the Calendar domain) so Siri can understand, search, and act on app data without custom NLP. Entities conforming to IndexedEntity are donated to Spotlight's semantic index, enabling natural-language queries over app content.
In-depth guide
iOS 27 On-Device AI & Apple Intelligence āIntents must be re-indexed after code changes during beta; AssistantSchema conformance is required for Siri's on-device model to discover new intents ā forgetting the @AssistantIntent macro is the most common pitfall. PerformResult now requires explicit ReturnsValue conformance for chained intents.
Full natural-language parameter resolution requires Apple Intelligence-capable devices (A17 Pro / M1 or later); basic intent invocation works on all iOS 27 devices
Visual Intelligence brings iOS 17's Visual Look Up capabilities to a new developer-facing API surface in iOS 27, letting apps pipe live camera frames or static images through on-device scene understanding to extract subjects, text, barcodes, and rich semantic labels without any cloud round-trip.