Eventi di streaming
Abilitando streaming: true in SessionConfig, le attività durante la sessione vengono consegnate come eventi in sequenza.
Questa pagina è la versione italiana, resa più leggibile per Laravel, del streaming-events.md ufficiale.
La pagina SessionEvent descrive la classe SessionEvent estesa per Laravel.
Questa pagina è la reference su “quale tipo di evento e quali dati arrivano”.
Panoramica
Le attività dell’agente Copilot (reasoning, generazione di messaggi, esecuzione di strumenti, controllo permessi, ecc.) fluiscono come eventi di sessione.
- Ephemeral event: solo consegna in tempo reale. Non viene persistito nel log della sessione (non viene riprodotto alla ripresa)
- Persisted event: salvato nel log della sessione (riprodotto alla ripresa)
- Delta event: evento incrementale (
deltaContent ecc.). Concatenandoli si ricostruisce il testo intero
parentId chain: ciascun evento fa riferimento all’ID dell’evento precedente in una catena
Envelope dell’evento (campi comuni)
Tutti gli eventi hanno la seguente struttura comune.
Esempio di sottoscrizione in Laravel
Categorie di eventi principali
Assistant events
assistant.turn_start
Inizio del turn.
turnId (obbligatorio)
interactionId (opzionale)
assistant.intent (ephemeral)
Intenzione di esecuzione corrente (es. Exploring codebase).
assistant.reasoning
Blocco di reasoning completo.
reasoningId (obbligatorio)
content (obbligatorio)
assistant.reasoning_delta (ephemeral)
Delta del testo di reasoning.
reasoningId (obbligatorio)
deltaContent (obbligatorio)
assistant.message
Messaggio finale dell’assistente.
Campi principali:
messageId (obbligatorio)
content (obbligatorio)
toolRequests (opzionale)
reasoningOpaque / reasoningText / encryptedContent (opzionali)
phase / outputTokens / interactionId (opzionali)
parentToolCallId (opzionale, quando proviene da un sotto-agente)
assistant.message_delta (ephemeral)
Delta del corpo del messaggio.
messageId (obbligatorio)
deltaContent (obbligatorio)
parentToolCallId (opzionale)
assistant.turn_end
Fine del turn.
assistant.usage (ephemeral)
Informazioni di uso per chiamata API.
Campi principali:
model (obbligatorio)
inputTokens / outputTokens / cost / duration (opzionali)
apiCallId / providerCallId (opzionali)
quotaSnapshots / copilotUsage (opzionali)
assistant.streaming_delta (ephemeral)
Progresso di ricezione a basso livello.
totalResponseSizeBytes (obbligatorio)
Inizio esecuzione strumento.
toolCallId (obbligatorio)
toolName (obbligatorio)
arguments / mcpServerName / mcpToolName / parentToolCallId (opzionali)
Output parziale durante l’esecuzione.
toolCallId (obbligatorio)
partialOutput (obbligatorio)
Messaggio di progresso.
toolCallId (obbligatorio)
progressMessage (obbligatorio)
Esecuzione strumento completata (successo/fallimento).
toolCallId (obbligatorio)
success (obbligatorio)
result (in caso di successo)
error (in caso di fallimento)
toolTelemetry / parentToolCallId (opzionali)
Chiamata a strumento su richiesta esplicita dell’utente.
toolCallId (obbligatorio)
toolName (obbligatorio)
arguments (opzionale)
Session lifecycle events
session.start
Inizio sessione. Nelle Cloud Sessions è più sicuro inviare il primo prompt dopo aver verificato che producer sia copilot-agent in session.start.
session.idle (ephemeral)
Elaborazione corrente completata, in attesa del prossimo input.
backgroundTasks (opzionale)
session.error
Errore durante l’elaborazione della sessione.
errorType (obbligatorio)
message (obbligatorio)
stack / statusCode / providerCallId (opzionali)
session.compaction_start
Inizio compattazione del contesto (data è un oggetto vuoto).
session.compaction_complete
Compattazione del contesto completata.
Campi principali:
success (obbligatorio)
error (opzionale)
preCompactionTokens / postCompactionTokens (opzionali)
summaryContent / checkpointPath (opzionali)
session.title_changed (ephemeral)
Aggiornamento automatico del titolo.
session.context_changed
Cambio del contesto di lavoro.
cwd (obbligatorio)
gitRoot / repository / branch (opzionali)
session.info
Informazioni della sessione come URL remoto.
infoType (obbligatorio)
url (opzionale, ad es. quando infoType è remote)
session.remote_steerable_changed
Evento che indica il cambio della possibilità di operare a distanza da Mission Control.
remoteSteerable (opzionale)
session.usage_info (ephemeral)
Stato di uso della context window.
tokenLimit (obbligatorio)
currentTokens (obbligatorio)
messagesLength (obbligatorio)
session.task_complete
Notifica di completamento task.
session.shutdown
Chiusura della sessione.
Campi principali:
shutdownType (obbligatorio)
errorReason (opzionale)
totalPremiumRequests / totalApiDurationMs (obbligatori)
codeChanges / modelMetrics (obbligatori)
permission.requested (ephemeral)
Richiesta di conferma di permesso.
requestId (obbligatorio)
permissionRequest (obbligatorio)
permissionRequest.kind:
shell
write
read
mcp
url
memory
custom-tool
permission.completed (ephemeral)
Esito della verifica del permesso.
requestId (obbligatorio)
result.kind (obbligatorio)
Domanda all’utente.
requestId (obbligatorio)
question (obbligatorio)
choices / allowFreeform (opzionali)
Input utente completato.
elicitation.requested (ephemeral)
Richiesta di input strutturato (form).
requestId (obbligatorio)
message (obbligatorio)
requestedSchema (obbligatorio)
elicitation.completed (ephemeral)
Completamento dell’input strutturato.
Sub-agent / skill events
subagent.started
toolCallId (obbligatorio)
agentName / agentDisplayName / agentDescription (obbligatori)
subagent.completed
toolCallId (obbligatorio)
agentName / agentDisplayName (obbligatori)
subagent.failed
toolCallId (obbligatorio)
agentName / agentDisplayName (obbligatori)
error (obbligatorio)
subagent.selected
agentName (obbligatorio)
agentDisplayName (obbligatorio)
tools (obbligatorio, ammette null)
subagent.deselected
Ritorno all’agente predefinito (data è un oggetto vuoto).
skill.invoked
name / path / content (obbligatori)
allowedTools / pluginName / pluginVersion (opzionali)
Other events
abort
user.message
content (obbligatorio)
transformedContent / attachments / source / agentMode / interactionId (opzionali)
system.message
content (obbligatorio)
role (obbligatorio)
name / metadata (opzionali)
requestId / sessionId / toolCallId / toolName (obbligatori)
arguments (opzionale)
exit_plan_mode.requested (ephemeral)
requestId / summary / planContent / actions / recommendedAction (obbligatori)
exit_plan_mode.completed (ephemeral)
command.queued (ephemeral)
requestId (obbligatorio)
command (obbligatorio)
command.completed (ephemeral)
Ordine tipico degli eventi
Elenco completo degli eventi (riferimento rapido)
Documenti correlati
Ultima modifica il 13 luglio 2026