Looping Thinking
Raisonnement en boucle et réparation bornée : la couche cognitive qui fait d'Igris Engine un orchestrateur qui réussit par preuve, pas par affirmation.
Qu'est-ce que le Looping Thinking ?
Igris Engine ne traite pas une mission comme « terminée » parce qu'une réponse textuelle le déclare. Chaque action réelle laisse une preuve de fichier ; chaque échec déclenche une boucle de réparation. Cette boucle est portée par le module core/cognition/loop.py (CognitiveLoopCoordinator) et les jauges de core/cognition/models.py — une capacité confirmée comme réelle par l'audit fonctionnel.
Raisonnement en boucle
Une boucle de raisonnement comporte trois temps répétables :
- Exécuter une action réelle via un outil autorisé.
- Vérifier l'état obtenu (preuve tool, pas affirmation).
- Si l'état ne correspond pas à l'objectif, diagnostiquer la cause et préparer une correction.
La boucle recommence avec une stratégie différente. Elle ne rejoue jamais mécaniquement la même commande identique tant que son résultat est déjà présent dans la conversation.
Réparation bornée
« Bornée » est le point clé : la boucle a une profondeur et un nombre de tentatives maximaux. Les jauges cognitives et adaptatives régulent la charge et la profondeur de réflexion, sans remplacer les faits, les permissions, la sécurité ni la validation des missions. Passé le seuil, l'orchestrateur signale le blocage avec son contexte.
Un exemple concret de boucle
Scénario : la génération d'une page échoue au build (npm run build).
- Étape 1 — Exécuter : lancement de
astro build→ échec (erreur d'import d'un module). - Étape 2 — Vérifier : lecture du message d'erreur brut, pas d'affirmation de succès.
- Étape 3 — Diagnostiquer : le module manquant n'est pas exporté par le chemin importé.
- Étape 4 — Changer de stratégie : correction du chemin d'import plutôt que relance identique.
- Étape 5 — Retenter borné : nouveau build dans la limite de tentatives.
- Étape 6 — Vérifier par preuve : le dossier
dist/est généré et contient la page.
Résultat : la mission avance sur une preuve tool, jamais sur une affirmation.
Schéma de la boucle
flowchart TD
A[Action réelle via outil] --> B[Vérification de l'état obtenu]
B --> C{Objectif atteint ?}
C -- Oui --> D[Preuve tool : mission avance]
C -- Non --> E[Diagnostic de la cause]
E --> F[Changement de stratégie]
F --> G{Tentatives < seuil borné ?}
G -- Oui --> A
G -- Non --> H[Blocage signalé honnêtement] Pourquoi la boucle reste sûre
Le Looping Thinking n'est pas une boucle ouverte sur l'environnement. La revue de sécurité confirme des garde-fous : outils réseau en lecture seule (RDAP, DNS), secrets masqués, écritures limitées au projet, aucune élévation. La réparation bornée s'exerce donc dans un périmètre contrôlé.
Références et sources
- Code moteur —
core/cognition/loop.pyetcore/cognition/models.pydécrivent la boucle cognitive bornée. - Revue de sécurité — les garde-fous couvrent les outils en lecture seule, les secrets masqués et les écritures bornées.
- Positionnement —
docs/positionnement.mdprésente le Looping Thinking comme couche de régulation. - Architecture éditoriale —
docs/architecture-editoriale.mdrattache ce concept à la section Architecture & Concepts.