Skip to content

Latest commit

 

History

History
83 lines (49 loc) · 2.66 KB

File metadata and controls

83 lines (49 loc) · 2.66 KB

DECISIONS.md — P5 Moteur de Réponse Support Adaptatif

Décisions techniques et architecturales prises durant le développement.


2026-06-05 — Création du Walking Skeleton

Décision : Commencer par un script minimal Python avant toute infrastructure.

Contexte : La règle 9 du document stratégique impose un Walking Skeleton validé avant DB, API, Docker.

Choix :

  • Script unique walking-skeleton.py
  • 6 tickets (3 techniques, 3 émotionnels)
  • 5 epochs, boucle complète Performance → Critic → Learning → Problem Generator
  • SQLite pour stockage des poids
  • Pas de framework web, pas de Docker, pas de dashboard

Résultat : +0.61/5 (+21%) sur les 6 tickets, +0.67/5 (+25%) sur holdout.


2026-06-05 — Choix des Providers

Décision : Gemini + OpenAI, pas Anthropic.

Contexte : L'utilisateur n'avait pas de clé API Anthropic.

Choix :

  • Gemini 2.5 Flash → Performance Element (génération rapide et économique)
  • OpenAI GPT-4o-mini → Critic + Problem Generator (response_format=json_object fiable)

Conséquence : La couverture "Anthropic" dans la matrix n'est pas remplie par P5.


2026-06-05 — Structure d'apprentissage tabulaire

Décision : Poids d'instructions avec mise à jour delta, pas de réseau de neurones.

Contexte : L'apprentissage tabulaire est plus simple, plus transparent, et suffisant pour < 100 instructions.

Formule :

weight(t+1) = weight(t) + (score - 3.0) × learning_rate(0.3)

Sélection : Proportionnelle pondérée (pas top-K greedy) pour garantir l'exploration.


2026-06-06 — Mémoire épisodique

Décision : Embedding via API Gemini + similarité cosinus en Python, pas de vector DB.

Contexte : Pour < 1000 épisodes, une vector DB est de la surcharge inutile.

Trade-off : Latence ~500ms par embedding (appel API), mais acceptable car l'embedding est fait à la volée et non en batch.


2026-06-06 — Multi-LLM routing

Décision : Table SQL avec poids par catégorie, mise à jour delta.

Formule :

delta = (score - 3.0) × 0.3
poids = clamp(poids + delta, 0.5, 2.0)

Initialisation : Tous les providers commencent à poids 1.0 pour chaque catégorie.


2026-06-07 — Intégration des 3 variantes

Décision : Ajouter mémoire épisodique, prompt adaptatif, multi-LLM routing dans le même projet, pas dans des branches séparées.

Raison : Ces 3 variantes sont des améliorations du même cœur Learning Agent, pas des projets indépendants. Les ajouter séparément aurait créé 3 projets quasi-identiques.

Impact sur la matrix : P5 couvre désormais plus de patterns que prévu initialement.