Agents & SystèmesPacemaker
Apprentissage continu
Systeme de correction des sorties IA, extraction de regles et injection automatique dans les prompts futurs.
REF-SPEC/PM-007 v1.0 — 2026-04-05
1. Principe
Pacemaker integre un systeme d'apprentissage continu par correction. Chaque sortie LLM est tracable et corrigeable. Quand l'utilisateur corrige une generation, le systeme extrait une regle generalisable et l'injecte automatiquement dans les prompts futurs du meme type.
2. Flow de correction
Generation LLM Correction Extraction Embedding Injection
(tracking auto) ──▶ utilisateur ──▶ regle par LLM ──▶ Voyage AI ──▶ prompts futurs
(cote-a-cote) (generalisable) (1024 dims) (max 5 regles)Etapes detaillees
- Tracking — Chaque appel LLM est enregistre dans la table
generationsavec le type, le prompt, la sortie brute et les regles appliquees - Correction — L'utilisateur ouvre la modale de correction (original a gauche, correction a droite)
- Extraction — Le LLM analyse le diff entre original et correction, et extrait une regle generalisable
- Embedding — La regle est embedee via Voyage AI pour permettre la recherche semantique
- Indexation — La correction et la regle sont stockees dans la table
corrections - Injection — Lors des generations futures, les regles pertinentes sont injectees en tete du prompt
3. Types de generations trackes
| Type | Declencheur | Exemple de regle |
|---|---|---|
tasks | Generation de taches | "Toujours inclure un responsable technique pour les taches d'integration" |
parse_cr | Parsing de compte-rendu | "Les actions convenues en reunion doivent inclure une echeance" |
recalib | Recalibration du plan | "Ne pas deplacer les jalons client sans mention explicite" |
vision | Extraction photo | "Les Post-it jaunes contiennent generalement des actions, pas des decisions" |
livrables | Generation de livrables | "Le rapport de cadrage doit commencer par le perimetre valide" |
4. Recherche de regles pertinentes
La fonction getRelevantRules(generationType, context, limit) :
- Embedde le contexte de la generation courante
- Recherche les corrections du meme type par similarite cosinus
- Filtre par seuil de similarite (0.65 minimum)
- Retourne les N regles les plus pertinentes (max 5)
Contraintes
| Contrainte | Valeur | Raison |
|---|---|---|
| Max regles par prompt | 5 | Au-dela, dilution de l'attention du LLM |
| Seuil similarite | 0.65 | En-dessous, la regle n'est pas assez pertinente |
| Isolation par type | Stricte | Les regles de tasks ne s'appliquent pas aux livrables |
| Compteur d'application | Incremente | Permet de mesurer l'utilite de chaque regle |
5. Format d'injection
Les regles sont injectees en tete du prompt sous ce format :
=== REGLES APPRISES (appliquees automatiquement) ===
1. [regle extraite de la correction]
2. [autre regle pertinente]
===6. Gestion des regles
Page d'administration
La page /admin/regles permet de :
- Consulter toutes les regles actives, filtrees par type
- Rechercher une regle par texte
- Archiver une regle obsolete ou erronee
- Voir les stats : nombre total de regles, nombre d'applications
Status des regles
| Status | Description |
|---|---|
active | Regle en vigueur, injectee dans les prompts |
superseded | Remplacee par une regle plus recente (contradictoire) |
archived | Desactivee manuellement par l'administrateur |
Indicateur header
Un compteur dans le header affiche en permanence : N regles · M appl. — nombre de regles actives et nombre total d'applications.
7. Schema de donnees
Table generations
| Colonne | Type | Description |
|---|---|---|
| id | TEXT | Identifiant unique |
| generation_type | TEXT | Type de generation (tasks, parse_cr, etc.) |
| context | TEXT | Contexte JSON de la generation |
| prompt | TEXT | Prompt complet envoye au LLM |
| raw_output | TEXT | Sortie brute du LLM |
| applied_rules | TEXT | JSON des IDs de regles appliquees |
| week_id | INTEGER | Semaine concernee (optionnel) |
| created_at | TEXT | Horodatage |
Table corrections
| Colonne | Type | Description |
|---|---|---|
| id | TEXT | Identifiant unique |
| generation_id | TEXT | Reference a la generation corrigee |
| corrected_output | TEXT | Sortie corrigee par l'utilisateur |
| diff_summary | TEXT | Resume du diff par le LLM |
| rule_learned | TEXT | Regle generalisable extraite |
| rule_embedding | F32_BLOB(1024) | Embedding vectoriel de la regle |
| generation_type | TEXT | Type (pour filtrage rapide) |
| applied_count | INTEGER | Nombre de fois appliquee |
| status | TEXT | active, superseded, archived |
| created_at | TEXT | Horodatage |