Context Engineering avec Claude : maîtriser la context window, les tokens et les longues sessions

Quand une application Claude fonctionne pendant quelques tours seulement, la gestion du contexte paraît simple.

On envoie :

  • un system prompt ;
  • quelques messages ;
  • éventuellement quelques tools ;
  • puis on reçoit une réponse.

Mais lorsque la conversation s’allonge, que les tools retournent beaucoup de données, que l’on ajoute des documents, des logs, des résultats de recherche ou des sous-tâches, un problème apparaît progressivement :

tout ce contexte consomme le budget de tokens disponible.

C’est là qu’intervient le context engineering.

L’objectif n’est pas simplement de « garder l’historique ».

Il s’agit de décider quelles informations doivent rester dans le contexte, lesquelles peuvent être supprimées, résumées ou déplacées, et lesquelles doivent être confiées à un subagent.


1. La Context Window est un budget

La context window représente la quantité totale d’information que Claude peut prendre en compte dans une requête.

Elle contient notamment :

system prompt
+
messages
+
tool definitions
+
tool results
+
documents
+
images
+
previous assistant responses
+
current user request

Tous ces éléments consomment des tokens.

Il faut donc raisonner ainsi :

Context window
=
budget total disponible

Ce budget n’est pas uniquement consommé par le message utilisateur.


2. Les Tools consomment eux aussi du contexte

C’est une source fréquente de surprise.

Supposons qu’un agent appelle :

search_logs

et que le tool retourne :

20 000 lignes de logs

Même si Claude n’a besoin que de trois lignes réellement importantes, les 20 000 lignes peuvent être injectées dans le contexte.

Puis l’agent appelle :

read_file

et reçoit plusieurs milliers de lignes supplémentaires.

Puis :

search_repository

Puis :

run_tests

Puis encore un autre tool.

Le contexte peut rapidement devenir :

Prompt
+ History
+ Tool schemas
+ Huge tool result
+ Huge tool result
+ Huge tool result
+ ...

Le problème n’est alors plus seulement le prompt.

Le problème devient l’architecture du contexte.


3. Pourquoi les longues sessions deviennent difficiles

Au fur et à mesure que le contexte grossit :

  • le coût augmente ;
  • la latence augmente ;
  • le système se rapproche de la limite de contexte ;
  • les informations vraiment importantes représentent une part plus faible du contexte global.

Le module insiste notamment sur un cas de production classique :

Prototype
→ fonctionne avec petits tool results

Production
→ tool results beaucoup plus gros

Résultat
→ contexte saturé beaucoup plus vite que prévu

Le problème ne vient donc pas nécessairement du modèle.

Il peut venir de la quantité d’information accumulée.


4. Premier réflexe : mesurer les Tokens

Avant d’envoyer une requête, l’application peut estimer combien de tokens seront consommés.

Le module mentionne l’utilisation d’un endpoint de token counting.

L’idée est simple :

Construire la requête
        ↓
Compter les tokens
        ↓
Comparer au budget disponible
        ↓
Décider de compacter / supprimer / déléguer
        ↓
Envoyer la requête

Cela permet d’éviter de découvrir le problème uniquement au moment où la requête devient trop grande.


5. Context Engineering ≠ conserver tout l’historique

Une erreur fréquente consiste à faire :

messages.append(everything_forever)

et à envoyer systématiquement tout l’historique à Claude.

Cette stratégie peut fonctionner pour :

  • une courte conversation ;
  • une démonstration ;
  • un workflow limité.

Mais elle devient fragile dès que la session dure longtemps.

Le contexte doit être géré comme une ressource.


6. Les quatre grandes stratégies

Le module présente quatre approches principales :

Pruning
Compaction
Clearing
Subagent handoffs

Elles répondent à des besoins différents.


7. Pruning : supprimer ce qui n’est plus nécessaire

Le pruning consiste à retirer du contexte certaines informations devenues inutiles.

Par exemple :

Tool result initial
→ utilisé pour prendre une décision
→ décision déjà prise
→ résultat détaillé plus nécessaire

On peut donc conserver :

Décision retenue

et supprimer :

15 000 lignes de données brutes

8. Exemple de Pruning

Supposons qu’un agent analyse des logs.

Il reçoit :

12 000 lignes

Il conclut :

The failures are caused by an expired OAuth certificate.

Une fois cette conclusion validée, conserver l’intégralité des logs dans tous les tours suivants peut être inutile.

On peut préférer conserver :

Key finding:
Authentication failures are caused by an expired OAuth certificate.

Le contexte devient beaucoup plus compact.


9. Limite du Pruning

Le pruning détruit de l’information.

Si vous supprimez :

logs détaillés

et que Claude doit plus tard vérifier :

la ligne exacte contenant l’erreur

il faudra peut-être refaire un tool call.

Le pruning doit donc être utilisé lorsque l’on accepte de perdre les détails retirés.


10. Compaction : résumer au lieu de supprimer

La compaction consiste à remplacer une longue portion de contexte par un résumé.

Par exemple :

40 messages
+
5 tool results
+
3 décisions

peuvent devenir :

Summary:
- Authentication migration targets service X.
- Legacy endpoint must remain available.
- Database schema has already been migrated.
- Current blocker is certificate rotation.
- Previous attempt failed because environment variable AUTH_CERT was stale.

Le contexte est réduit, tout en conservant l’essentiel.


11. Une bonne Compaction doit préserver l’état critique

Le module recommande de conserver notamment :

  • les chemins de fichiers ;
  • les décisions prises ;
  • les erreurs rencontrées ;
  • les solutions déjà testées ;
  • les résultats importants.

Mauvais résumé :

We investigated the bug and made progress.

Bon résumé :

Investigated authentication failure.

Key findings:
- failing file: src/auth/config.ts
- current certificate path: /etc/auth/cert.pem
- production still references old variable AUTH_CERT_V1
- staging already uses AUTH_CERT_V2
- restart alone did not fix the issue
- next step: update deployment configuration before rerunning tests

Le second résumé permet réellement de continuer le travail.


12. Le risque de la Compaction

Une compaction produit nécessairement une perte.

Le résumé conserve ce que le système considère important.

Il abandonne le reste.

Le problème est donc :

ce qui paraît secondaire maintenant peut devenir important plus tard.

Il faut choisir soigneusement les informations à préserver.


13. Compaction dans Claude Code

Le module mentionne notamment la commande :

/compact

dans Claude Code.

L’objectif est de réduire l’historique actif en produisant une version condensée permettant de poursuivre le travail avec davantage d’espace disponible.

Il faut retenir le principe général :

Long context
      ↓
Summarize critical state
      ↓
Continue with compacted context

14. Clearing : repartir proprement

Parfois, la meilleure solution n’est ni de supprimer quelques blocs ni de résumer.

Il faut simplement démarrer un nouveau contexte.

C’est le clearing.

Exemple :

Task A completed
      ↓
Task B unrelated

Pourquoi conserver :

  • tous les logs de Task A ;
  • tous les tool calls ;
  • toutes les décisions ;
  • tout l’historique ;

si Task B n’en a pas besoin ?

On peut repartir avec :

New session

15. Clearing dans Claude Code

Le module cite notamment :

/clear

dans Claude Code.

Cette approche élimine le contexte précédent.

Elle est adaptée lorsque le travail suivant ne dépend plus réellement de l’historique existant.


16. Le compromis du Clearing

Le clearing offre le maximum d’espace.

Mais il supprime aussi toute continuité.

Après :

/clear

Claude ne connaît plus les détails du travail précédent, sauf si vous les réintroduisez.

C’est donc un choix volontaire :

maximum de contexte disponible
↔
perte de l’état précédent

17. Subagent Handoffs

La quatrième stratégie consiste à déléguer une tâche à un subagent disposant de son propre contexte.

Conceptuellement :

Main agent
    ↓
Scoped task
    ↓
Subagent
    ↓
Independent context
    ↓
Result summary
    ↓
Main agent

Le main agent n’a pas besoin de contenir toutes les étapes intermédiaires du travail du subagent.


18. Pourquoi les Subagents économisent du contexte

Supposons que le main agent doive :

Analyze repository and propose migration

Il délègue :

Subagent A
→ inspect authentication code
Subagent B
→ inspect deployment configuration
Subagent C
→ inspect tests

Chaque subagent peut parcourir beaucoup de données dans sa propre context window.

Le main agent reçoit uniquement :

summary A
summary B
summary C

Au lieu de recevoir tout leur historique.


19. Le prix des Subagents

Comme pour la compaction, on perd une partie du chemin intermédiaire.

Le main agent reçoit :

conclusion

mais pas nécessairement :

every intermediate observation

Il faut donc définir clairement ce que le subagent doit retourner.


20. Comment donner une bonne tâche à un Subagent

Le module recommande une tâche bien délimitée.

Elle doit inclure :

  • l’objectif ;
  • le minimum de contexte nécessaire ;
  • les résultats antérieurs pertinents ;
  • les tools autorisés ;
  • les conditions de sortie.

Par exemple :

Inspect the authentication module only.

Goal:
Identify all dependencies on the legacy authentication API.

Relevant context:
The target replacement is Identity Service v2.

Tools:
- search_repository
- read_file

Return:
- file paths
- dependency list
- migration risks

Stop once all direct dependencies have been identified.

C’est beaucoup plus efficace que :

Investigate the codebase.

21. Comparer les quatre stratégies

StratégieAvantageInconvénient
PruningTrès simplePerte de détails
CompactionConserve l’essentielRésumé imparfait
ClearingLibère presque tout le contextePerte totale de continuité
SubagentIsole un travail complexeRésumé intermédiaire nécessaire

Le bon choix dépend du workflow.


22. Règle pratique

On peut retenir :

Information inutile ?
→ prune

Information utile mais trop volumineuse ?
→ compact

Nouvelle tâche indépendante ?
→ clear

Sous-tâche complexe et isolable ?
→ subagent

23. Prompt Caching

Une autre technique importante concerne le coût des parties stables du contexte.

Supposons que vous envoyiez à chaque requête :

large system prompt
+
tool definitions
+
large reference document
+
new user message

Les trois premiers éléments changent rarement.

Le prompt caching permet de tirer parti de cette stabilité.

Le principe est de mettre en cache une partie du préfixe stable afin de réduire le coût de ses réutilisations.


24. Que mettre en cache ?

Les meilleurs candidats sont généralement les blocs stables.

Par exemple :

system prompt
tool definitions
long reference documentation

Plutôt que :

current user request

qui change à chaque tour.

Conceptuellement :

[ stable prefix ] [ dynamic suffix ]
      cache              new

25. Cache ≠ Mémoire

C’est une distinction importante.

Le prompt caching ne constitue pas une mémoire applicative.

Il sert principalement à optimiser le traitement de contenus réutilisés.

Il ne signifie pas :

Claude se souvient automatiquement de la conversation

L’application doit toujours gérer son contexte et son état.


26. Context Window et RAG

Le Retrieval-Augmented Generation permet d’éviter d’insérer une base documentaire entière dans le contexte.

Au lieu de :

all company documentation

on recherche :

only relevant passages

Puis on fournit ces passages à Claude.

Conceptuellement :

User question
    ↓
Retrieval
    ↓
Relevant chunks
    ↓
Claude

C’est une forme essentielle de context engineering.


27. Où un système RAG peut échouer

Le module identifie plusieurs niveaux possibles d’échec.

Chunking

Le document a été découpé de manière inadaptée.

Retrieval

Les mauvais morceaux ont été récupérés.

Context assembly

Les bons morceaux ont été trouvés mais mal présentés ou insuffisamment contextualisés.

Il ne faut donc pas automatiquement conclure :

Claude hallucine

Le problème peut venir du pipeline de récupération.


28. Chunking

Le module recommande comme point de départ raisonnable de découper par :

  • phrases ;
  • sections ;

avec un certain chevauchement.

Pourquoi ?

Parce qu’un découpage arbitraire peut casser le sens.

Exemple :

Chunk 1:
The authentication token expires after

Chunk 2:
24 hours unless refresh is enabled.

Les deux morceaux séparés sont moins utiles que la phrase complète.


29. Retrieval hybride

Le module mentionne également l’intérêt potentiel d’une approche hybride combinant :

lexical search
+
semantic search

Le lexical est utile lorsque l’on cherche des termes précis :

AUTH_CERT_V2

Le semantic search est utile lorsque la question est conceptuellement liée mais formulée différemment.

Les deux peuvent donc se compléter.


30. Gros Tool Results : ne pas tout conserver

Un principe de production particulièrement utile est :

Un tool result n’a pas nécessairement besoin de rester intégralement dans le contexte après avoir servi.

Exemple :

search_repository
→ 300 results

Claude identifie :

3 relevant files

Il peut être préférable de conserver :

Relevant files:
- src/auth/client.ts
- src/auth/config.ts
- tests/auth.test.ts

et de supprimer le reste.


31. Exemple de Postmortem

Le module décrit un scénario où une équipe avait correctement prévu un plafond d’environ :

40k tokens

dans ses tests.

Le prototype fonctionnait.

Mais en production, les tool outputs étaient beaucoup plus volumineux.

Résultat :

larger tool outputs
      ↓
faster context growth
      ↓
degraded behavior / context pressure

Le vrai problème n’était pas nécessairement le prompt ou le modèle.

C’était l’accumulation de contexte.


32. Correction du problème

La solution proposée combine notamment :

Prune bulky tool outputs
+
Compact proactively

Le mot important est :

proactively

Il vaut mieux gérer le contexte avant d’atteindre la limite.

Pas une fois le système déjà saturé.


33. Ne pas confondre dégradation et disparition magique des instructions

Lorsqu’un contexte devient énorme, il faut éviter une explication simpliste du type :

Claude oublie automatiquement les anciennes instructions.

Le problème pratique est plutôt que l’application accumule trop de contenu et doit décider comment gérer son budget de contexte.

Si elle supprime, compacte ou remplace certaines informations, celles-ci peuvent effectivement disparaître ou être résumées.

La responsabilité du context engineering reste donc largement côté application.


34. Context Engineering et Agents

Les agents rendent le problème encore plus important.

Un agent peut enchaîner :

tool call
→ tool result
→ reasoning
→ tool call
→ tool result
→ reasoning
...

Chaque tour peut augmenter le contexte.

Sans stratégie, un agent long-running peut progressivement accumuler :

  • observations obsolètes ;
  • logs ;
  • résultats temporaires ;
  • plans anciens ;
  • erreurs déjà résolues.

Le contexte devient alors une sorte de journal complet.

Ce n’est pas toujours souhaitable.


35. Conserver l’état, pas nécessairement le journal complet

Pour un agent, il est souvent plus utile de conserver :

Current state

que :

Complete historical transcript

Exemple :

Mauvais état :

20 pages describing every failed attempt

Meilleur état :

Current objective:
Migrate authentication.

Completed:
- identity client implemented
- unit tests passing

Failed:
- production deployment due to stale certificate env var

Next:
- update deployment secret
- rerun integration tests

Le second contexte est beaucoup plus actionnable.


36. Context Engineering et Coût

Le contexte influence directement le coût.

Si vous envoyez à chaque tour :

100k tokens of history

même pour poser une question simple, vous payez pour retraiter ce contexte.

Réduire le contexte n’est donc pas seulement une optimisation technique.

C’est aussi une optimisation économique.


37. Context Engineering et Latence

Même logique pour la latence.

Plus l’entrée est importante, plus le système doit traiter de données.

Réduire les informations inutiles peut donc améliorer :

cost
+
latency
+
robustness

C’est pour cela que le context engineering est un sujet de production, pas uniquement un problème de limite maximale.


38. Comment diagnostiquer un problème de Context

Si une application fonctionne parfaitement au début mais se dégrade après plusieurs tours, il faut examiner :

context size
tool output size
conversation history
repeated documents
redundant instructions

Avant de conclure :

model is inconsistent

Le problème peut être architectural.


39. Une boucle de contrôle pratique

Une application peut surveiller :

Current token count
        ↓
Below threshold?
       ↙    ↘
     Yes     No
      ↓       ↓
 Continue   Context maintenance
               ↓
        prune / compact /
        clear / subagent

Cette logique peut faire partie du runtime de l’application.


40. Ce qu’il faut retenir pour la certification

Principe 1 — La Context Window est un budget partagé

Elle contient :

system
messages
tools
tool results
documents
output

Tout consomme des tokens.


Principe 2 — Les Tool Results peuvent être très coûteux

Ne supposez pas que seul l’historique conversationnel fait grossir le contexte.


Principe 3 — Utiliser Pruning lorsque les détails ne sont plus nécessaires

remove unnecessary data

Principe 4 — Utiliser Compaction lorsque l’état doit être conservé

large history
→ summary of critical state

Principe 5 — Utiliser Clearing pour une nouvelle tâche indépendante

Inutile de transporter tout l’ancien contexte lorsque le travail suivant n’en dépend pas.


Principe 6 — Utiliser des Subagents pour isoler des sous-tâches

Un subagent peut consommer beaucoup de contexte localement et ne retourner qu’un résumé utile au main agent.


Principe 7 — Mesurer les Tokens

Ne gérez pas la context window uniquement à l’intuition.


Principe 8 — Le Prompt Caching optimise les préfixes stables

Il ne remplace pas une stratégie de mémoire ou de gestion de contexte.


Pièges fréquents à l’examen

Piège 1

« Tant que la conversation reste sous la limite maximale, il n’y a aucun problème de contexte. »

Faux.

Un contexte énorme peut déjà augmenter coût et latence bien avant la limite.


Piège 2

« Pour conserver l’état d’un agent, il faut garder l’intégralité de tous les tool results. »

Non.

Il est souvent préférable de conserver les conclusions et l’état réellement utile.


Piège 3

« Compaction et Clearing sont équivalents. »

Non.

Compaction conserve un résumé.

Clearing repart sans le contexte précédent.


Piège 4

« Un Subagent partage forcément tout l’historique du Main Agent. »

Non.

L’intérêt est justement de lui fournir un contexte ciblé et isolé.


Piège 5

« Prompt caching permet à Claude de mémoriser les conversations précédentes. »

Non.

Il s’agit d’une optimisation de réutilisation du contexte stable, pas d’une mémoire applicative.


Piège 6

« Une dégradation après 30 tours signifie forcément qu’il faut un meilleur modèle. »

Non.

Examinez d’abord :

context growth
tool outputs
redundant history

La règle à mémoriser

Pour le context engineering, retenez :

Context is a budget
        ↓
Measure it
        ↓
Keep only what is useful
        ↓
Prune details
Compact state
Clear unrelated work
Delegate isolated work
        ↓
Continue with a smaller,
higher-value context

La qualité d’un système Claude ne dépend donc pas seulement de ce que l’on ajoute au contexte.

Elle dépend aussi de ce que l’on décide de ne plus y conserver.

Le context engineering consiste précisément à maintenir le meilleur rapport possible entre :

information useful
/
tokens consumed

C’est une compétence essentielle dès que l’on construit des agents, des workflows longs ou des applications Claude destinées à la production.


Article suivant

Construire un agent Claude en production : workflow, agent loop et Human-in-the-Loop

Nous verrons comment distinguer un simple appel LLM, un workflow déterministe et un véritable agent, comment construire une agent loop, définir des conditions d’arrêt et placer les validations humaines aux bons endroits.

Le phare info – Média indépendant & critique
Sélectionne, organise, contextualise et partage des contenus pertinents autour d’un thème ou d’une problématique, dans une logique de veille, de transmission et de mise en sens.
Pour cet article, l’intelligence artificielle a été utilisée comme un outil d’aide à l’exploration, à la structuration et à la rédaction. Elle permet de confronter plusieurs angles, de repérer certains biais humains possibles et de faire émerger des points de vigilance. Le curateur humain observe aussi les biais possibles de l’IA, vérifie les éléments essentiels, nuance l’analyse, corrige les formulations fragiles et assume la publication.

Articles liés

Fiche de révision certification — Accelerators & IP Contribution

Cette fiche résume les notions essentielles du module Accelerators & IP Contribution. Le fil conducteur est simple : Un build Claude n’est pas terminé lorsqu’il fonctionne....

Étude de cas : corriger un accelerator Claude mal packagé, mal versionné et mal sécurisé

Un système Claude peut fonctionner parfaitement en démonstration et pourtant être impropre à la production. Le cas cumulatif du module illustre précisément cette situation. L’application : s’exécute...

Applications Claude multi-composants : trust boundaries, least privilege et sécurité

Une application Claude moderne n’est souvent pas constituée d’un seul appel API. Elle peut combiner : une API applicative ; Claude ; un agent ; Claude Code ; un MCP...

Comparer les plateformes Claude : latency, compliance, data residency et total cost

Lorsque plusieurs plateformes permettent d’exécuter Claude, comment choisir ? Une comparaison superficielle pourrait se limiter à : la plateforme la moins chère ; celle que l’équipe connaît...

Model versioning avec Claude : pin what ships, eval gates et rollback

Changer de modèle dans une application Claude peut sembler être une modification minime : model = "new-model" Pourtant, en production, ce changement peut modifier : la qualité...

Le sentier du savoir

De la curiosité à la transmission, explorez les étapes qui permettent de transformer l’information en compréhension durable.

Étape 1 — Construire une culture générale solide

Construire une base solide de connaissances pour comprendre le monde. Relier les faits, les disciplines et les repères essentiels.

Étape 2 — Maîtriser la pensée critique et l’analyse : apprendre à penser contre ses propres certitudes

Apprendre à analyser l’information, repérer les biais et questionner les évidences. Penser par soi-même dans un monde saturé de récits.

Étape 3 – Apprendre à argumenter et à convaincre

Structurer sa pensée pour convaincre sans manipuler. Savoir débattre, nuancer et formuler des idées claires.

Étape 4 – Approfondir un ou plusieurs domaines d’expertise

Explorer un ou plusieurs domaines en profondeur. Passer de la curiosité à la compréhension experte.

Etapes 5 : Devenir polyglotte : élargir sa pensée par les langues

Élargir ses horizons par le langage et les cultures. Penser autrement en changeant de langue.

Étape 6 — Comprendre la méthode scientifique et expérimenter

Comprendre la méthode scientifique et l’expérimentation. Distinguer savoirs établis, hypothèses et croyances.

Étape 7 – Écrire, transTransmission : écrire, transmettre, enseigner

Écrire, expliquer, partager ce que l’on a compris. Transformer le savoir en outil collectif.

Étape 8 — Cultiver l’équilibre corps-esprit pour soutenir l’érudition

Cultiver le corps et l’esprit pour soutenir l’érudition dans le temps. Le savoir durable repose aussi sur l’attention et l’équilibre personnel.