Accueil / Documentation / Gestion du contexte

Gestion du contexte

Pourquoi le coût des longues sessions augmente de façon non linéaire, et les méthodes qui permettent de limiter la taille de l’historique.

L’API est sans état. Chaque tour renvoie l’intégralité de la conversation : le nombre de tokens d’entrée augmente donc avec l’historique, et le coût augmente avec lui à chaque appel suivant.

La nature du problème

Une conversation de N tours, chacun ajoutant environ T tokens, consomme au total de l’ordre de N²T/2 tokens d’entrée, plutôt que NT. Doubler la durée de la session multiplie approximativement par quatre la facture des entrées. C’est pourquoi un agent qui semblait peu coûteux pendant dix minutes devient alarmant au bout d’une heure.

Quatre approches efficaces

SchémaMéthodeCompromis
Fenêtre glissanteConservez les K derniers tours, supprimez le restePerd entièrement le contexte initial
Résumé actualiséRemplacez périodiquement les anciens tours par un résumé rédigé par le modèleCoûte un appel supplémentaire ; conserve l’essentiel
Nouvelle session par tâcheRepartez de zéro lorsque le sujet changeGratuit et généralement approprié
ExternaliserConservez l’état dans des fichiers ou une base de données et ne chargez que ce dont l’étape en cours a besoinDemande le plus de travail, offre le meilleur résultat

Résumer les anciens tours

def compact(history, keep=6):
    class="s">""class="s">"Replace everything but the last `keep` turns with one summary turn."class="s">""
    if len(history) <= keep:
        return history
    old, recent = history[:-keep], history[-keep:]
    summary = summarise(old)          class=class="s">"c"># one cheap Haiku call
    return [{class="s">"role": class="s">"user", class="s">"content": fclass="s">"Summary of earlier discussion: {summary}"}] + recent

Effectuez la synthèse avec un modèle peu coûteux. Il s’agit d’une tâche de compression, pas de raisonnement.

Les résultats des outils sont généralement en cause

Dans les outils agentiques, commencer une nouvelle session entre des tâches sans rapport est l’optimisation la moins coûteuse qui soit. Dans Claude Code, il s’agit de /clear.