Un développeur a déployé une carte de base de code à trois couches qui permet aux agents de codage IA de conserver un sens de l'orientation d'une session à l'autre.

Pourquoi les agents IA ont besoin d'une carte

Les assistants de codage basés sur le chat ne construisent un modèle mental d'un dépôt que tant que la fenêtre de prompt reste ouverte. Lorsque la fenêtre de contexte se ferme, le modèle s'évapore, forçant l'agent à redécouvrir les symboles, les imports et les relations entre les fichiers en partant de zéro. Ces allers-retours gaspillent des cycles de calcul et rendent l'agent moins utile lorsqu'un développeur passe d'un fichier à l'autre ou revient sur un projet après une pause.

Les trois couches qui composent la carte

  • Couche structurelle – un catalogue de symboles, d'appels de fonctions et d'instructions d'importation. Elle répond à la question statique « qui appelle quoi ».
  • Couche temporelle – des signaux dérivés de git, tels que les taux de rotation des fichiers (churn rates) et l'historique de propriété. Elle montre quelles parties du code changent le plus souvent et qui a tendance à les modifier.
  • Couche comportementale – le modèle d'utilisation réel extrait de l'historique de modification et de navigation de l'agent lui-même. Elle révèle quels fichiers sont réellement ouverts ensemble lors d'une session de codage, exposant les « véritables voisins » que l'analyse statique ne parvient pas à détecter.

La couche comportementale est la plus importante car elle reflète la manière dont les développeurs (et les agents) travaillent réellement, et pas seulement la façon dont le code est câblé.

Deux façons de fournir la carte à l'agent

  1. Ambient Path – un résumé concis injecté dans chaque interaction. Il donne à l'agent un aperçu immédiat du type « vous êtes dans le module X, ces symboles sont à proximité » sans aucun appel supplémentaire.
  2. Deep Path – des outils de requête à la demande que l'agent peut invoquer lorsqu'il a besoin de détails plus riches, comme une liste de fichiers qui changent fréquemment ensemble ou une chronologie de la propriété récente.

Séparer les informations ambiantes des informations approfondies permet de garder le prompt de routine léger tout en offrant de la profondeur lorsque cela est nécessaire.

Règles de conception pour maintenir le système léger

  • Éviter les serveurs de langage lourds. La carte repose sur une analyse syntaxique superficielle (shallow parsing) plutôt que sur une inférence de type complète. L'objectif n'est pas de surpasser les analyseurs statiques matures, mais de les compléter par une vision comportementale.
  • Limiter le graphe par projet. Le système ne crée pas de graphe de dépendances global à travers les dépôts. Ce confinement réduit l'empreinte mémoire et accélère les mises à jour.
  • Réutiliser le magasin de mémoire existant. Les journaux de modification de fichiers proviennent de la propre mémoire des appels d'outils de l'agent, évitant ainsi le stockage en double et maintenant la cohérence de la source de données.

Construction de la carte en pratique

  1. Collecter les données structurelles par un passage rapide sur les fichiers sources, en extrayant les symboles et les lignes d'importation.
  2. Extraire les métriques temporelles de l'historique git du dépôt, en notant quels fichiers reçoivent le plus de commits et qui en est l'auteur.
  3. Récolter les signaux comportementaux en enregistrant les actions d'ouverture de fichiers, de modification et de navigation de l'agent lors de sessions de codage réelles. Ces journaux deviennent la base de la matrice de « cooccurrence » qui définit les voisins comportementaux.
  4. Alimenter l'Ambient Path avec une liste courte et ordonnée des symboles et fichiers les plus pertinents pour la tâche en cours.
  5. Exposer le Deep Path sous la forme d'un ensemble de fonctions de requête légères (par exemple, « lister les fichiers modifiés ensemble lors des sessions récentes »).

Des hooks rapides capturent chaque modification au moment où elle se produit ; des balayages en arrière-plan plus lents recalculent les statistiques de rotation. Ensemble, ils maintiennent la carte à jour sans ralentir le flux de travail du développeur.

Leçons apprises en cours de route

  • Séparer l'ambiant de l'à-la-demande. Maintenir un résumé toujours présent très court évite l'inflation de tokens, tandis que les requêtes plus riches restent optionnelles.
  • Prioriser le contexte par tâche. Ordonner les symboles ambiants en fonction de la modification en cours permet d'obtenir des suggestions plus utiles.
  • Actualiser de manière agressive mais intelligente. Des hooks rapides capturent les changements à haute fréquence ; des scans périodiques gèrent la rotation à faible fréquence et les changements de propriété.
  • L'analyse syntaxique superficielle l'emporte pour la rapidité. L'analyse de type approfondie ajoute de la latence sans apporter l'aperçu comportemental qui constitue l'avantage de la carte.

À retenir : En superposant la structure statique, l'historique dérivé de git et l'utilisation réelle dans un modèle d'accès compact à deux niveaux, les développeurs peuvent offrir aux agents de codage IA une carte durable de la base de code. Maintenir un résumé toujours présent très court évite l'inflation de tokens.