Streaming-Ereignisse
Wenn Sie in SessionConfig streaming: true setzen, wird der Verlauf einer Session als Ereignisstrom ausgeliefert.
Diese Seite ist eine für Laravel aufbereitete deutsche Fassung der offiziellen streaming-events.md.
Die Seite SessionEvent beschreibt die für Laravel erweiterte SessionEvent-Klasse selbst.
Diese Seite ist eine Referenz, „welche Daten bei welchem Ereignistyp ankommen”.
Überblick
Alle Verarbeitungsschritte des Copilot-Agenten (Reasoning, Nachrichtengenerierung, Tool-Ausführung, Berechtigungsprüfungen usw.) werden als Session-Events übertragen.
- Ephemeral event: Nur Echtzeit-Auslieferung. Wird nicht im Session-Log persistiert (beim Fortsetzen nicht erneut abgespielt)
- Persisted event: Wird im Session-Log gespeichert (beim Fortsetzen erneut abgespielt)
- Delta event: Ereignisse, die in Teilstücken ankommen (z. B.
deltaContent). Werden zum Gesamtinhalt zusammengefügt
parentId chain: Verkettung, in der jedes Event die ID des vorangegangenen Events referenziert
Event-Envelope (gemeinsame Felder)
Alle Ereignisse haben die folgende gemeinsame Struktur.
Abonnement-Beispiel in Laravel
Hauptkategorien
Assistant events
assistant.turn_start
Turn-Start.
turnId (erforderlich)
interactionId (optional)
assistant.intent (ephemeral)
Aktuelle Ausführungsabsicht (z. B. Exploring codebase).
assistant.reasoning
Vollständiger Reasoning-Block.
reasoningId (erforderlich)
content (erforderlich)
assistant.reasoning_delta (ephemeral)
Delta des Reasoning-Textes.
reasoningId (erforderlich)
deltaContent (erforderlich)
assistant.message
Vollständige Nachricht des Assistenten.
Wichtige Felder:
messageId (erforderlich)
content (erforderlich)
toolRequests (optional)
reasoningOpaque / reasoningText / encryptedContent (optional)
phase / outputTokens / interactionId (optional)
parentToolCallId (optional, wenn aus einem Sub-Agenten stammend)
assistant.message_delta (ephemeral)
Delta des Nachrichteninhalts.
messageId (erforderlich)
deltaContent (erforderlich)
parentToolCallId (optional)
assistant.turn_end
Turn-Ende.
assistant.usage (ephemeral)
Verbrauchsinformationen pro API-Aufruf.
Wichtige Felder:
model (erforderlich)
inputTokens / outputTokens / cost / duration (optional)
apiCallId / providerCallId (optional)
quotaSnapshots / copilotUsage (optional)
assistant.streaming_delta (ephemeral)
Low-Level-Empfangsfortschritt.
totalResponseSizeBytes (erforderlich)
Beginn der Tool-Ausführung.
toolCallId (erforderlich)
toolName (erforderlich)
arguments / mcpServerName / mcpToolName / parentToolCallId (optional)
Teilweise Ausgabe während der Tool-Ausführung.
toolCallId (erforderlich)
partialOutput (erforderlich)
Fortschrittsnachricht.
toolCallId (erforderlich)
progressMessage (erforderlich)
Abschluss der Tool-Ausführung (Erfolg/Misserfolg).
toolCallId (erforderlich)
success (erforderlich)
result (bei Erfolg)
error (bei Fehlschlag)
toolTelemetry / parentToolCallId (optional)
Tool-Aufruf auf explizite Nutzeranforderung.
toolCallId (erforderlich)
toolName (erforderlich)
arguments (optional)
Session lifecycle events
session.start
Session-Start. Bei Cloud Sessions ist es sicher, den ersten Prompt erst zu senden, nachdem producer das session.start des copilot-agent bestätigt hat.
session.idle (ephemeral)
Aktuelle Verarbeitung abgeschlossen, System wartet auf nächste Eingabe.
backgroundTasks (optional)
session.error
Fehler während der Session-Verarbeitung.
errorType (erforderlich)
message (erforderlich)
stack / statusCode / providerCallId (optional)
session.compaction_start
Beginn der Kontextkompaktierung (data ist ein leeres Objekt).
session.compaction_complete
Kontextkompaktierung abgeschlossen.
Wichtige Felder:
success (erforderlich)
error (optional)
preCompactionTokens / postCompactionTokens (optional)
summaryContent / checkpointPath (optional)
session.title_changed (ephemeral)
Automatische Titelaktualisierung.
session.context_changed
Wechsel des Arbeitskontexts.
cwd (erforderlich)
gitRoot / repository / branch (optional)
session.info
Session-Informationen, z. B. eine Remote-URL.
infoType (erforderlich)
url (optional, z. B. wenn infoType remote ist)
session.remote_steerable_changed
Ereignis, das eine Änderung der Fernsteuerbarkeit aus Mission Control anzeigt.
remoteSteerable (optional)
session.usage_info (ephemeral)
Nutzung des Context-Windows.
tokenLimit (erforderlich)
currentTokens (erforderlich)
messagesLength (erforderlich)
session.task_complete
Benachrichtigung über Aufgabenabschluss.
session.shutdown
Session-Ende.
Wichtige Felder:
shutdownType (erforderlich)
errorReason (optional)
totalPremiumRequests / totalApiDurationMs (erforderlich)
codeChanges / modelMetrics (erforderlich)
permission.requested (ephemeral)
Berechtigungsabfrage.
requestId (erforderlich)
permissionRequest (erforderlich)
permissionRequest.kind:
shell
write
read
mcp
url
memory
custom-tool
permission.completed (ephemeral)
Ergebnis der Berechtigungsanfrage.
requestId (erforderlich)
result.kind (erforderlich)
Frage an den Nutzer.
requestId (erforderlich)
question (erforderlich)
choices / allowFreeform (optional)
Abschluss der Benutzereingabe.
elicitation.requested (ephemeral)
Anfrage nach strukturierter Eingabe (Formular).
requestId (erforderlich)
message (erforderlich)
requestedSchema (erforderlich)
elicitation.completed (ephemeral)
Abschluss der strukturierten Eingabe.
Sub-agent / skill events
subagent.started
toolCallId (erforderlich)
agentName / agentDisplayName / agentDescription (erforderlich)
subagent.completed
toolCallId (erforderlich)
agentName / agentDisplayName (erforderlich)
subagent.failed
toolCallId (erforderlich)
agentName / agentDisplayName (erforderlich)
error (erforderlich)
subagent.selected
agentName (erforderlich)
agentDisplayName (erforderlich)
tools (erforderlich, null zulässig)
subagent.deselected
Rückkehr zum Standard-Agenten (data ist ein leeres Objekt).
skill.invoked
name / path / content (erforderlich)
allowedTools / pluginName / pluginVersion (optional)
Other events
abort
user.message
content (erforderlich)
transformedContent / attachments / source / agentMode / interactionId (optional)
system.message
content (erforderlich)
role (erforderlich)
name / metadata (optional)
requestId / sessionId / toolCallId / toolName (erforderlich)
arguments (optional)
exit_plan_mode.requested (ephemeral)
requestId / summary / planContent / actions / recommendedAction (erforderlich)
exit_plan_mode.completed (ephemeral)
command.queued (ephemeral)
requestId (erforderlich)
command (erforderlich)
command.completed (ephemeral)
Typische Reihenfolge der Events
Übersicht aller Events (Quickreferenz)
Verwandte Dokumentation
Zuletzt geändert am 13. Juli 2026