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.
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
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ètre | Description |
|---|---|
| Outil CLI | Quel agent de codage IA utiliser pour les answering sessions. |
| Modèle | Modè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éflexion | Profondeur 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. |
| Skills | Packages de connaissances métier pour l’Answering Agent. |
| Commands | Commandes 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). |
| Scripts | Scripts exécutables injectés dans la sandbox pour l’usage de l’Answering Agent. |
Le contexte est essentiel pour l'Answering Agent
Lancer une Answering Session
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.
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.
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.
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
correctedAnsweret 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.
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
| Statut | Description |
|---|---|
active | L’Answering Agent traite actuellement les questions dans la sandbox. |
completed | L’Answering Agent a terminé son traitement. Les questions de session sont prêtes pour l’examen humain. |
reviewing | Les questions de session ont été générées et attendent l’examen humain (approbation/refus). |
archived | La session a été archivée une fois l’examen terminé. |
killed | La session a été arrêtée manuellement avant la fin. |
cancelled | La 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égorie | Ce qu’elle couvre |
|---|---|
requirements | Questions sur le comportement attendu, les critères d’acceptation, ou ce que la fonctionnalité doit faire. |
architecture | Questions sur la conception du système, la structure des composants, les changements de modèle de données ou les patterns d’intégration. |
scope | Questions sur ce qui est ou non dans le périmètre de cette issue ou de cette session. |
priority | Questions sur l’importance relative des issues ou l’ordre dans lequel les changements doivent être appliqués. |
dependencies | Questions sur les dépendances externes, les bibliothèques tierces ou d’autres systèmes avec lesquels ce changement interagit. |
other | Questions 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 :
| Statut | Description |
|---|---|
pending | En attente d’examen humain. Pas encore inclus dans le contexte d’exécution. |
approved | Hypothèse acceptée telle quelle. Incluse dans le contexte d’exécution des issues associées. |
declined | Hypothè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: {
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
Prochaines étapes
Issue Sessions
Découvrez comment les Issue Sessions découvrent et extraient des issues de votre codebase.
Work Chains
Exécutez des issues séquentiellement une fois les hypothèses approuvées.
Vue d'ensemble des Issues
Consultez le cycle de vie complet de découverte et de résolution des issues.
Configuration des personas
Configurez la liaison de contexte et les skills pour votre persona Answering Agent.