Repository navigation
Conversation
|
Merci Luc, et merci pour le banc qui reproduit l'appel de Les garde-fous essentiels tiennent : un identifiant connu, de ce profil ou d'un autre, garde la vérification stricte (Bob ne touche toujours pas aux souvenirs d'Alice), et chaque fait doit citer ses preuves. Trois points avant de fusionner. À corriger
TestsLe test actuel est bon. Il faudrait y ajouter les deux cas ci-dessus : Une question en plus : as-tu essayé de donner les identifiants existants plus visiblement dans la consigne d'extraction ? Si |
Avec un fournisseur personnalisé (Ollama, qwen2.5:7b), l'extraction propose des faits justes mais étiquetés « update » vers un souvenir inexistant, ou un « add » qui porte un identifiant. La vérification rejetait tout le lot (« Souvenir absent ou propriétaire incompatible. ») : aucun souvenir n'était jamais retenu. Avant la vérification, un changement qui ne vise aucun souvenir existant devient un ajout (memoryId null) ; un « forget » sans souvenir est ignoré. Un identifiant connu, de ce profil ou d'un autre, garde la vérification stricte, et les preuves restent exigées pour chaque fait.
Suite de la relecture de lfpoulain#46. Une correction (update) vers un identifiant inconnu ne devient un ajout que si le profil n'a aucun souvenir du même sujet : sinon le lot reste rejeté, au lieu de garder deux faits contradictoires (« Préfère le thé. » et « Préfère le café. »). Un oubli vers un identifiant inconnu reste rejeté, au lieu de disparaître sans trace. Un ajout qui porte un identifiant reste un ajout. Tests : correction inventée sur un sujet existant (rejetée, souvenir d'origine intact), oubli inventé (rejeté, rien n'est oublié ni ajouté), et un témoin : la même correction sur un autre sujet devient un ajout.
648cd5c to
b631544
Compare
|
Merci pour la relecture, les trois points sont corrigés.
Votre question sur la consigne : je viens de l'essayer, sur le même banc (qwen2.5:7b, Ollama, même appel que
La consigne seule améliore donc nettement les choses, sur ce petit échantillon. Je propose de l'ajouter : la liste des identifiants construite à chaque appel dans Luc, Jokobee™ |
Corrige #45.
But
Rendre la mémoire utilisable avec un modèle local, qui confond souvent ajout et correction,
sans affaiblir les vérifications.
Ce qui change
Dans
MemoryRepository.apply, avant la vérification existante, chaque changement est normalisé :memoryIdn'existe nulle part (identifiant inventé) devient un ajout(
operation: "add",memoryId: null) ;forgetvers un souvenir inexistant est ignoré (rien à oublier).Ce qui ne change pas :
memoryIdconnu, de ce profil ou d'un autre, passe par la vérification stricte actuelle :le test « les preuves, propriétaire et opérations… » (Bob qui vise un souvenir d'Alice) reste rejeté ;
evidenceTurnIdsde la personne ;Une ligne est ajoutée au CHANGELOG, sous « Non publié ».
Vérification
tests/memory.test.ts: unupdateet unaddà identifiant inventédeviennent des ajouts, un
forgetinventé est ignoré, un identifiant d'un autre profil resterejeté, une preuve inventée reste rejetée.
npm testsous Linux : 743 tests, les 4 échecs restants sont identiques avec le code d'origine(742 tests) et viennent de l'environnement d'essai (dossier
data/absent hors installation).npm run check: sans erreur.prettier --checksur les fichiers modifiés : conforme.qwen2.5:7bsur la puce Intel) : laconversation suivante a produit « 1 changement enregistré », extraction en 30 s.