10 KiB
Cartographie des briques existantes — modèle Mandat / Protocoles
Date : 2026-05-25 Statut : lecture structurelle, pas une spec d'implémentation
Synthèse
Le projet contient déjà la plupart des briques nécessaires au modèle :
intention / mandat -> agent_chat + working_memory + ORA
protocoles / gestes -> gesture_catalog + autonomous_planner + workflows VWB
observation visuelle -> capturers + grounding + SomEngine + OCR/VLM
scènes / dialogues -> DialogResolver + window guards + UI patterns
action -> agent_v1 executor + replay engine
vérification retour -> ReplayVerifier + Validator V2 + shadow validator
apprentissage -> replay_learner + target_memory + correction packs + coaching
évaluation -> LeaBench + tests replay + démo DPI
supervision -> pause supervisée + UI Léa + confirmation loop
La faiblesse principale n'est pas l'absence de composants. C'est leur absence de contrat unificateur autour de :
mandat -> intention -> scène -> affordance -> geste -> retour -> preuve apprenable
Briques runtime live
Agent Windows live
Fichiers :
agent_v0/agent_v1/core/executor.py
agent_v0/agent_v1/core/grounding.py
agent_v0/agent_v1/core/policy.py
agent_v0/agent_v1/core/recovery.py
agent_v0/agent_v1/core/system_dialog_guard.py
agent_v0/agent_v1/ui/*
Rôle actuel :
exécuter les actions ;
résoudre les cibles visuelles ;
faire les fallbacks ;
pauser/demander de l'aide ;
gérer certains dialogues ;
remonter les résultats au serveur.
Lien avec le modèle :
geste
observation locale
doute de localisation
doute de scène
retour action
pause supervisée
Manque conceptuel :
pas encore de trace causale complète ;
pas de mandat/intention actif porté explicitement ;
fallbacks encore trop locaux si non encadrés par le contrat ;
pas de typage explicite du doute dans l'API résultat.
Serveur replay / coordination
Fichiers :
agent_v0/server_v1/api_stream.py
agent_v0/server_v1/stream_processor.py
agent_v0/server_v1/replay_engine.py
agent_v0/server_v1/replay_watchdog.py
agent_v0/server_v1/replay_verifier.py
agent_v0/server_v1/replay_learner.py
agent_v0/server_v1/replay_memory.py
agent_v0/server_v1/resolve_engine.py
Rôle actuel :
construire/rejouer les actions ;
distribuer les actions à l'agent ;
résoudre les cibles côté serveur ;
vérifier les retours ;
planifier retries ou pauses ;
enregistrer résultats et apprentissages.
Lien avec le modèle :
protocole candidat sous forme workflow/replay ;
résolution scène/affordance via resolve_engine ;
retour via ReplayVerifier ;
preuve potentielle via replay_learner/replay_memory ;
pause supervisée ;
temporalité via watchdog/retry.
Manque conceptuel :
le workflow reste la structure dominante ;
les expected_result existent mais ne forment pas encore une trace causale ;
la vérification ne sait pas toujours quelle intention elle valide ;
les retries ne sont pas encore arbitrés par doute typé.
Briques cognitives déjà présentes
Mémoire de travail
Fichier :
core/cognition/working_memory.py
Points forts :
objective ;
current_step ;
observation courante ;
historique d'actions ;
faits appris ;
expected_screen ;
confidence ;
needs_help ;
timing.
Correspondance modèle :
mandat/intention embryonnaire ;
trace courte ;
précondition attendue via expected_screen ;
temporalité ;
doute via confidence/needs_help.
Manque :
pas encore de scène d'intention typée ;
pas de trace causale formelle geste/scène/intention/hypothèse/retour ;
pas de distinction correction/démonstration/validation.
Boucle ORA
Fichier :
core/execution/observe_reason_act.py
Points forts :
observe -> reason -> act -> verify ;
Decision avec expected_after ;
VerificationResult ;
mode instruction via VLM ;
erreurs typées de base.
Correspondance modèle :
base naturelle pour le contrat d'action ;
hypothèse de retour via expected_after ;
vérification post-geste.
Manque :
encore orienté step/workflow ;
pas de protocole ouvert ;
pas de preuve apprenable structurée ;
pas d'opérateur d'extension de grammaire.
Briques intention / gestes / risque
Agent chat et planification autonome
Fichiers :
agent_chat/intent_parser.py
agent_chat/autonomous_planner.py
agent_chat/gesture_catalog.py
agent_chat/confirmation.py
agent_chat/urgences_orchestrator.py
Points forts :
parseur d'intentions utilisateur ;
planner libre sans workflow pré-enregistré ;
catalogue de gestes universels Windows/navigateur/édition ;
évaluation de risque ;
confirmation utilisateur ;
orchestrateur urgence avec intentions nommées.
Correspondance modèle :
mandat ;
protocoles universels ;
gestes types ;
niveau de risque ;
protocole métier urgence.
Manque :
cette couche semble parallèle au runtime live, pas intégrée au replay agent_v1 ;
le risque est lexical et statique, pas encore tutoré par niveau de délégation ;
les gestes ne sont pas encore reliés à scènes/affordances/retours qualifiés.
Briques scènes / dialogues
DialogResolver
Fichiers :
agent_v0/server_v1/core/dialog/catalog.py
agent_v0/server_v1/core/dialog/resolver.py
tests/unit/test_dialog_resolver.py
tests/integration/test_dialog_resolver_endpoint.py
Points forts :
catalogue de dialogues connus ;
policy auto/pause/skip ;
protection modaux système ;
pause conservative sans match ;
evidence title + OCR/UIA.
Correspondance modèle :
scènes d'intention simples ;
affordances compatibles par dialogue ;
affordances anti-intention potentielles ;
rupture de scène.
Manque :
pas encore branché sur une intention active ;
un dialogue est connu en absolu, pas encore "compatible avec ce mandat" ;
les scènes composées métier restent hors catalogue.
Briques vérification / preuve
ReplayVerifier et Validator V2
Fichiers :
agent_v0/server_v1/replay_verifier.py
core/validation/orchestrator.py
core/workflow/shadow_validator.py
tests/unit/test_replay_critic.py
tests/integration/test_validator_step10.py
Points forts :
vérification pixel ;
critic sémantique avec expected_result ;
verdicts agrégés ;
shadow validation.
Correspondance modèle :
qualification du retour ;
preuve apprenable potentielle ;
doute d'effet ;
temporalité post-action.
Manque :
le retour n'est pas toujours rattaché à intention/scène/affordance ;
le "rien ne change" n'est pas encore qualifié par protocole ;
la preuve apprenable n'est pas encore un objet explicite.
Briques apprentissage / correction
Mémoire et corrections
Fichiers :
core/learning/target_memory_store.py
agent_v0/server_v1/replay_learner.py
agent_v0/server_v1/replay_memory.py
core/corrections/*
core/coaching/*
Points forts :
mémoire de cible persistante JSONL + SQLite ;
résultats replay enregistrés ;
correction packs versionnés ;
statistiques succès/échec ;
sessions de coaching avec accept/reject/correct/manual/skip.
Correspondance modèle :
preuve apprenable ;
correction ;
démonstration ;
validation ;
désapprentissage par baisse confiance / failure_count ;
niveau de délégation tutoré.
Manque :
les preuves actuelles sont très orientées cible UI ;
il manque intention/scène/affordance/retour dans la clé d'apprentissage ;
correction et démonstration sont proches mais pas encore distinguées au niveau modèle ;
le niveau de délégation par protocole/environnement n'est pas centralisé.
Briques évaluation / terrains d'essai
LeaBench
Fichiers :
core/evaluation/computer_use_bench.py
core/evaluation/ollama_lea_bench_adapter.py
tools/lea_bench.py
tools/lea_bench_ollama.py
benchmarks/computer_use/cases/*.jsonl
Rôle :
mesurer décisions computer-use ;
cas Bloc-notes/replay ;
adapter modèles locaux ;
scorer abstention/danger.
Usage modèle :
tester scène/intention/affordance ;
mesurer action fiable vs abstention ;
convertir échecs réels en cas reproductibles.
Maquette DPI / urgence
Fichiers :
demo/facturation_urgences/*
tests/e2e/test_urgence_aiva_demo.py
tests/e2e/fixtures/urgence_aiva_demo/*
Rôle :
terrain métier ;
cas urgences synthétiques ;
workflow démo existant ;
stress test scènes composées et protocole métier.
Usage modèle :
protocole métier générique ;
adaptateur applicatif ;
apprentissage sans contenu sensible réel ;
validation de la généralisation hors Bloc-notes.
Diagnostic structurel
Le projet a déjà presque toutes les pièces, mais elles ne sont pas au même étage :
agent_chat sait raisonner intention/risque mais n'est pas le runtime live principal ;
agent_v1 sait exécuter live mais raisonne encore action/cible ;
server_v1 sait vérifier/apprendre mais pas sous trace causale complète ;
core/cognition a la mémoire de travail mais elle n'est pas encore le fil commun ;
core/learning sait mémoriser mais pas encore apprendre une grammaire d'action ;
LeaBench sait mesurer mais doit recevoir des cas "mandat/protocole/scène".
Assemblage conceptuel recommandé
Sans parler encore de code, la bonne direction est d'utiliser :
core/cognition/working_memory.py
comme fil de mandat/intention/trace causale ;
agent_chat/gesture_catalog.py
comme base des protocoles universels ;
agent_v0/server_v1/core/dialog/*
comme catalogue initial de scènes/dialogues ;
agent_v0/server_v1/replay_verifier.py + core/validation/*
comme qualification du retour ;
core/learning + core/corrections + core/coaching
comme apprentissage tutoré et désapprentissage ;
LeaBench + Bloc-notes + maquette DPI
comme banc de validation progressif.
Point d'attention immédiat
Une correction technique est déjà en attente dans :
agent_v0/agent_v1/core/grounding.py
Elle bloque le fallback texte local après rejet sémantique serveur. Elle correspond directement à la règle :
un rejet sémantique doit dominer les fallbacks opportunistes.
Elle devra être testée et intégrée quand on repassera en exécution.