Answering Sessions

Découvrez comment les Answering Sessions de CodeCourier résolvent les questions et valident les hypothèses générées pendant les Issue Sessions, produisant des réponses exploitables qui guident l'implémentation par l'IA avant qu'aucun code ne soit écrit.

9 min lire
issuesanswering-sessionsquestions

Après qu’une Issue Session a scanné votre codebase et produit une liste d’issues, elle enregistre également les questions auxquelles elle n’a pas pu répondre à partir du seul code, ainsi que les hypothèses qu’elle a formulées en poursuivant sans directives explicites. Une Answering Session est l’étape suivante : une session pilotée par l’IA où un Answering Agent examine ces questions, les affine, et produit des hypothèses structurées avec des scores de confiance que vous examinez et approuvez avant le début de l’implémentation.

Le résultat est un ensemble de réponses approuvées, examinées par un humain, qui sont injectées comme contexte dans les workflow runs lorsque les issues résultantes sont exécutées - garantissant que l’agent qui implémente dispose dès le départ de la bonne compréhension des exigences, du périmètre et de l’architecture.

Pourquoi les Answering Sessions comptent

Les Issue Sessions sont délibérément larges - l’agent de scan fait remonter tout ce qu’il trouve sans avoir nécessairement le contexte complet sur l’intention, les contraintes ou les priorités. Cela produit des listes d’issues riches, mais laisse aussi des questions ouvertes :

  • “Ce correctif de sécurité doit-il être appliqué à tous les environnements ou seulement à la production ?”
  • “Le pattern de requête N+1 est-il intentionnel ici en raison d’un cache à une couche supérieure ?”
  • “Ce refactoring doit-il maintenir la compatibilité ascendante avec l’API v1 ?”

Sans réponses à ces questions, l’agent qui implémente doit formuler ses propres hypothèses - qui peuvent être erronées. L’Answering Session vous offre un moyen structuré de résoudre ces incertitudes avant l’implémentation, réduisant considérablement le risque que les agents IA implémentent des corrections techniquement correctes mais contextuellement erronées.

Optionnelle mais à forte valeur ajoutée

Les Answering Sessions sont optionnelles. Pour des issues simples et autonomes (par exemple, “corrige ce déréférencement de pointeur nul”), passer directement à l’exécution convient. Pour des issues complexes impliquant une interprétation des exigences, des décisions architecturales ou une ambiguïté de périmètre, une Answering Session est fortement recommandée.

Configurer l’Answering Agent

Avant de lancer une Answering Session, configurez l’Answering Agent depuis la page Answering Setup à l’adresse /p/{projectId}/answering-setup. Cette configuration est partagée par toutes les Answering Sessions du projet :

ParamètreDescription
Outil CLIQuel agent de codage IA utiliser pour les answering sessions.
ModèleModèle LLM pour l’Answering Agent. Opus est recommandé pour une analyse nuancée des questions et la génération d’hypothèses.
Effort de réflexionProfondeur de raisonnement. Définissez-le sur “high” ou plus pour une analyse approfondie des questions, particulièrement lorsqu’elles touchent à des enjeux architecturaux.
Contexte liéLiez un document de contexte à l’Answering Agent. Les documents de contexte architectural sont particulièrement précieux ici - ils aident l’agent à produire des hypothèses plus précises en ancrant son raisonnement dans les décisions de conception réelles du projet.
SkillsPackages de connaissances métier pour l’Answering Agent.
CommandsCommandes shell que l’Answering Agent peut invoquer pendant sa session (par exemple, pour lire des fichiers de configuration ou exécuter des requêtes de diagnostic).
ScriptsScripts exécutables injectés dans la sandbox pour l’usage de l’Answering Agent.

Le contexte est essentiel pour l'Answering Agent

L’Answering Agent produit de meilleures hypothèses lorsqu’il a accès à un contexte au niveau du projet. Liez un document de référence architectural et incluez des skills pertinents pour votre stack technologique. Un agent qui comprend les contraintes de votre système peut répondre à des questions comme “cette couche de cache est-elle intentionnelle ?” bien plus précisément qu’un agent opérant à l’aveugle.

Lancer une Answering Session

1

Terminer une Issue Session

Une Answering Session nécessite une Issue Session terminée avec des questions et hypothèses extraites. Accédez à la page de détail de l’Issue Session et confirmez que le statut de la session est completed et que des questions ont été extraites.

2

Lancer depuis la page de détail de l'Issue Session

Cliquez sur le bouton Démarrer une Answering Session sur la page de détail de l’Issue Session. Cela crée un nouvel enregistrement d’Answering Session lié à l’Issue Session via issueSessionIdet provisionne une sandbox pour l’Answering Agent.

3

L'Answering Agent s'exécute

L’Answering Agent reçoit les questions et hypothèses de l’Issue Session ainsi que tout contexte lié et les skills configurés. Il examine chaque question, affine la formulation pour plus de clarté, évalue l’hypothèse initiale, et produit une réponse structurée avec :

  • Un texte de question affiné et une explication de contexte
  • Une justification “pourquoi c’est important”
  • Une classification par catégorie (requirements, architecture, scope, priority, dependencies ou other)
  • Une hypothèse révisée avec son raisonnement
  • Un score de confiance (low, medium ou high) reflétant le degré de certitude de l’agent quant à son hypothèse

La session suit la progression en temps réel. Une fois terminée, toutes les questions de session sont stockées comme des enregistrements sessionQuestionsliés à la fois à l’Answering Session et à l’Issue Session.

4

Examiner chaque question et hypothèse

Accédez à la page de détail de l’Answering Session pour examiner les résultats. Chaque question de session est affichée avec l’hypothèse de l’Answering Agent et son score de confiance. Pour chacune, vous pouvez :

  • Approuver- Accepter l’hypothèse telle quelle. Elle sera utilisée comme contexte lors de l’exécution des issues associées.
  • Refuser avec correction- Rejeter l’hypothèse et fournir une réponse corrigée. Saisissez votre correction dans le champ correctedAnswer et validez. La réponse corrigée remplace l’hypothèse dans le contexte d’exécution.
  • Laisser en attente- Reporter l’examen. La question reste au statut pendinget ne contribue pas au contexte d’exécution tant qu’elle n’est pas approuvée ou refusée.
5

Utiliser les hypothèses approuvées lors de l'exécution des issues

Une fois les questions examinées, les hypothèses approuvées et corrigées sont disponibles comme contexte lors de l’exécution des issues de l’Issue Session liée. Lorsque vous exécutez une issue ou démarrez une work chain, le système peut injecter les hypothèses approuvées dans le workflow run comme contexte supplémentaire aux côtés du suggestedPromptde l’issue.

Statuts des Answering Sessions

StatutDescription
activeL’Answering Agent traite actuellement les questions dans la sandbox.
completedL’Answering Agent a terminé son traitement. Les questions de session sont prêtes pour l’examen humain.
reviewingLes questions de session ont été générées et attendent l’examen humain (approbation/refus).
archivedLa session a été archivée une fois l’examen terminé.
killedLa session a été arrêtée manuellement avant la fin.
cancelledLa session a été annulée avant que la sandbox ne démarre.

Catégories de questions de session

L’Answering Agent classe chaque question dans l’une des six catégories pour vous aider à prioriser votre examen :

CatégorieCe qu’elle couvre
requirementsQuestions sur le comportement attendu, les critères d’acceptation, ou ce que la fonctionnalité doit faire.
architectureQuestions sur la conception du système, la structure des composants, les changements de modèle de données ou les patterns d’intégration.
scopeQuestions sur ce qui est ou non dans le périmètre de cette issue ou de cette session.
priorityQuestions sur l’importance relative des issues ou l’ordre dans lequel les changements doivent être appliqués.
dependenciesQuestions sur les dépendances externes, les bibliothèques tierces ou d’autres systèmes avec lesquels ce changement interagit.
otherQuestions qui ne rentrent pas nettement dans les catégories ci-dessus.

Vous pouvez filtrer la liste d’examen par catégorie pour traiter d’abord les questions les plus critiques. Les questions d’architecture et d’exigences ont généralement l’impact le plus élevé sur la qualité de l’implémentation.

Statuts d’examen des questions de session

Chaque question de session possède un reviewStatus qui suit son état dans le flux d’examen humain :

StatutDescription
pendingEn attente d’examen humain. Pas encore inclus dans le contexte d’exécution.
approvedHypothèse acceptée telle quelle. Incluse dans le contexte d’exécution des issues associées.
declinedHypothèse rejetée. La correctedAnswer est utilisée comme contexte à la place.

Modèle de données

Les Answering Sessions sont représentées par deux types de tables dans la base de données : answeringSessions et sessionQuestions.

answeringSessions schema
answeringSessions: {
  userId: Id<"users">;
  projectId: Id<"projects">;
  issueSessionId: Id<"issueSessions">;
  sandboxId?: string;

  // Lifecycle
  status: "active" | "completed" | "reviewing" | "archived" | "killed" | "cancelled";

  // Agent outputs
  questionsJson?: string;     // Raw questions JSON from the Issue Session, passed as input
  assumptionsJson?: string;   // Raw assumptions JSON from the Issue Session, passed as input
  prompt?: string;            // The prompt used for the Answering Agent
  error?: string;             // Error message if the session failed or was killed
}

Comment les hypothèses approuvées améliorent l’implémentation

Lorsqu’un workflow run exécute une issue associée à une Answering Session, les hypothèses approuvées et corrigées sont formatées comme un contexte structuré et ajoutées en préambule au prompt du run. L’agent qui implémente reçoit non seulement “corrige ce bug”, mais aussi :

  • Des exigences clarifiées : quel comportement est attendu et quels cas limites sont dans le périmètre.
  • Des orientations architecturales : quels patterns suivre, quelles abstractions utiliser, et quelles limites ne pas franchir.
  • Un contexte de priorité : quels aspects de la correction sont les plus critiques et lesquels sont optionnels.
  • Une connaissance des dépendances : quels autres systèmes ou bibliothèques sont impliqués et quelles contraintes ils imposent.

Ce contexte supplémentaire réduit la probabilité que l’agent qui implémente formule ses propres hypothèses incorrectes, ce qui est l’une des sources les plus courantes d’implémentation IA de faible qualité.

Learnings issus des Answering Sessions

Les questions de session refusées (et corrigées) sont particulièrement précieuses comme entrées de learning. Lorsque l’Answering Agent a formulé une hypothèse erronée et que vous l’avez corrigée, cette correction enseigne au système des contraintes, préférences ou patterns de votre projet qui n’étaient pas évidents à partir de la seule codebase.

Si une question de session est liée à un learningId, cela signifie que la correction a été compilée dans un enregistrement de learning qui sera injecté dans les sessions futures - de sorte que l’Answering Agent (et les autres agents liés aux learnings) sera moins susceptible de refaire la même hypothèse incorrecte à l’avenir.

Amélioration en boucle fermée

Les Answering Sessions créent une boucle de feedback : plus vous examinez et corrigez d’hypothèses, plus le système en apprend sur le contexte de votre projet. Avec le temps, les Answering Sessions nécessitent moins de corrections, car les agents ont accumulé une compréhension plus riche de vos contraintes et préférences grâce au système de learnings.

Prochaines étapes