Votre configuration de codage IA est un outil compliqué. Votre base de code est complexe.

Les nouveaux outils de codage IA promettent de rendre les agents plus fiables. On voit apparaître des frameworks pour les compétences, les super-pouvoirs et le développement piloté par les spécifications. Ces outils fonctionnent. Ils aident les agents à suivre un processus plutôt qu'à deviner.

Mais il y a un piège. On pense qu'une meilleure configuration pour une tâche crée un système cohérent. Ce n'est pas le cas.

Pour comprendre pourquoi, utilisez le framework Cynefin. Il sépare les problèmes en deux types : Compliqué et Complexe.

Problèmes compliqués Ceux-ci ont une réponse identifiable. On utilise l'analyse et la compétence pour la trouver. Les exemples incluent la refactorisation d'un module ou l'écriture d'une fonction de validation. Une fois la réponse trouvée, on peut la répéter. La plupart des outils de codage IA se situent ici. Ils se concentrent sur l'unité de travail. Ils rendent les tâches répétables et vérifiables.

Problèmes complexes Ceux-ci n'ont pas de réponse prévisible. Le système est un réseau d'éléments interconnectés. Les résultats n'apparaissent qu'après l'action. Est-ce que quarante changements fusionnés briseront l'architecture dans six mois ? Est-ce que l'Agent A contredira l'Agent B ? On ne peut pas trouver ces réponses en regardant un seul fichier. Elles émergent de l'interaction entre les composants.

Le décalage se produit lorsque l'on attend d'outils compliqués qu'ils résolvent des problèmes complexes.

Un outil peut permettre à un agent d'écrire une fonction parfaite. Mais si une tâche utilise userId et une autre user_id, le système se brise. Les deux tâches étaient « correctes » de manière isolée. L'échec est émergent. Il réside dans l'interaction, pas dans l'unité.

Même des fenêtres de contexte massives ne peuvent pas résoudre cela. Une fenêtre plus large vous aide à voir davantage, mais voir n'est pas la même chose que déduire. Vous pouvez lire une base de code entière sans savoir si elle subira un deadlock sous une charge de production. C'est une propriété d'exécution (runtime).

Comment gérer les deux :

  • Pour la couche compliquée : Utilisez des compétences, des spécifications et le TDD. Cela rend la production individuelle de l'agent rigoureuse.
  • Pour la couche complexe : Utilisez la méthode sonder-percevoir-répondre (probe-sense-respond). Vous ne pouvez pas prédire ce qui va casser. Vous devez fusionner, déployer et observer. Utilisez des tests d'intégration et l'observabilité pour percevoir ce qui se passe lorsque les éléments se combinent.

Ne vous laissez pas séduire par la promesse qu'une meilleure spécification rendra votre système stable. Les spécifications rendent l'unité fiable. Elles ne rendent pas le système cohérent.

Adaptez votre méthode au domaine. Utilisez les outils pour perfectionner l'unité. Utilisez l'expérimentation pour comprendre le système.

Source: https://dev.to/bala_paranj_059d338e44e7e/your-ai-coding-setup-is-a-complicated-domain-tool-your-codebase-is-complex-3mkc

Communauté d'apprentissage optionnelle: https://t.me/GyaanSetuAi