← Retour au blog
Analyse

Qu'est-ce qu'Apple Intelligence ? Siri AI, AI Agent, JSON et données structurées : analyse complète

Publié le 09/09/2026 Dernière mise à jour le 09/09/2026 Environ 13 min Boîte à outils JSON

Comment lire cet article

Apple Intelligence, ce n'est pas coller une fenêtre de chat dans Réglages. C'est une intelligence personnelle au niveau système : modèles on-device, Private Cloud Compute, et un contrat partagé par Siri / Shortcuts / Spotlight. Ce texte est daté du 2026-09-09 : on ne parie pas sur le nom produit de la prochaine keynote. D'abord ce que c'est, puis comment Siri AI agit via App Intents, comment @Generable des Foundation Models compile en JSON Schema, enfin un JSON d'intention que l'on peut valider. La définition du Structured Output : Qu'est-ce que le Structured Output ; la boucle d'outils côté Agent : DevDay 2026 Agent.

La WWDC 2024 a écrit Apple Intelligence dans le système pour la première fois. En 2026, ça couvre déjà iPhone, iPad, Mac, Apple Watch et Vision Pro. En surface : réécriture, résumé, Genmoji, Image Playground, Visual Intelligence. En dessous, autre chose : le contexte personnel, les actions d'app, la perception de l'écran — tout doit pouvoir être rattrapé par un programme. Pour choisir un modèle phare cloud, voir Guerre des modèles 2026. La ligne Apple ne se bat pas sur le nombre de paramètres de ce classement. Elle se bat sur autre chose : une fois la phrase dite, le système peut-il rendre un objet typé, plutôt qu'un français qui sonne bien.

Ce que c'est vraiment

Selon la page développeur d'Apple, Apple Intelligence est un système d'intelligence personnelle, porté par la nouvelle génération d'Apple Foundation Models, et qui fait trois choses : comprendre le contexte personnel, exécuter des actions dans les apps, percevoir ce qui est à l'écran. Ce n'est pas une App de chat à télécharger à part, ni un interrupteur « ouvrez Réglages et ça devient ChatGPT ».

Trois choses doivent tenir en même temps, sinon ce n'est pas Apple Intelligence, c'est une démo de modèle :

  1. Le modèle est dans le système, pas dans une page web. On-device, ce sont les Apple Foundation Models ; trop gros ou multimodal, ça passe par Private Cloud Compute. En 2026, le framework Foundation Models accepte aussi des paquets externes conformes au protocole Language Model — la doc nomme clairement Claude, Gemini et d'autres modèles cloud.
  2. Les capacités s'enregistrent ; on ne mise pas sur le prompt. L'App écrit contenus et actions en App Intents Schema. Siri, Shortcuts et Spotlight lisent la même structure. Vous n'avez plus à maintenir une table du genre « Dis Siri, crée un événement avec telle App ».
  3. La sortie doit pouvoir être rattrapée par le saut suivant. Une phrase destinée à l'humain peut exister. Écrire dans le calendrier, envoyer un message, modifier la photo à l'écran : ça doit être des entités et des paramètres, pas « vers mardi prochain dans l'après-midi ».

Intelligence personnelle ≠ une plus grande fenêtre de chat. Les phares cloud se battent sur le raisonnement général. Apple se bat sur autre chose : ce contexte quitte-t-il l'appareil, cette action a-t-elle un Schema, l'utilisateur a-t-il confirmé. Le discours privacy et la couche contrat, c'est la même chose.

Trois couches : on-device, cloud, entrées système

Sous le même nom de marque, il y a vraiment trois couches. Les mélanger, et l'on a l'impression que « Siri ressemble parfois à un Agent, parfois à un outil de réécriture ».

Couche Où ça tourne Ce que le programme reçoit
Foundation Models Appareil, ou Private Cloud Compute Texte, ou un objet Swift contraint par @Generable
App Intents Bus système Entité + intention + paramètres ; Siri / Shortcuts / Spotlight partagent
Siri / Shortcuts / Visual Intelligence Entrée utilisateur Langage naturel en entrée, action structurée en sortie

Image Playground, Write with Siri, Genmoji sont des fonctions de la couche d'entrée. Ce que le développeur écrit vraiment, c'est le contrat du milieu, et, au besoin, une session Foundation Models appelée en direct. Dynamic Profiles permet de changer de modèle, d'outils, d'instructions dans la même session ; le framework Evaluations recette sous conditions dynamiques, plutôt que de miser sur une démo.

Du langage naturel à App Intent / Generable, puis au JSON métier Une phrase entre dans le Schema partagé, passe par les App Intents de Siri ou @Generable des Foundation Models, et produit le même objet validable. Une phrase Siri / Shortcuts Schema partagé Entité + intention Siri / @Generable Échantillonnage contraint Objet métier Revérifier
Changer d'entrée change la surface, pas les champs. App Intents et @Generable sont deux enveloppes ; ce qui se partage, c'est l'objet typé.

Siri AI : la fin de l'ère des mots de réveil

L'ancien Siri, c'était une table de phrases plus de la regex. Le nouveau Siri (la doc développeur Apple écrit Siri AI) mange du Schema. Vous n'avez pas à écrire « Hey Siri, crée une réunion avec Calendrier » pour chaque formulation. Le système s'est déjà entraîné des années sur ces domaines : agenda, photos, messages, tâches. L'App déclare seulement à quel domaine elle appartient, quelles entités elle a, quelles intentions elle sait faire.

1. App Intents, c'est le contrat

Le framework App Intents branche l'App sur Apple Intelligence. Deux Schema, deux rôles :

  • Entity Schema décrit le contenu. Les entités IndexedEntity sont versées dans l'index sémantique Spotlight : le système peut citer votre App avec attribution, au lieu de cracher un résumé sans source.
  • Intent Schema décrit l'action. Créer un événement, envoyer un message, ouvrir un détail : ce sont des paramètres typés, pas du texte libre. Quand la compréhension linguistique et les dialectes s'étendent, vous ne touchez pas au code.

C'est le même genre de problème que le Function Calling cloud ; l'enveloppe change. OpenAI écrit les paramètres d'outil en JSON Schema ; Claude en input_schema ; Apple en calendar_createEvent, system.open dans un domaine système. L'utilisateur entend « réserve-moi la revue demain après-midi » ; l'App calendrier reçoit titre, heure de début, durée, participants — les champs doivent être là, les types doivent coller.

WWDC 2026 a aussi complété le front de test : App Intents Testing passe par les vrais chemins système pour recetter Siri, Shortcuts, Spotlight, plus besoin d'écrire une automatisation d'UI pour parier sur le mot de réveil.

2. Le « ça » à l'écran a aussi besoin d'une entité

Enregistrer les intentions ne suffit pas. L'utilisateur pointe l'écran : « décale ça à jeudi », « réponds au deuxième ». Sans liaison, Siri ne peut que deviner. L'API View Annotations marque les vues visibles sur une entité : ce message est un MessageEntity, ce lieu est un PlaceDescriptor. La référence a un objet ; l'intention a des paramètres.

ValueRepresentation fait circuler l'entité entre Apps avec une structure que le système connaît — par exemple remettre un lieu à Plans pour naviguer, plutôt qu'exporter une chaîne sans type. EntityCollection évite, pour taguer mille photos, de tout résoudre d'abord entité par entité : l'intention reçoit un ensemble d'identifiants, pas une liste en prose.

Pouvoir exécuter n'enlève pas la confirmation. WWDC 2026 a écrit l'injection de prompt indirecte et les mauvaises manipulations comme des fronts à traiter : le « Confirmer l'envoi ? » avant un message n'est pas de la politesse, c'est un sas. Le Schema garantit la forme ; la confirmation garantit que l'action quitte l'appareil.

Est-ce un AI Agent ?

Apple n'a pas empaqueté Siri en « produit Agent » vendu à part. Dans le comportement, c'est déjà une boucle Agent : comprendre l'objectif → choisir un ou plusieurs Intent → remplir les paramètres → clarifier si besoin → confirmation utilisateur → exécuter → rendre le résultat comme entité. Shortcuts va plus loin : assembler une automatisation multi-étapes en langage naturel. Les Apps qui adoptent App Intents entrent dans ce workflow ; à côté, des actions système du type « Use Model ».

Face à l'Agent cloud, l'écart est le bus, pas le besoin de structurer :

  • Chemin cloud courant : le modèle choisit un outil, les paramètres passent par un JSON Schema, le runtime peut être le JSON-RPC de MCP. La page MCP Tool de ce site écrit précisément ce contrat.
  • Chemin Apple : le modèle (ou Siri) choisit un Intent système, les paramètres passent par le Schema de domaine ; une session on-device peut aussi accrocher un Tool personnalisé aux Foundation Models.

Ni l'un ni l'autre n'est « encore un morceau de français ». Champ manquant, type qui dérive, enum qui s'envole : la boucle s'arrête, ou elle écrit de la donnée sale dans le calendrier. L'article DevDay a déjà découpé la boucle cloud ; celui-ci ajoute la même boucle écrite sur le bus système. Combien coûtent entraînement et inférence : Combien coûte l'entraînement d'un grand modèle — le modèle on-device retire une part d'inférence de la facture Token ; la couche contrat ne disparaît pas.

@Generable : sous le type Swift, du JSON Schema

Le framework Foundation Models est une API Swift native. Pour le texte libre, LanguageModelSession.respond suffit. Une fonction de production — champs de recette, ticket, lieu extrait d'une photo — veut un objet. Chez Apple, ça ne s'appelle pas « renvoyez du JSON », ça s'appelle Guided Generation :

  1. Ajoutez @Generable à la structure ou à l'enum.
  2. S'il faut contraindre, ajoutez @Guide à la propriété : description, quantité, plage, regex.
  3. Appelez session.respond(to:generating:). Le framework génère par échantillonnage contraint, puis parse vers votre type Swift.

La doc Apple le dit sans détour : pour chaque type Generable, le framework convertit type et format en JSON Schema et le remet au modèle. Le Schema mange de la fenêtre de contexte. Noms de propriétés courts, descriptions @Guide à omettre si elles n'apportent rien, tâches complexes découpées en plusieurs sessions — sinon vous prenez un contextSizeExceeded. Quand la forme n'est connue qu'à l'exécution, prenez DynamicGenerationSchema ; ne faites pas semblant que le type compile-time suffit.

C'est la même voie technique que les Structured Outputs de GPT, le responseSchema de Gemini, le output_config de Claude : le décodage contraint garantit la forme. L'écart, c'est l'enveloppe. Les trois mettent le Schema dans le corps HTTP ; Apple le compile depuis une macro Swift : au quotidien, le développeur touche un type, pas des accolades. Dans les logs, les évaluations, la sync inter-environnements, vers votre propre backend : l'objet doit encore pouvoir être rattrapé par un parseur JSON et un JSON Schema. Pourquoi le contrat choisit le JSON : Pourquoi l'IA aime le JSON.

Le streaming est structuré lui aussi. Le framework génère un type compagnon PartiallyGenerated : les champs commencent optionnels, puis se remplissent un par un. L'UI met à jour les champs de l'objet, pas un Markdown qui s'allonge.

Comment ça se compare à GPT / Claude / Gemini / MCP

Ce qu'elles aiment, c'est le même objet, pas le même corps de requête. Écrivez l'enveloppe dans la doc, laissez les champs dans un fichier partagé.

Plateforme Entrée destinée à l'humain Comment s'écrit le contrat Où a lieu la contrainte
OpenAI ChatGPT / Responses API response_format / text.format + JSON Schema Décodeur côté serveur
Claude Claude App / Messages API output_config / outil input_schema À la génération + SDK parse()
Gemini Gemini App / GenerateContent response_mime_type + responseSchema À la génération, sous-ensemble Schema plus étroit
MCP Runtime Agent JSON-RPC + Schema des paramètres d'outil Validation au runtime
Apple Intelligence Siri / Shortcuts / session on-device Schema de domaine App Intent, ou @Generable → JSON Schema Échantillonnage contraint + confirmation système

Ce qui se partage : les champs — enum, obligatoires, booléens, formats de date, additionalProperties: false. Ce qui ne se partage pas : l'enveloppe. Générez le premier Schema depuis le même échantillon, puis branchez-le sur les trois interfaces HTTP, un outil MCP, et le type Swift que vous mapperez vers @Generable. Le tutoriel : Générer un Structured Output depuis un échantillon.

Un échantillon d'intention validable

Ce n'est pas le corps de requête privé d'Apple ; c'est l'objet métier que les trois couches devraient aligner quand « Siri doit créer un événement ». Énumérations en chaînes, durée en number, confirmation en boolean. Le @Generable on-device peut produire la même forme ; les paramètres calendar_createEvent de l'App Intent s'alignent aussi sur ces champs.

{
  "source": "apple_intelligence",
  "surface": "siri",
  "intent": {
    "domain": "calendar",
    "schema": "calendar_createEvent",
    "confirmed": true
  },
  "event": {
    "title": "Schema review",
    "starts_on": "2026-09-09",
    "starts_at": "14:00",
    "duration_min": 45,
    "location": "Example Labs",
    "attendees": [
      "alex@example.com"
    ]
  },
  "context": {
    "device": "iphone",
    "on_device": true,
    "on_screen_ref": "this event"
  },
  "confidence": 0.91,
  "needs_confirmation": false
}

Selon les règles d'inférence actuelles du site, cet échantillon donne :

Champ Type inféré À faire après génération
source / surface / domain / schema string Refermez en enum, ne laissez pas un texte libre du genre « siri à peu près »
duration_min / confidence number Écrire "45" dérive en string ; ajoutez une borne 0–1 à confidence
confirmed / on_device / needs_confirmation boolean L'échantillon doit être true / false ; le sas et la forme sont deux choses
attendees array of string S'il faut des participants structurés, passez en tableau d'objets et ajoutez un enum status
starts_on string Ajoutez format: date ; ne laissez pas le modèle sortir « mardi prochain »

Échantillon prêt : ouvrez Structured Output pour générer les trois enveloppes OpenAI / Claude / Gemini, puis relisez à la main required et additionalProperties. Le même objet peut aussi devenir un outil, via Function Calling ou MCP Tool : le modèle ne « parle pas d'une réunion », il soumet une intention qui doit pouvoir se valider.

Recetter dans la Boîte à outils JSON

  1. Collez l'échantillon ci-dessus dans le formatage JSON, pour confirmer que ça parse.
  2. Générez le brouillon avec Structured Output ou JSON → Schema. C'est l'étape que @Generable fait pour vous à la compilation, juste dans une autre langue.
  3. Un second jeu de sorties réelles — Siri se trompe de durée, écrit « jeudi » en date relative — passe en validation Schema. Le premier échantillon est toujours trop propre.
  4. Quand vous alignez l'objet on-device sur une trace d'Agent cloud, utilisez la Comparaison JSON pour voir si un champ a disparu ou si un type a dérivé.
  5. Validation front : Zod ; doc d'API si besoin : OpenAPI 3.1.

Tout se traite dans le navigateur, rien n'est envoyé au serveur.

FAQ

Apple Intelligence, c'est ChatGPT dans l'iPhone ?

Non. C'est une intelligence personnelle au niveau système : modèles on-device, Private Cloud Compute, et le contrat App Intents partagé par Siri / Shortcuts / Spotlight. Le chat n'est qu'une surface.

Comment Siri AI appelle-t-elle une App tierce ?

Via App Intents. Les entités vont dans l'index sémantique Spotlight ; les intentions laissent le langage naturel agir directement. Les références à l'écran se lient à une entité via View Annotations.

La sortie structurée d'Apple, c'est du JSON ?

Le développeur écrit des types Swift et @Generable. Le framework compile en JSON Schema, puis génère par échantillonnage contraint. En inter-environnements, logs, évaluations, la couche contrat reste objet plus Schema.

Est-ce un AI Agent ?

Siri est l'entrée, pas un SKU Agent vendu à part. La boucle : comprendre → choisir un Intent → remplir les paramètres → confirmer → exécuter. Shortcuts peut encore assembler plusieurs étapes. L'entrée et la sortie sont des entités et des intentions.

Comment ça se compare au Structured Output de GPT / Claude / Gemini ?

Les trois écrivent le Schema dans HTTP. Apple l'écrit dans les macros et le domaine système. Les champs se comparent ; les enveloppes ne se partagent pas. Le contrat pousse depuis le même échantillon.

En résumé

Apple Intelligence est un système d'intelligence personnelle, pas une peau de chat. Siri AI comprend le contenu et exécute des actions via le Schema App Intents ; View Annotations transforme « ça » en entité. @Generable des Foundation Models compile du JSON Schema en dessous ; l'échantillonnage contraint garantit la forme. La boucle Agent — choisir un outil, remplir les paramètres, confirmer, exécuter — est le même genre de problème que le Function Calling / MCP cloud. Ce qui survit à la mise à jour système de la semaine suivante, ce sont les entités, les intentions et les champs, pas le mot de réveil dans le prompt. Un seul échantillon fait pousser le contrat ; validation, Zod, OpenAPI, et le type Swift que vous mapperez, le suivent.