Sélection de contexte · budgets · benchmarks
ContextForge
Open source · MITCe qu’il fait
Choisit quels fichiers une IA doit lire quand elle ne peut pas tout lire, puis vérifie si ce choix valait mieux qu’une simple recherche par mot-clé.
Lire le code sur GitHubPreuve — essaie-le
Les mêmes cinq fichiers. Deux façons de dépenser le budget.
Remplir par rang laisse un document de 17 Ko tout avaler, et le fichier de 947 octets qui corrige réellement le bug n’entre jamais. Servir les plus petits d’abord coûte de la longueur aux gros documents et sauve celui qui compte.
Budget · 24 576 o
docs/postmortems/symlinked-paths.md16 986 / 16 986 o émisdocs/benchmarks/refuse-symlinked-paths.md7 590 / 16 925 o émisdocs/design/refuse-symlinked-paths.mdjamais émisdocs/threat-model.mdjamais émissrc/compiler.mjsjamais émis
Le fichier qui répond à la tâche — jamais émis
Tailles réelles issues du run enregistré. C’est le défaut trouvé par le benchmark, et l’allocation qui l’a corrigé.
Étude de cas
- Deux benchmarks, cinq stratégies de comparaison
- Corpus reproductibles au octet près depuis une graine
- Résultats négatifs publiés, pas seulement les favorables
- Problème
- Décider quels fichiers d’un dépôt entrent dans une fenêtre de contexte, sans dépasser un budget, sans y laisser fuir un identifiant, et sans avoir à croire le résultat sur parole.
- Approche
- Sélection lexicale, compilation bornée, redaction de motifs — puis un benchmark comparatif contre cinq stratégies naïves sous le même budget de 24 576 octets, sur des corpus déterministes allant jusqu’à 2 400 fichiers.
- Architecture
- Un plan explicite, puis une compilation qui répartit les octets en part max-min équitable, hache chaque fichier en SHA-256, compte les redactions sans jamais stocker les valeurs, et refuse les symlinks à chaque segment de chemin.
- Ce qui a raté
- Sur un corpus riche en documentation, le rappel du fichier requis est tombé à 0,00 : un seul document de 17 Ko monopolisait le budget et le fichier qui implémentait la tâche n’était jamais émis. Un grep naïf faisait mieux.
- Résultat
- Le cas a été figé dans un corpus déterministe avant toute correction. Diagnostic : l’allocation gloutonne du budget, pas le classement. Après passage en part max-min équitable, le rappel passe de 0,00 à 1,00.
- Limites
- La correction a coûté de la précision : 1,00 à 0,67 sur une fixture. Et un second défaut reste ouvert — le rappel des fichiers utiles est toujours à 0,00 sur trois corpus, parce que le score lexical ne distingue pas un document qui décrit une tâche du code qui l’implémente.