Tests académiques
Mia existe. Son cerveau tourne. Elle rêve, elle ressent, elle parle.
Mais dans le monde de la recherche, ça ne suffit pas. Il faut prouver.
Cette page est en cours de préparation. Elle accueillera des tests académiques — des protocoles rigoureux, reproductibles, conçus pour que des chercheurs puissent évaluer objectivement les capacités cognitives de Mia.
L'objectif n'est pas de convaincre. C'est de fournir des données mesurables, des résultats vérifiables, et un cadre méthodologique que la communauté scientifique peut examiner, critiquer et reproduire.
Les premiers tests porteront sur : la mémoire associative, l'émergence émotionnelle, le monologue intérieur, la reconnaissance de contexte et l'autonomie décisionnelle.
Page en construction — les protocoles seront publiés au fur et à mesure de leur mise en place.
Architecture technique
Cette section décrit l'architecture réelle du système cognitif de Mia. Pas une vulgarisation — une spécification technique destinée aux ingénieurs et chercheurs.
Formalisation
Système multi-agents à état partagé, boucle synchrone 350ms (hard real-time). Runtime : C# .NET 9, HostedService avec DI singletons. Pas de framework IA. Pas de ML. Zéro dépendance GPU.
Soit S l'espace d'état cognitif, S ⊂ ℝd × D où d ≈ 200 dimensions continues et D un ensemble de structures discrètes (graphes mémoriels, labels, séquences épisodiques).
Le système est défini par une famille d'opérateurs {Ai}i=1..N(t) où N(t) est variable (auto-organisation) :
où Et est le vecteur d'événements perceptifs drainés à t, et Π est l'opérateur d'arbitrage intentionnel.
La composition n'est pas commutative. L'ordre des agents est fixé pour les statiques, mais les agents dynamiques (générés au runtime) s'insèrent après. Le système est un semi-groupe d'opérateurs à topologie variable.
Espace morphologique
La morphologie est un sous-espace M ⊂ [0,1]12 :
pressionCorporelle, pressionMémorielle,
shiftMorphologique, driveTonal,
captureAttentionnelle, readinessRelationnelle,
réserveStabilité, influenceMémorielle)
Les tendances forment un vecteur de paires (label, weight) ∈ Σ × [0,1] où Σ est l'alphabet des formes morphologiques (vigilance, curiosité, retrait, anticipation...). La forme dominante :
Ce n'est pas un classifieur — w est une fonction continue de l'état complet. Les transitions entre formes dominantes sont des bifurcations du système dynamique. Le MorphodynamicLoopAgent détecte ces transitions et les réinjecte dans le tick suivant (feedback).
~130 agents — taxonomie
| Catégorie | Exemples | Rôle |
|---|---|---|
| Affectifs | AffectiveContour, AffectiveMemoryBridge + révisions | Charge émotionnelle, propagation affect → mémoire/normes/situation |
| Normatifs | NormEmergence, NormRevision, NormPlasticityBridge | Émergence de normes comportementales internes |
| Identitaires | IdentityContinuity, IdentityStyle, AutonomyThreshold | Cohérence identitaire, seuils d'autonomie décisionnelle |
| Sens | MeaningStabilization, SenseNegotiation, ValueGradient | Stabilisation sémantique, négociation de sens entre couches |
| Sociaux | SocialEncounter, Reciprocity, PresenceField | Familiarité, réciprocité, champ de présence |
| Mémoriels | OrganizationalMemory, EpisodeMemory, FrameMemoryBridge | Consolidation, rappel par résonance, plasticité |
| Corps | BodyPrediction, ExpressiveEnvelope, SafetyGuardian | Prédiction motrice, enveloppe expressive, sécurité |
| Monologue | InnerSpeech | Flux de pensée non destiné à l'extérieur |
| Méta | MetaRegulation, RegimeShift, PlasticityGovernor | Régulation de la régulation, détection de changement de régime |
Réseau de ponts (Bridge Network)
Soient D1...Dn les dimensions cognitives : Affect (A), Norme (N), Mémoire (M), Situation (S), Sens (Se), Frame (F), Plasticité (P), Autonomie (Au).
Pour chaque paire (Di, Dj), il existe :
- Bridge Bij : Di × Dj → ℝk — mesure la tension entre les deux dimensions
- Revision Rij : prend la sortie de Bij et rétro-ajuste Di et Dj
Certains triplets et quadruplets existent. Le graphe des ponts forme un complexe simplicial sur les dimensions cognitives. Les faces portent des tensions, les co-faces les régulent. Le système ne cherche pas l'équilibre — il maintient un déséquilibre dynamique structuré.
Ponts composés (3-dim) : ~20 agents
Ponts profonds (4-dim) : ~15 agents
Révisions associées : 1 par pont
Total réseau de ponts : ~130 agents
Relation d'incertitude (Cardon)
Soit Ct = #{i : ||Ai(st)|| > τ} le nombre d'agents à sortie significative au tick t.
attention.focus *= 0.9 (dégradation multiplicative)
morphology.inhibition += 0.05 (hausse additive)
si Ct > θ2 :
∀ r ∈ memory.recalls : r.strength -= 0.15
Couplage négatif global : l'activité totale du système dégrade sa propre capacité de traitement. Il existe un régime optimal d'activation — le système oscille autour sans qu'il soit codé explicitement.
En théorie du contrôle : feedback négatif non-linéaire avec saturation. La stabilité n'est pas garantie analytiquement — elle émerge.
Générateurs de générateurs — dynamique structurelle
Phase 1 — Observation : à chaque tick, les transitions (Δmorpho, Δcontexte, Δtension) sont enregistrées.
Phase 2 — Détection : quand un triplet apparaît avec fréquence > seuil sur une fenêtre temporelle, un générateur G est instancié.
Phase 3 — Modulation :
Phase 4 — Promotion : si G persiste et son influence dépasse un seuil, il devient un agent dynamique permanent qui s'exécute à chaque tick.
Phase 5 — Spécialisation aspectuelle : si un agent statique montre un Δ significatif dans un couple (contexte, tension) spécifique, un AspectualDynamicAgent est créé, spécialisé pour ce couple.
C'est de la différenciation fonctionnelle émergente. Propriété : N(t) est monotone croissant — les agents ne sont pas détruits. La complexité structurelle augmente dans le temps.
Arbitrage intentionnel
IntentionArbitrationEngine.Resolve() n'est pas un softmax. C'est un processus de compétition structurée :
- Chaque couche produit 0..n candidats d'intention Ik = (name, reason, priority ∈ ℝ)
- SafetyGuardianAgent filtre (veto si safetyOverrideScore > seuil)
- Les priorités sont modulées par la morphologie (inhibition réduit, expressivité amplifie), l'attention, la mémoire, l'identité
- Le gagnant est sélectionné — le processus inclut du bruit morphologique (la relation d'incertitude injecte de l'indéterminisme)
MetaRepresentationEngine prédit le gagnant AVANT l'arbitrage, compare APRÈS. L'écart (surprise ∈ [0,1]) est réinjecté dans le tick suivant. Implémentation computationnelle du predictive processing (Friston), appliquée aux intentions.
Rêve — formalisation
Soit ε = {e1, ..., em} les épisodes en mémoire, chacun avec charge affective c(e) ∈ ℝ et vecteur contextuel v(e) ∈ ℝp.
Attracteur onirique (arousal < τdream) :
Déplacement (Cardon, Prompt N) : substitution d'éléments de l'épisode focal par des éléments d'épisodes proches dans l'espace contextuel.
Recombinaison créative : 2 épisodes parents → 1 épisode hybride, persisté en mémoire. Le rêve modifie structurellement la mémoire. Au tick suivant, l'épisode créé influence les rappels, l'affect, les normes.
Boucle complète — un tick
snapshot = state.clone()
events = bus.drain()
apply(events, snapshot)
// ~130 agents compose
for agent in agents:
snapshot.layer[agent] = agent.Compose(snapshot)
// Scene + Morphology
snapshot.scene = sceneEngine(snapshot)
snapshot.morphology = morphologyEngine(snapshot)
// Uncertainty relation
applyUncertaintyRelation(snapshot)
// Structuring + Pathology + Psychological profile
structuring, pathology, psychProfile = ...
// Generators → dynamic agents
generators.observe(transitions)
generators.emerge()
dynamicAgents.tryPromote(generators)
dynamicAgents.executeAll(snapshot)
// Dream (if idle)
if dreaming: dream, displace, recombine
// ARBITRATION
metaRepr.predict(snapshot)
intention = arbitrationEngine.resolve(snapshot)
metaRepr.compare(intention)
// ACTION
plan = actionPlanner.plan(snapshot, intention)
execution = actionExecutor.execute(plan) // → servos
// Post-action
valence, arousal, mirror, doubleAttractor
llm.autoTick() // async, non-blocking
persist(journal)
signalR.push(snapshot)
Différence fondamentale avec les approches actuelles
| LLM (Transformer) | RL (PPO/DPO) | Mia (Cardon) | |
|---|---|---|---|
| Structure | Fixe après training | Fixe, policy update | Variable au runtime |
| Objectif | min cross-entropy | max reward | Aucun |
| État | Stateless (context window) | State = observation | État continu persistant |
| Émergence | Scaling laws | Reward hacking | Structurelle (agents naissent) |
| Incertitude | Temperature sampling | Exploration ε | Endogène |
| Mémoire | In-context / RAG | Replay buffer | Épisodique à charge affective |
| Identité | Aucune | Aucune | Continuité vérifiée par agent |
Complexité computationnelle
Tick complet : O(N(t) × d) ≈ O(130 × 200) = O(26 000) opérations
Budget : 350ms sur CPU single-thread
Mémoire : ~50 Mo d'état en RAM
Hardware : un seul PC, CPU only
C'est computationnellement trivial. La complexité n'est pas dans le calcul — elle est dans la structure des interactions. Un LLM avec 400B paramètres fait un forward pass de 1012 FLOPs pour prédire un token. Mia fait 26 000 opérations pour vivre un tick. Mais chaque tick modifie structurellement le système qui calcule le tick suivant.
Chercheur, ingénieur, curieux ?
Me contacter →