Answering Session

Scopri come le Answering Session di CodeCourier risolvono le domande e convalidano le assunzioni generate durante le Issue Session, producendo risposte attuabili che guidano l'implementazione dell'IA prima che venga scritta una sola riga di codice.

9 min letto
issuesanswering-sessionsquestions

Dopo che una Issue Session ha scansionato la tua codebase e prodotto un elenco di issue, registra anche le domande a cui non è riuscita a rispondere basandosi solo sul codice e le assunzioni fatte procedendo senza indicazioni esplicite. Una Answering Sessionè il passo successivo: una session basata su IA in cui un Answering Agent esamina quelle domande, le raffina e produce assunzioni strutturate con punteggi di confidenza che esamini e approvi prima che inizi l’implementazione.

Il risultato è un insieme di risposte approvate, esaminate da un umano, che vengono iniettate come contesto nei workflow run quando vengono eseguite le issue risultanti - garantendo che l’agente che implementa abbia fin dall’inizio la giusta comprensione di requisiti, scope e architettura.

Perché le Answering Session contano

Le Issue Session sono deliberatamente ampie - l’agente di scansione fa emergere tutto ciò che trova senza avere necessariamente il contesto completo su intenzioni, vincoli o priorità. Questo produce elenchi di issue ricchi, ma lascia anche domande aperte:

  • “Questa correzione di sicurezza deve essere applicata a tutti gli ambienti o solo alla produzione?”
  • “Il pattern di query N+1 qui è intenzionale a causa della cache a un livello superiore?”
  • “Questo refactoring deve mantenere la compatibilità all’indietro con l’API v1?”

Senza risposte a queste domande, l’agente che implementa deve fare le proprie assunzioni - che potrebbero essere sbagliate. La Answering Session ti offre un modo strutturato per risolvere queste incertezze prima dell’implementazione, riducendo drasticamente il rischio che gli agenti IA implementino correzioni tecnicamente corrette ma contestualmente sbagliate.

Opzionale ma di grande valore

Le Answering Session sono opzionali. Per issue semplici e autosufficienti (ad esempio, “correggi questo dereferenziamento di puntatore nullo”), passare direttamente all’esecuzione va bene. Per issue complesse che coinvolgono interpretazione dei requisiti, decisioni architetturali o ambiguità di scope, una Answering Session è fortemente consigliata.

Configurare l’Answering Agent

Prima di avviare una Answering Session, configura l’Answering Agent dalla pagina Answering Setup all’indirizzo /p/{projectId}/answering-setup. Questa configurazione è condivisa da tutte le Answering Session del progetto:

ImpostazioneDescrizione
Strumento CLIQuale agente di coding IA usare per le answering session.
ModelloModello LLM per l’Answering Agent. Opus è consigliato per un’analisi sfumata delle domande e la generazione di assunzioni.
Thinking EffortProfondità di ragionamento. Impostalo su “high” o superiore per un’analisi approfondita delle domande, specialmente quando toccano questioni architetturali.
Bound ContextCollega un documento di contesto all’Answering Agent. I documenti di contesto architetturale sono particolarmente preziosi qui: aiutano l’agente a produrre assunzioni più accurate ancorando il suo ragionamento alle decisioni di design effettive del progetto.
SkillsPacchetti di conoscenza di dominio per l’Answering Agent.
CommandsComandi shell che l’Answering Agent può invocare durante la sua session (ad esempio, per leggere file di configurazione o eseguire query diagnostiche).
ScriptsScript eseguibili iniettati nella sandbox per l’uso dell’Answering Agent.

Il contesto è fondamentale per l'Answering Agent

L’Answering Agent produce assunzioni migliori quando ha accesso al contesto a livello di progetto. Collega un documento di riferimento architetturale e includi skill rilevanti per il tuo stack tecnologico. Un agente che comprende i vincoli del tuo sistema può rispondere a domande come “questo livello di cache è intenzionale?” molto più accuratamente di uno che opera alla cieca.

Avviare una Answering Session

1

Completare una Issue Session

Una Answering Session richiede una Issue Session completata con domande e assunzioni estratte. Vai alla pagina di dettaglio della Issue Session e conferma che lo stato della session sia completed e che le domande siano state estratte.

2

Avviare dalla pagina di dettaglio della Issue Session

Clicca sul pulsante Avvia Answering Session nella pagina di dettaglio della Issue Session. Questo crea un nuovo record di Answering Session collegato alla Issue Session tramite issueSessionIde provisiona una sandbox per l’Answering Agent.

3

L'Answering Agent viene eseguito

L’Answering Agent riceve le domande e le assunzioni dalla Issue Session insieme a qualsiasi contesto collegato e alle skill configurate. Esamina ogni domanda, raffina la formulazione per chiarezza, valuta l’assunzione iniziale e produce una risposta strutturata con:

  • Un testo di domanda raffinato e una spiegazione del contesto
  • Una giustificazione “perché è importante”
  • Una classificazione per categoria (requirements, architecture, scope, priority, dependencies o other)
  • Un’assunzione rivista con il relativo ragionamento
  • Un punteggio di confidenza (low, medium o high) che riflette quanto l’agente è sicuro della propria assunzione

La session traccia il progresso in tempo reale. Una volta completata, tutte le domande di session vengono memorizzate come record sessionQuestions collegati sia alla Answering Session che alla Issue Session.

4

Esaminare ogni domanda e assunzione

Vai alla pagina di dettaglio della Answering Session per esaminare i risultati. Ogni domanda di session viene mostrata con l’assunzione dell’Answering Agent e il suo punteggio di confidenza. Per ciascuna puoi:

  • Approvare- Accettare l’assunzione così com’è. Verrà usata come contesto quando vengono eseguite le issue correlate.
  • Rifiutare con correzione- Rifiutare l’assunzione e fornire una risposta corretta. Inserisci la tua correzione nel campo correctedAnswere invia. La risposta corretta sostituisce l’assunzione nel contesto di esecuzione.
  • Lasciare in sospeso- Rimandare l’esame. La domanda resta nello stato pending e non contribuisce al contesto di esecuzione finché non viene approvata o rifiutata.
5

Usare le assunzioni approvate quando esegui le issue

Una volta esaminate le domande, le assunzioni approvate e corrette sono disponibili come contesto quando esegui le issue dalla Issue Session collegata. Quando esegui una issue o avvii una work chain, il sistema può iniettare le assunzioni approvate nel workflow run come contesto aggiuntivo insieme al suggestedPrompt della issue.

Stati delle Answering Session

StatoDescrizione
activeL’Answering Agent sta attualmente elaborando le domande nella sandbox.
completedL’Answering Agent ha terminato l’elaborazione. Le domande di session sono pronte per l’esame umano.
reviewingLe domande di session sono state generate e sono in attesa dell’esame umano (approva/rifiuta).
archivedLa session è stata archiviata dopo il completamento dell’esame.
killedLa session è stata terminata manualmente prima del completamento.
cancelledLa session è stata annullata prima che la sandbox si avviasse.

Categorie delle domande di session

L’Answering Agent classifica ogni domanda in una delle sei categorie per aiutarti a dare priorità al tuo esame:

CategoriaCosa copre
requirementsDomande su quale comportamento è atteso, quali dovrebbero essere i criteri di accettazione, o cosa dovrebbe fare la funzionalità.
architectureDomande su design del sistema, struttura dei componenti, modifiche al modello dati o pattern di integrazione.
scopeDomande su cosa rientra o meno nello scope di questa issue o session.
priorityDomande sull’importanza relativa delle issue o sull’ordine in cui le modifiche devono essere applicate.
dependenciesDomande su dipendenze esterne, librerie di terze parti o altri sistemi con cui questa modifica interagisce.
otherDomande che non rientrano chiaramente nelle categorie sopra.

Puoi filtrare l’elenco di esame per categoria per affrontare prima le domande più critiche. Le domande di architettura e requisiti hanno tipicamente l’impatto maggiore sulla qualità dell’implementazione.

Stati di esame delle domande di session

Ogni domanda di session ha un reviewStatus che traccia dove si trova nel flusso di esame umano:

StatoDescrizione
pendingIn attesa di esame umano. Non ancora incluso nel contesto di esecuzione.
approvedAssunzione accettata così com’è. Inclusa nel contesto di esecuzione delle issue correlate.
declinedAssunzione rifiutata. Al suo posto viene usata come contesto la correctedAnswer.

Modello dati

Le Answering Session sono rappresentate da due tipi di tabella nel database: answeringSessions e 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
}

Come le assunzioni approvate migliorano l’implementazione

Quando un workflow run esegue una issue associata a una Answering Session, le assunzioni approvate e corrette vengono formattate come contesto strutturato e anteposte al prompt del run. L’agente che implementa riceve non solo “correggi questo bug”, ma anche:

  • Requisiti chiariti: quale comportamento è atteso e quali casi limite rientrano nello scope.
  • Indicazioni architetturali: quali pattern seguire, quali astrazioni usare e quali confini non oltrepassare.
  • Contesto di priorità: quali aspetti della correzione sono più critici e quali sono opzionali.
  • Consapevolezza delle dipendenze: quali altri sistemi o librerie sono coinvolti e quali vincoli impongono.

Questo contesto aggiuntivo riduce la probabilità che l’agente che implementa faccia proprie assunzioni scorrette, una delle cause più comuni di implementazione IA di bassa qualità.

Learning dalle Answering Session

Le domande di session rifiutate (e corrette) sono particolarmente preziose come input per il learning. Quando l’Answering Agent ha fatto un’assunzione sbagliata e tu l’hai corretta, quella correzione insegna al sistema vincoli, preferenze o pattern del tuo progetto che non erano evidenti dalla sola codebase.

Se una domanda di session è collegata a un learningId, significa che la correzione è stata compilata in un record di learning che verrà iniettato nelle session future - così l’Answering Agent (e altri agenti collegati ai learning) avrà meno probabilità di fare la stessa assunzione sbagliata in futuro.

Miglioramento a ciclo chiuso

Le Answering Session creano un ciclo di feedback: più esamini e correggi le assunzioni, più il sistema apprende sul contesto del tuo progetto. Nel tempo, le Answering Session richiedono meno correzioni perché gli agenti hanno accumulato una comprensione più ricca dei tuoi vincoli e delle tue preferenze attraverso il sistema di learning.

Prossimi passi