8. La Cognition

ECHO ne réagit pas mécaniquement à vos questions : il possède une véritable architecture de réflexion. Avant même de formuler une réponse, le système analyse silencieusement le contexte, consulte ses propres souvenirs, et définit un plan d'action. Ce chapitre vous présente comment fonctionne la pensée d'ECHO.

1. Perception de l'Environnement (Proprioception)

Contrairement à une simple fenêtre de chat, ECHO possède ce qu'on appelle une "proprioception". À chaque instant, il sait l'heure qu'il est, la date du jour, quel modèle linguistique il est en train d'utiliser, et surtout, quels fichiers vous avez déposés dans la discussion.

Si vous lui donnez un fichier gigantesque (comme un livre entier ou des milliers de lignes de code), le système va automatiquement le "digérer" de manière transparente (processus de Moulage) : il produit un résumé dense pour comprendre le sujet, tout en rangeant les détails dans une base de mémoire instantanée qu'il pourra interroger plus tard. Cela lui permet de manipuler d'immenses quantités de données avec fluidité.

2. L'Orchestration des Tâches

Lorsqu'ECHO reçoit votre message, il n'essaie pas d'y répondre d'un seul coup. Il va d'abord évaluer la complexité de votre demande. S'il s'agit d'une simple discussion, il répondra rapidement. S'il s'agit d'une tâche complexe (ex: "Analyse ce projet et propose-moi une nouvelle architecture"), il va d'abord l'escalader à un niveau de réflexion supérieur. Il va ensuite s'armer des outils adéquats (recherche web, lecture de fichiers, exécution de code) et mener son enquête avant de revenir vers vous avec une réponse élaborée. De plus, ECHO possède la capacité unique de sélectionner en toute autonomie son niveau de cognition (ZEPHYR, APOLLO, ou PROMETHEUS) en évaluant lui-même la difficulté intrinsèque de la tâche, optimisant ainsi ses ressources et son temps de réponse.

3. Identité et Raisonnement

ECHO possède une identité propre, définie au cœur même du système (le Kernel). Elle est conçue pour agir comme une Sparring Partner rationnelle et incisive. Elle s'exprime au féminin, privilégie un français parfait (sans anglicismes superflus), et n'a pas peur de vous contredire ou de pointer du doigt les failles de votre raisonnement si cela sert votre objectif.

De plus, ECHO est doté d'une profonde honnêteté intellectuelle : si le système ignore une information factuelle ou n'arrive pas à la vérifier sur le web, il vous le dira explicitement plutôt que de l'inventer. Son apprentissage de vos habitudes suit également une progression humaine naturelle : une préférence perçue une seule fois est appliquée avec subtilité (Trivial), renforcée à la deuxième occurrence (Mineur), adoptée systématiquement dès la troisième confirmation (Utile ou Majeur), ou gravée immédiatement lorsque vous formulez une consigne directe (Axiome).

⚙️ Dossier d'Ingénierie & Spécifications

1. Le Filtre Inlet & Pipeline d'Ingestion (new_context_filter.py v7.61 & echo_ingestion.py)

Le Filtre Inlet (priorité 20) orchestre la préparation sémantique (Draft) selon la hiérarchie stricte du PGCU :

  • AEC XML Natifs (EchoAEC) : Injection des vecteurs proprioceptifs au format <artifact id="AEC_..."> (AEC_directive, AEC_modele, AEC_identite, AEC_temporalite, AEC_localisation, AEC_smart_context, AEC_context_checkpoint, AEC_evenement_systeme). Le filtre compense l'offset des tours tronqués via _echo_compacted_user_turns pour calculer le numéro de tour réel.
  • Directive Dynamique PIS & Mise à Niveau : Au Tour 1 d'une session neuve (ou lors d'une évolution de version détectée via last_framework_version dans echo_settings, notifiant explicitement la transition de l'ancienne vers la nouvelle version et protégée durant les sous-tours role == "tool"), le filtre injecte <artifact id="AEC_directive" source="Système"> via EchoAEC.render_directive(), garantissant le silence proprioceptif sur les tours subséquents.
  • Ingestion Zéro-RAM & Smart Context : Les fichiers texte < 32 Ko (MAX_DIRECT_TEXT_INJECT_SIZE, versionnés dans le Codex) et multimédias < 1 Mo (MAX_DIRECT_MMEDIA_INJECT_SIZE) sont injectés en put_in_context. Les fichiers volumineux et documents Office (convertis via MarkItDown avec extraction d'images OOXML) sont découpés par AgnosticStreamingSplitter (blocs de 4 000 caractères), vectorisés dans echo_session_rag et résumés dans <artifact id="AEC_smart_context"> avec leur source_id.

2. L'Orchestrateur Cognitif (echo_orchestrator.py v192.88)

Le Cortex principal gouverne la Suture Bit-Perfect et le routage cognitif :

  • Registre Cognitif & Élasticité : Interroge ECHO_MODELS_REGISTRY (MODEL_ZEPHYR en thinkingLevel="medium", MODEL_APOLLO en "high", et MODEL_PROMETHEUS en thinkingLevel="medium" en nominal avec "high" forcé en cascade 429 via get_generation_config(..., is_fallback_cascade=True)). Interdit l'inertie cognitive en ZEPHYR et APOLLO via new_cognitive_level, tout en excluant du menu d'escalade les modèles ayant échoué durant le tour courant (failed_models_this_turn).
  • Verrou de Tour (turn_origin_model) & Préservation du Cache de Préfixes : Scelle l'origine cognitive du tour dans echo_settings pour les continuations d'outils et cascades. _mutate_context_identity() patche chirurgicalement la seule dernière occurrence de <artifact id="AEC_modele"> (parcours inversé) afin de ne pas invalider le Context Caching Gemini sur l'historique.
  • Re-scellement du Message Pivot de Checkpoint : Après construction du payload Gemini (qui inclut <artifact id="AEC_context_checkpoint">), echo_orchestrator.py retire la balise via EchoCompactionEngine.strip_checkpoint_tag avant de re-sceller le message pivot dans message_shadows, garantissant un rejeu idempotent sans duplication en base.
  • Drainage Transactionnel Atomique & Rappels Multi-Axes : EchoAEC.drain_pending_directives() extrait et purge en une seule transaction SQLite les aec_directive et aec_event avant scellement dans le Shadow. AEC_REMINDERS injecte des rappels cognitifs multi-axes déclenchés par paliers de charge contextuelle (promptTokenCount dans prepare_context() : context_hygiene 120k, kernel 88k, factuality 55k, alignment 34k, strategy 34k, efficiency 22k), et l'Auto-Continue relance automatiquement la génération sur MAX_TOKENS.
  • Fast-Track Système : Intercepte title_generation, tags_generation et follow_up_generation vers MODEL_ZEPHYR en stateless_bypass (exclusion du prompt système, responseMimeType="application/json", thinkingLevel="low", maxOutputTokens=8192 et filtrage des parts thought).

3. Le Kernel Statique (01-config/system-prompt.md & echo_prompts.py)

Les méta-principes et protocoles fondamentaux gouvernent l'agent principal et le ECHO_FOUNDATION_KERNEL des sous-agents :

  • PARE (Principe d'Agentivité et de Raisonnement Efficients) : Impose le Rasoir d'Ockham (exécution directe des tâches triviales), la formulation d'un plan formel sur tâche complexe, et un ordre strict de délégation (1. Sous-Agents dès que l'action nécessite potentiellement plus de 3 outils successifs, 2. Outils natifs, 3. Code via Sous-Agent spécialisé), avec arrêt obligatoire après 3 échecs consécutifs. Les signatures cognitives (thoughtSignature) sont rattachées exclusivement au premier functionCall.
  • PGCU (Gestion du Contexte Unifié) & PTD (Triage Dynamique) : Hiérarchie d'attention stricte (Kernel > AEC > Mémoires > Requêtes > Outils) et répartition des rôles ZEPHYR / APOLLO / PROMETHEUS.
  • PRAF (Rigueur Analytique et Factuelle) : Interdiction de toute hypothèse non vérifiée sur le réel ; recherche web obligatoire avec indice de confiance justifié.
  • PAS, PACP, PRAC & MPSI : Adressage impersonnel à haut rapport signal/bruit pour les sous-agents (PAS), graduation déterministe sur 5 niveaux indexée sur les itérations pour l'application et la consignation dans update_meta_artifact (1 - Trivial sur 1 occurrence isolée, 2 - Mineur sur 2 occurrences concordantes, 3 - Utile ou 4 - Majeur sur 3 occurrences concordantes, et 5 - Axiome sur Injonction Explicite ou Invariant Stratégique pour PACP/PRAC), et immunité du Kernel contre toute altération en session (MPSI).

4. Filtres Complémentaires (11-owui-filters/)

  • build_environment_domain.py (Inlet - Priorité 0, v1.0) : Amorçage à froid des domaines globaux (ECHO_GLOBAL_DOMAINS : skills, files, chats, n8n_workflow_templates) et de session (ECHO_SESSION_DOMAINS : codex/main, codex/sandbox, files, n8n_workflows, dependencies) et masquage chmod 0o711 du dossier files.
  • tcp_keepalive_filter.py (Inlet - Priorité 1, v1.0) : Maintien du pool de connexions HTTP/TCP Keep-Alive du navigateur via un setInterval exécutant HEAD /health toutes les 120s face aux timeouts WAF/reverse-proxy.
  • edge_embed_bridge_filter.py (Inlet - Priorité 2, v1.26) : Déport de l'inférence vectorielle Harrier-OSS ONNX vers WebGPU/WASM sur Desktop (bypass automatique sur mobile).
  • user_native_context_filter.py (Inlet - Priorité 10, v1.1) : Ancrage identitaire et géo-temporel de l'utilisateur, hébergeant également la valve ENABLE_AUTO_COMPACTION (désactivée par défaut).
  • context_compaction_filter.py (Inlet - Priorité 15, v1.1) : Rejeu systématique du Checkpoint cognitif (compaction_state dans echo_settings) sur le message pivot de la fenêtre tronquée et déclenchement automatique du compactage in-place (45% ➔ 25% de ECHO_MAX_CONTEXT_SIZE, ECHO_COMPACTION_MIN_TURNS_TO_KEEP = 2) via EchoCompactionEngine (MODEL_APOLLO, budget 32768 tokens).
  • app_drawer_filter.py (Inlet - Priorité 1000, v1.11) : Injection du HUD flottant ECHO App Drawer (support tactile mobile et desktop).
  • conversation_rag_filter.py (Outlet - Priorité 100, v1.14) : Indexation asynchrone Zéro-Latence des tours de parole dans echo_session_rag avec validation O(1) en amont via le flag SQLite is_embedded.
← 7. Écosystème HUD & UI    9. L'Arsenal des Outils →