Auteur : Boxu Li 

Introduction

L'une des caractéristiques les plus remarquables de Macaron AI est sa capacité à générer des mini-applications personnalisées instantanément. Lors d'une conversation ordinaire, un utilisateur peut exprimer un besoin—suivre un budget familial, planifier un itinéraire de festival, apprendre une nouvelle langue—et Macaron assemblera un outil complet en quelques minutes. Certaines de ces mini-apps dépassent les 100 000 lignes de code, et pourtant elles sont générées sans intervention humaine. Pour les utilisateurs japonais et coréens, cela signifie recevoir des outils personnalisés adaptés aux coutumes et réglementations locales. Ce blog dissèque le pipeline de synthèse de code autonome alimentant les mini-apps de Macaron, couvrant la compréhension de l'intention, la synthèse de programme, l'exécution en bac à sable, la gestion des erreurs et les mesures de sécurité. Nous examinons comment le système gère la complexité, s'intègre aux API externes, respecte les lois régionales, et utilise l'apprentissage par renforcement pour affiner ses résultats.

1 De la langue naturelle à la spécification du programme

1.1 Analyse de l'intention et extraction des slots

Lorsqu'un utilisateur demande une application, Macaron commence par analyser l'entrée en langage naturel pour construire une spécification d'intention structurée. Cela implique d'identifier des paramètres tels que le domaine (finance, éducation, cuisine), les fonctionnalités souhaitées (catégories de budget, alertes), les contraintes (monnaie, langue) et le calendrier. Pour les langues japonaise et coréenne, le parseur gère les honorifiques et les ellipses. Par exemple, une demande japonaise comme «家計簿を作りたいんだけど、食費を細かく分けて» (Je veux créer un livre de comptes ménagers avec des dépenses alimentaires détaillées) donne le domaine «budgétisation», la fonctionnalité «catégories alimentaires détaillées» et la contrainte «yen japonais». Une demande coréenne «가족 여행 일정을 계획해줘, 한식 식당 추천도» (Planifie un emploi du temps pour un voyage familial et recommande des restaurants coréens) donne le domaine «planification de voyage», la fonctionnalité «recommandations de restaurants» et une contrainte culturelle.

Macaron utilise une architecture à double encodeur : un encodeur traite la conversation actuelle, et un autre traite la mémoire de l'utilisateur. Les deux vecteurs sont combinés via l'attention pour produire une représentation unifiée de l'intention. L'apprentissage par renforcement affine le parseur pour extraire les bons paramètres. Les retours proviennent du fait que la mini-application résultante répond ou non aux attentes de l'utilisateur ; si ce n'est pas le cas, les paramètres du parseur sont mis à jour.

1.2 Synthèse de programmes avec des bibliothèques et modèles de domaine

Une fois que l'intention est structurée, le moteur de synthèse de Macaron génère du code en composant des fonctions à partir d'une bibliothèque de modules spécifiques au domaine. Les modules incluent des fonctions de budgétisation (calcul des dépenses, génération de graphiques), des fonctions de planification (intégration de calendriers, résolution de conflits), des algorithmes d'apprentissage des langues (répétition espacée) et une assistance culinaire (conversion d'ingrédients, analyse nutritionnelle). Le moteur sélectionne les modules, les configure et les assemble pour former un programme cohérent. Les modèles contiennent des structures graphiques (DAG) qui définissent le flux de données entre les modules, permettant la concurrence et les opérations asynchrones. Par exemple, une application de budgétisation japonaise pourrait exécuter des tâches de résumé mensuel et d'alerte hebdomadaire en parallèle.

Le moteur de synthèse utilise des modèles de synthèse de programmes neuronaux formés sur du code open-source et des exemples propriétaires. Il exploite également le raisonnement symbolique : des contraintes telles que « Ne pas dépasser le budget total » sont représentées par des inégalités linéaires et transmises à un solveur de contraintes. Cette approche hybride améliore la fiabilité par rapport à la génération neuronale pure. L'apprentissage par renforcement surveille la satisfaction des utilisateurs et les taux d'erreur pour ajuster la sélection et l'ordre des modules.

1.3 Exigences localisées et contraintes réglementaires

Les régulations japonaises et coréennes imposent des exigences spécifiques sur la gestion des données financières et personnelles. Par exemple, la loi japonaise sur la vie privée exige que les données comptables des ménages ne soient pas transmises à des tiers sans consentement. La loi coréenne sur la protection des informations personnelles impose des exigences strictes sur l'anonymisation des données. Lors de la création d'un outil de budgétisation, Macaron consulte ses règles de liaison de politique pour garantir que les données sensibles sont stockées localement et ne sont jamais envoyées à des serveurs externes. Le générateur de code insère des appels aux bibliothèques de chiffrement et désactive l'accès réseau par défaut. Pour les applications de santé, Macaron vérifie avec la loi-cadre sur l'IA que les décisions impliquant des conseils médicaux sont accompagnées d'une supervision humaine.

2 Environnement d'exécution sécurisé

2.1 Bac à sable et limites de ressources

L'exécution de code arbitraire généré à la demande présente des risques de sécurité significatifs. Macaron exécute donc les mini-apps dans un environnement sandbox rappelant les interpréteurs de code modernes. Le sandbox limite l'accès au système de fichiers à un répertoire virtuel, restreint l'utilisation du CPU et de la mémoire, et bloque les connexions réseau sauf si elles sont explicitement autorisées. Les programmes sont exécutés dans des conteneurs avec des images de base en lecture seule. Lorsqu'une application de cuisine coréenne demande à récupérer des données nutritionnelles, la requête est acheminée via un proxy qui vérifie les domaines autorisés. Si le programme tente d'accéder à un site externe sans permission, le sandbox interrompt l'opération et renvoie un message d'erreur à l'utilisateur.

2.2 Analyse statique et vérification de type

Avant l'exécution, Macaron effectue une analyse statique sur le code synthétisé pour détecter des vulnérabilités telles que les boucles infinies, les attaques par injection et les appels système non autorisés. Un vérificateur de types s'assure que les modules sont correctement composés : une fonction renvoyant un nombre ne peut pas être connectée à un module de traitement de texte. Le vérificateur vérifie également la conformité avec les types de données locaux ; par exemple, les valeurs monétaires sont représentées en types décimaux pour éviter les erreurs de virgule flottante. Si l'analyse statique échoue, Macaron propose de simplifier les fonctionnalités demandées ou suggère de diviser l'application en modules plus petits.

2.3 Surveillance en temps réel et auto-réparation

Pendant l'exécution, Macaron surveille les indicateurs de performance (utilisation du CPU, empreinte mémoire), la correction fonctionnelle (cas de test, assertions) et les interactions utilisateur (clics, temps passé). Si le programme s'écarte du comportement attendu—comme dépasser les limites de temps ou lancer des exceptions—le module auto-guérison de Macaron intervient. Il peut revenir à l'état stable précédent, appliquer un correctif généré à la volée, ou dégrader gracieusement la fonctionnalité. Par exemple, si l'API météo d'une application de jardinage japonaise échoue, le programme peut passer à une source de données de secours ou informer l'utilisateur de la panne temporaire.

3 Apprentissage par renforcement et amélioration continue

3.1 Signaux de récompense issus des retours utilisateurs et du succès des tâches

Chaque session de mini-application offre une richesse de retours. Les utilisateurs signalent implicitement leur satisfaction en continuant à utiliser l'application ou évaluent explicitement l'expérience. Macaron agrège ces signaux dans une fonction de récompense qui guide la génération future de code. La récompense pénalise les bugs, les interfaces confuses et les performances lentes tout en valorisant la fiabilité, l'adéquation culturelle et la nouveauté. Au fil du temps, le moteur de synthèse apprend que les utilisateurs japonais apprécient le minimalisme et la facilité d'utilisation, tandis que les utilisateurs coréens peuvent préférer les options de personnalisation et les visuels vibrants. Ces préférences sont encodées dans la politique RL qui sélectionne les modules et les modèles d'interface utilisateur.

3.2 Apprentissage par curriculum et méta-apprentissage

Pour gérer la complexité croissante des demandes des utilisateurs, Macaron utilise l'apprentissage par curriculum : le moteur de synthèse commence par générer des programmes simples (par exemple, des calculatrices, des listes de tâches) et aborde progressivement des tâches plus complexes (par exemple, des plateformes de budgétisation multi-utilisateurs). Lorsque le système rencontre de nouveaux domaines, il utilise l'apprentissage méta pour accélérer l'adaptation. Lorsque le moteur voit des demandes similaires de la part d'utilisateurs japonais et coréens, comme la planification d'événements scolaires ou la gestion des soins aux personnes âgées, il peut généraliser les tâches. L'apprentissage méta aide également l'agent à s'adapter aux changements législatifs ou culturels ; si la Loi de Promotion de l'IA introduit de nouvelles exigences de conformité, Macaron les intègre rapidement dans ses modèles de code.

3.3 Contributions communautaires et marché de modules

Macaron encourage l'implication de la communauté. Les développeurs peuvent contribuer de nouveaux modules à un marché. Les modules sont vérifiés pour leur sécurité et leur conformité avant d'être inclus. Cela favorise un écosystème local : les développeurs japonais pourraient créer des modules pour la planification de cérémonies de thé ou la recommandation d'anime, tandis que les développeurs coréens pourraient contribuer des modules pour apprendre des chorégraphies de K-pop ou gérer des cérémonies familiales. Les contributeurs sont récompensés avec des Almonds (la monnaie interne de Macaron), incitant à l'amélioration continue de la plateforme.

4 Intégration avec les API et services externes

4.1 Localisation des sources de données

Les utilisateurs japonais et coréens s'appuient sur différents fournisseurs de données. Macaron s'intègre avec les API bancaires japonaises (par exemple, via J‑Debit) pour les applications financières, les calendriers japonais pour les jours fériés (Golden Week, Obon), et les sources d'actualités locales pour la planification d'événements. En Corée, l'agent se connecte aux API boursières de KOSPI, au service météo de Naver, et à l'API de messagerie de KakaoTalk. Chaque intégration est encapsulée dans un module qui applique des limitations de taux, de la mise en cache et de la gestion des erreurs. Le générateur de code insère automatiquement ces modules lorsque cela est pertinent.

4.2 Interface en langage naturel pour la configuration des API

Au lieu de demander aux utilisateurs de saisir manuellement les clés API, Macaron les guide à travers une conversation. Si un utilisateur japonais souhaite importer des transactions depuis sa banque, l'agent explique le processus de consentement, obtient les jetons nécessaires, et les stocke en toute sécurité. De même, un utilisateur coréen pourrait demander à Macaron de se connecter à l'emploi du temps scolaire de son enfant ; l'agent utilise OAuth pour autoriser l'accès et s'assure que l'application ne lit que les données requises. Ces interactions sont enregistrées et peuvent être examinées, en accord avec le principe de transparence différenciée.

4.3 Informatique de périphérie et support hors ligne

Dans de nombreuses régions du Japon et de la Corée, les utilisateurs attendent de la fiabilité même avec une connectivité intermittente. Les mini‑applications de Macaron prennent en charge le edge computing, exécutant les calculs localement lorsque c'est possible. L'agent peut générer des applications web progressives (PWAs) qui mettent en cache les données et se synchronisent avec les serveurs lorsque le réseau est disponible. Par exemple, un randonneur coréen utilisant un planificateur de sentiers de montagne peut continuer à suivre les itinéraires hors ligne et se synchroniser avec le cloud après être descendu. La capacité hors ligne est particulièrement importante pour la confidentialité ; les données sensibles restent sur l'appareil jusqu'à ce que l'utilisateur choisisse de les partager.

5 Sécurité, Conformité et Sensibilité Culturelle

5.1 Alignement réglementaire dans la génération de code

Les mini‑applications doivent respecter les réglementations locales. La Loi de Promotion de l'IA au Japon met l'accent sur la transparence ; par conséquent, les applications de budgétisation incluent des journaux clairs des flux de données et fournissent aux utilisateurs une explication de la façon dont les dépenses sont catégorisées. Les réglementations coréennes sur l'IA exigent une supervision humaine pour les décisions à fort impact ; les applications liées à la santé incitent donc les utilisateurs à consulter des professionnels avant de suivre les conseils. Le générateur de code de Macaron insère des avertissements et obtient un consentement explicite pour les opérations sensibles. Si un utilisateur tente de générer une application de déclaration fiscale, Macaron leur rappelle les mises à jour des lois fiscales locales et suggère de consulter un comptable certifié.

5.2 Normes culturelles et localisation de l'interface utilisateur

L'esthétique culturelle influence la conception de l'interface utilisateur. Au Japon, le minimalisme et le respect de l'espace blanc sont appréciés ; Macaron utilise donc des couleurs subtiles et des icônes simples pour les utilisateurs japonais. Les interfaces coréennes peuvent être plus dynamiques et inclure des animations. Les modules d'interface utilisateur de Macaron adaptent automatiquement ces styles en fonction des préférences des utilisateurs déterminées lors de l'intégration. L'agent personnalise également les messages d'aide selon les normes culturelles : les écrans d'aide japonais peuvent inclure des explications contextuelles, tandis que les écrans d'aide coréens pourraient mettre l'accent sur des instructions étape par étape.

5.3 Résilience face aux catastrophes et considérations éthiques

Le Japon et la Corée sont sujets à des catastrophes naturelles telles que les tremblements de terre et les typhons. Les agents personnels générant des applications de réponse d'urgence doivent être fiables. Macaron inclut un module de résilience face aux catastrophes qui s'intègre aux systèmes d'alerte gouvernementaux et garantit que les instructions d'urgence sont à jour. Sur le plan éthique, le système évite les conceptions manipulatrices telles que les "dark patterns" dans les outils financiers et respecte les directives d'équité. Lors de la recommandation de restaurants, par exemple, l'agent prend en compte les restrictions alimentaires et évite les biais envers certaines régions ou chaînes, sauf si l'utilisateur exprime une préférence.

5.4 Études de cas : planificateur de Hanami et gestionnaire de fans de K-pop

Deux études de cas mettent en avant la puissance et la nuance de la synthèse de code de Macaron. Hanami Planner est une application saisonnière demandée par des familles japonaises souhaitant profiter de la floraison des cerisiers. L'utilisateur demande : « 桜の見頃と混雑を避けるプランを作って » (Créer un plan pour voir les cerisiers en pleine floraison tout en évitant les foules). Macaron récupère les prévisions météorologiques et de floraison à partir des API météorologiques japonaises, recoupe les données historiques et prédit les dates de floraison maximale pour les parcs à proximité. Il synthétise ensuite une application multi-module : un calendrier de planification pour bloquer les dates ; un planificateur d'itinéraire prenant en compte le trafic et les transports publics ; un suivi de budget pour les fournitures de pique-nique (intégrant les catégories kakeibo) ; et un guide de l'étiquette culturelle rappelant aux utilisateurs les règles de gestion des déchets et du parc. L'apprentissage par renforcement personnalise les suggestions : si la famille a des membres âgés, l'agent privilégie les parcs avec des chemins accessibles ; s'ils ont des enfants, il recommande des attractions adaptées aux familles. L'application génère également des invitations bilingues pour que les amis ne parlant que coréen ou anglais puissent se joindre, mettant en valeur les capacités cross-linguales de Macaron.

Le cas du Gestionnaire de fans de K-pop cible les utilisateurs coréens qui suivent plusieurs groupes musicaux. Un utilisateur pourrait dire : « 다음 커백 스케줄과 팬미팅 일정 관리 앱을 만들어줘 » (Crée une application pour gérer les plannings de comeback et les réunions de fans à venir). L'agent extrait les plannings de sortie des API des entreprises de divertissement, calcule les objectifs de streaming en fonction des algorithmes de classement et affiche des widgets de compte à rebours. Les modules incluent un assistant d'achat de billets (vérifiant les lois locales pour la revente), un album numérique pour collectionner des cartes photo, et un module social pour coordonner des projets de fans. Pour éviter de surcharger l'utilisateur avec des notifications, le modèle de récompense RL équilibre l'urgence (par exemple, les délais pour les billets de réunion de fans) avec la charge cognitive. Les fonctionnalités interlinguistiques interviennent lorsque les fans coordonnent avec leurs amis japonais : l'application traduit automatiquement les plannings et les messages en japonais et en anglais, et les balises mémoire garantissent que le contexte est préservé à travers les langues. Ces études de cas démontrent la capacité de Macaron à intégrer la culture locale, la sensibilisation réglementaire et la sophistication technique dans des outils personnalisés.

5.5 Défis techniques : concurrence, gestion des versions et débogage

Générer de grands programmes à la volée présente des défis d'ingénierie. La concurrence survient lorsque les mini-apps doivent effectuer plusieurs tâches simultanément, comme récupérer des données tout en mettant à jour l'interface utilisateur. Le générateur de code de Macaron construit des graphes dirigés acycliques (DAGs) qui définissent les relations de dépendance et utilise des constructions de programmation asynchrone (par exemple, les promesses JavaScript ou asyncio en Python) pour éviter les opérations bloquantes. Le versionnage devient crucial car la bibliothèque de modules de Macaron évolue constamment. Les applications générées incluent des fichiers manifestes qui enregistrent les versions des modules ; lorsqu'une mise à jour est disponible, Macaron compare les versions et invite les utilisateurs à mettre à jour ou à rester sur une version stable connue. Le débogage est peut-être le plus difficile : le code généré automatiquement peut contenir des bugs subtils ou des cas limites. Macaron aborde cela avec des tests basés sur les propriétés — générant des entrées aléatoires pour tester les invariants du programme — et l'exécution symbolique pour explorer les chemins d'exécution. Lorsque des bugs apparaissent dans la nature, l'agent collecte des traces d'erreurs anonymisées et applique des techniques de réparation de programme, intégrant les correctifs dans de futures synthèses. Ces pratiques d'ingénierie garantissent que la promesse de la programmation sans code se traduit par des mini-apps fiables et maintenables.

Boxu a obtenu son diplôme de licence à l'Université Emory en économie quantitative. Avant de rejoindre Macaron, Boxu a passé la majeure partie de sa carrière dans le domaine des capitaux privés et du capital-risque aux États-Unis. Il est maintenant chef de cabinet et vice-président du marketing chez Macaron AI, gérant les finances, la logistique et les opérations, tout en supervisant le marketing.

Postuler pour devenir Les premiers amis de Macaron