Skip to main content
Select language: current language is German
Suchen oder Fragen an Copilot stellen
Menü öffnen

Streamingereignisse im Copilot SDK

Verweisen Sie auf Sitzungsereignisse, die vom Copilot SDK gesendet werden, und auf die Datenfelder, die jedes Ereignis enthält.

Wer kann dieses Feature verwenden?

GitHub Copilot SDK ist mit allen Copilot Tarifen verfügbar.

Hinweis

          Copilot SDK ist zurzeit in öffentliche Vorschau. Funktionalität und Verfügbarkeit können geändert werden.

Jede Aktion, die der Copilot Agent ausführt – Denken, Schreiben von Code, Ausführen von Tools – wird als Sitzungsereignis ausgegeben, das Sie abonnieren können. Dieser Artikel ist ein Referenz auf Feldebene für jeden Ereignistyp, sodass Sie genau wissen, welche Daten sie erwarten müssen.

Wenn streaming: true für eine Sitzung festgelegt wird, sendet das SDK kurzlebige Ereignisse in Echtzeit (Deltas, Statusaktualisierungen) neben dauerhaften Ereignissen (vollständige Nachrichten, Toolergebnisse). Alle Ereignisse teilen einen gemeinsamen Umschlag und tragen eine data Nutzlast, deren Shape vom Ereignis typeabhängt. Ein Sequenzdiagramm des vollständigen Ereignisflusses finden Sie im github/copilot-sdk Repository.

KonzeptBeschreibung
          **Ephemerales Ereignis** | Vorübergehende; in Echtzeit gestreamt, aber **nicht** im Sitzungsprotokoll gespeichert. Wird beim Fortsetzen der Sitzung nicht wiedergegeben. |

| Persistiertes Ereignis | Im Sitzungsereignisprotokoll auf dem Datenträger gespeichert. Wird wiedergegeben, wenn eine Sitzung fortgesetzt wird. | | Delta-Ereignis | Ein ephemerer Streamingabschnitt (Text oder Argumentation). Sammeln Sie Deltas, um den vollständigen Inhalt zu erstellen. | | ** parentId Kette** | Jedes Ereignis parentId verweist auf das vorherige Ereignis und bildet eine verknüpfte Liste, die Sie durchlaufen können. |

Ereignishülle

Jedes Sitzungsereignis umfasst unabhängig vom Typ die folgenden Felder:

FeldTypBeschreibung
id
          `string` (UUID v4) | Eindeutiger Ereignisbezeichner |

| timestamp | string (ISO 8601) | Wann das Ereignis erstellt wurde | | parentId | string \| null | ID des vorherigen Ereignisses in der Kette; null für das erste Ereignis | | ephemeral | boolean? | true für vorübergehende Ereignisse; nicht vorhanden oder false für beibehaltene Ereignisse | | type | string | Diskriminator des Ereignistyps (siehe Tabellen unten) | | data | object | Ereignisspezifische Nutzlast |

Abonnieren von Ereignissen

// All events
session.on((event) => {
    console.log(event.type, event.data);
});

// Specific event type — data is narrowed automatically
session.on("assistant.message_delta", (event) => {
    process.stdout.write(event.data.deltaContent);
});

Beispiele in Python, Go und .NET finden Sie im github/copilot-sdk Repository.

Tipp

          **Python / Go:** Diese SDKs verwenden eine einzelne `Data` Klasse/Struktur mit allen möglichen Feldern als optional/nullable. Nur die felder, die in den folgenden Tabellen aufgeführt sind, werden für jeden Ereignistyp aufgefüllt – der Rest lautet `None` / `nil`.
          **.NET:** Das .NET SDK verwendet separate, stark typisierte Datenklassen pro Ereignis (z. B. `AssistantMessageDeltaData`), sodass nur die relevanten Felder für jeden Datentyp vorhanden sind.
          **TypeScript:** Das TypeScript SDK verwendet ein discriminated union - wenn Sie auf `event.type` passen, wird der `data` Payload automatisch auf die richtige Form eingegrenzt.

Ereignisse des Assistenten

Diese Ereignisse verfolgen den Lebenszyklus der Antwort des Agents - vom Start der Abzweigung über die Streaming Chunks bis zur endgültigen Nachricht.

assistant.turn_start

Wird ausgelöst, wenn der Agent mit der Verarbeitung eines Ablaufschritts beginnt.

DatenfeldTypErforderlichBeschreibung
turnIdstringTurn-Identifikator (typischerweise eine stringifizierte Turn-Nummer)
interactionIdstring
Interaktionsidentifikator für Telemetriekorrelation

assistant.intent

Flüchtig Kurze Beschreibung dessen, was der Agent gerade tut, aktualisiert während der Vorgang läuft.

DatenfeldTypErforderlichBeschreibung
intentstringLesbare Absicht (z. B. "Erkunden der Codebasis")

assistant.reasoning

Schließen Sie die erweiterte Denkblockade des Modells ab. Wird nach Abschluss der Begründung ausgegeben.

DatenfeldTypErforderlichBeschreibung
reasoningIdstringEindeutiger Bezeichner für diesen Logikblock
contentstringDer vollständige erweiterte Denktext

assistant.reasoning_delta

Temporär. Inkrementeller Chunk des erweiterten Denkens des Modells, das in Echtzeit gestreamt wird.

DatenfeldTypErforderlichBeschreibung
reasoningIdstringEntspricht dem entsprechenden assistant.reasoning Ereignis.
deltaContentstringTextabschnitt, der an den Inhalt von Gründen angefügt werden soll

assistant.message

Die vollständige Antwort des Assistenten für diesen LLM-Aufruf. Kann Toolaufrufanforderungen enthalten.

DatenfeldTypErforderlichBeschreibung
messageIdstringEindeutiger Bezeichner für diese Nachricht
contentstringDie Textantwort des Assistenten
toolRequestsToolRequest[]
Toolaufrufe, die der Assistent tätigen möchte (siehe unten)
reasoningOpaquestring
Verschlüsseltes erweitertes Denken (Anthropische Modelle); sitzungsgebunden
reasoningTextstring
Lesbarer Reasoning-Text aus erweitertem Denken
encryptedContentstring
Verschlüsselte Begründungsinhalte (OpenAI-Modelle); sitzungsgebunden
phasestring
Generationsphase (z. B "thinking" . vs "response")
outputTokensnumber
Tatsächliche Ausgabetokenanzahl aus der API-Antwort
interactionIdstring
Interaktionsbezeichner für Telemetrie
parentToolCallIdstring
Festlegen, wann diese Nachricht von einem Unter-Agent stammt
          **
          `ToolRequest` Felder:**
FeldTypErforderlichBeschreibung
toolCallIdstringEindeutige ID für diesen Toolaufruf
namestringToolname (z. B. "bash", "edit", "grep")
argumentsobject
Analysierte Argumente für das Tool
type"function" | "custom"
Anruftyp; Standardwert: "function" wenn nicht vorhanden

assistant.message_delta

Flüchtig Inkrementeller Chunk der Text-Antwort des Assistenten, der in Echtzeit gestreamt wird.

DatenfeldTypErforderlichBeschreibung
messageIdstringEntspricht dem entsprechenden assistant.message Ereignis.
deltaContentstringTextabschnitt, der an die Nachricht angefügt werden soll
parentToolCallIdstring
Festlegen, wenn sie von einem Unter-Agent stammen

assistant.turn_end

Wird ausgegeben, wenn der Agent eine Runde abschließt (alle Tool-Ausführungen abgeschlossen, endgültige Antwort geliefert).

DatenfeldTypErforderlichBeschreibung
turnIdstringEntspricht dem entsprechenden assistant.turn_start Ereignis.

assistant.usage

Flüchtig Tokenverwendungs- und Kosteninformationen für einen einzelnen API-Aufruf.

DatenfeldTypErforderlichBeschreibung
modelstringModellbezeichner (z. B "gpt-4.1". )
inputTokensnumber
Verbrauchte Eingabetoken
outputTokensnumber
Erzeugte Ausgabetoken
cacheReadTokensnumber
Token aus dem Prompt-Cache lesen
cacheWriteTokensnumber
Token werden in den Prompt-Cache geschrieben
costnumber
Kosten für den Modellmultiplikator bei der Abrechnung
durationnumber
API-Aufrufdauer in Millisekunden
initiatorstring
Was diesen Aufruf ausgelöst hat (z. B "sub-agent". ); fehlt für vom Benutzer initiierte
apiCallIdstring
Vervollständigungs-ID vom Anbieter (z. B. chatcmpl-abc123)
providerCallIdstring
GitHub Anfrage Tracing ID (x-github-request-id)
parentToolCallIdstring
Festlegen, wann die Verwendung von einem Unter-Agent stammt
quotaSnapshotsRecord<string, QuotaSnapshot>
Ressourcennutzung pro Kontingent, schlüsseliert nach Kontingentbezeichner
copilotUsageCopilotUsage
Aufschlüsselung der Kosten für Tokens aus der API

assistant.streaming_delta

Flüchtig Niedrigrangige Fortschrittsanzeige – Gesamtanzahl der Bytes, die von der Streaming-API-Antwort empfangen wurden.

DatenfeldTypErforderlichBeschreibung
totalResponseSizeBytesnumberBisher empfangene kumulative Bytes

Toolausführungsereignisse

Diese Ereignisse verfolgen den vollständigen Lebenszyklus jedes Toolaufrufs, von der Anforderung durch das Modell über die Ausführung bis zur Fertigstellung.

tool.execution_start

Wird ausgegeben, wenn ein Tool mit der Ausführung beginnt.

DatenfeldTypErforderlichBeschreibung
toolCallIdstringEindeutiger Bezeichner für diesen Toolaufruf
toolNamestringName des Tools (z. B "bash". , "edit", "grep")
argumentsobject
Analysierte Argumente, die an das Tool übergeben werden
mcpServerNamestring
MCP-Servername, wenn das Tool von einem MCP-Server bereitgestellt wird
mcpToolNamestring
Ursprünglicher Toolname auf dem MCP-Server
parentToolCallIdstring
Festlegen, wann von einem Unter-Agent aufgerufen wird

tool.execution_partial_result

Ephemere. Inkrementelle Ausgabe eines ausgeführten Tools (z.B. Streaming der Bash-Ausgabe).

DatenfeldTypErforderlichBeschreibung
toolCallIdstringEntspricht dem entsprechenden tool.execution_start
partialOutputstringInkrementeller Ausgabeabschnitt

tool.execution_progress

Ephemere. Lesbarer Fortschrittsstatus von einem laufenden Programm (z. B. MCP-Serverfortschrittsbenachrichtigungen).

DatenfeldTypErforderlichBeschreibung
toolCallIdstringEntspricht dem entsprechenden tool.execution_start
progressMessagestringFortschrittsstatusmeldung

tool.execution_complete

Wird ausgegeben, wenn die Ausführung eines Tools abgeschlossen ist – erfolgreich oder mit einem Fehler.

DatenfeldTypErforderlichBeschreibung
toolCallIdstringEntspricht dem entsprechenden tool.execution_start
successbooleanOb die Ausführung erfolgreich war
modelstring
Modell, das diesen Toolaufruf generiert hat
interactionIdstring
Interaktionskennung
isUserRequestedboolean
          `true` wenn der Benutzer diesen Toolaufruf explizit angefordert hat |

| result | Result | | Bei Erfolg anzeigen (siehe unten) | | error | { message, code? } | | Vorhanden bei Fehlschlag | | toolTelemetry | object | | Toolspezifische Telemetrie | | parentToolCallId | string | | Festgelegt, wenn ein Unteragent es aufruft |

          **
          `Result` Felder:**
FeldTypErforderlichBeschreibung
contentstringKurzes Ergebnis, das an das LLM gesendet wird (kann aus Gründen der Token-Effizienz verkürzt werden)
detailedContentstring
Vollständiges Ergebnis für die Anzeige, unter Beibehaltung des vollständigen Inhalts wie Diffs
contentsContentBlock[]
Strukturierte Inhaltsblöcke (Text, Terminal, Bild, Audio, Ressource)

tool.user_requested

Wird ausgegeben, wenn der Benutzende explizit einen Tool-Aufruf anfordert (und nicht das Modell selbst einen Aufruf vornimmt).

DatenfeldTypErforderlichBeschreibung
toolCallIdstringEindeutiger Bezeichner für diesen Toolaufruf
toolNamestringName des Tools, das der Benutzer aufrufen möchte
argumentsobject
Argumente für den Aufruf

Sitzungslebenszyklusereignisse

session.idle

Ephemere. Der Agent hat die gesamte Verarbeitung abgeschlossen und ist bereit für die nächste Nachricht. Dies ist das Signal, dass eine Drehung vollständig abgeschlossen ist.

DatenfeldTypErforderlichBeschreibung
backgroundTasksBackgroundTasks
Agents/Shells im Hintergrund, die noch ausgeführt wurden, als der Agent inaktiv wurde

session.error

Ein Fehler ist während der Sitzungsverarbeitung aufgetreten.

DatenfeldTypErforderlichBeschreibung
errorTypestringFehlerkategorie (z. B. "authentication", "quota", "rate_limit")
messagestringVom Menschen lesbare Fehlermeldung
stackstring
Fehler Stack-Trace
statusCodenumber
HTTP-Statuscode aus der upstream-Anforderung
providerCallIdstring
GitHub Anfrage-Tracing-ID für die serverseitige Protokollkorrelation

session.compaction_start

Die Verdichtung des Kontextfensters hat begonnen. Die Datennutzlast ist leer ({}).

session.compaction_complete

Die Verdichtung des Kontextfensters wurde abgeschlossen.

DatenfeldTypErforderlichBeschreibung
successbooleanGibt an, ob die Komprimierung erfolgreich war.
errorstring
Fehlermeldung, wenn die Komprimierung fehlgeschlagen ist
preCompactionTokensnumber
Token vor Komprimierung
postCompactionTokensnumber
Token nach Komprimierung
preCompactionMessagesLengthnumber
Nachrichtenanzahl vor Komprimierung
messagesRemovednumber
Entfernte Nachrichten
tokensRemovednumber
Token entfernt
summaryContentstring
LLM-generierte Zusammenfassung des komprimierten Verlaufs
checkpointNumbernumber
Nummer des für die Wiederherstellung erstellten Checkpoint-Snapshots
checkpointPathstring
Dateipfad, in dem der Prüfpunkt gespeichert wurde
compactionTokensUsed{ input, output, cachedInput }
Tokenverwendung für den Komprimierungsaufruf des LLM
requestIdstring
GitHub Anfrage Tracing ID für den Verdichtungsaufruf

session.title_changed

Ephemere. Der automatisch generierte Titel der Sitzung wurde aktualisiert.

DatenfeldTypErforderlichBeschreibung
titlestringNeuer Sitzungstitel

session.context_changed

Der Arbeitsverzeichnis- oder Repositorykontext der Sitzung wurde geändert.

DatenfeldTypErforderlichBeschreibung
cwdstringAktuelles Arbeitsverzeichnis
gitRootstring
Git-Repository-Stammverzeichnis
repositorystring
Repository im "owner/name" Format
branchstring
Aktueller Git-Branch

session.usage_info

Ephemere. Momentaufnahme der Kontextfensterverwendung.

DatenfeldTypErforderlichBeschreibung
tokenLimitnumberMaximale Token für das Kontextfenster des Modells
currentTokensnumberAktuelle Token im Kontextfenster
messagesLengthnumberAktuelle Anzahl der Nachrichten in der Konversation

session.task_complete

Der Agent hat seine zugewiesene Aufgabe abgeschlossen.

DatenfeldTypErforderlichBeschreibung
summarystring
Zusammenfassung des abgeschlossenen Vorgangs

session.shutdown

Die Sitzung wurde beendet.

DatenfeldTypErforderlichBeschreibung
shutdownType"routine" | "error"Normales Herunterfahren oder Absturz
errorReasonstring
Fehlerbeschreibung, wenn shutdownType gleich "error" ist
totalPremiumRequestsnumberGesamtanzahl der verwendeten Premium-API-Anforderungen
totalApiDurationMsnumberKumulierte API-Aufrufzeit in Millisekunden
sessionStartTimenumberUnix-Zeitstempel (ms) beim Starten der Sitzung
codeChanges{ linesAdded, linesRemoved, filesModified }Aggregierte Codeänderungsmetriken
modelMetricsRecord<string, ModelMetric>Aufschlüsselung der Modellnutzung
currentModelstring
Modell zum Zeitpunkt des Herunterfahrens ausgewählt

Berechtigungs- und Benutzereingabeereignisse

Diese Ereignisse werden ausgegeben, wenn der Agent eine Genehmigung oder Eingabe des Benutzers benötigt, bevor er fortfahren kann.

permission.requested

Ephemere. Der Agent benötigt die Berechtigung zum Ausführen einer Aktion (Ausführen eines Befehls, Schreiben einer Datei usw.).

DatenfeldTypErforderlichBeschreibung
requestIdstringVerwenden Sie dies, um über session.respondToPermission() zu antworten.
permissionRequestPermissionRequestDetails der angeforderten Berechtigung

Der permissionRequest ist ein discriminated union auf kind:

kindSchlüsselfelderBeschreibung
"shell"
          `fullCommandText`
          `intention`
          `commands[]`
          `possiblePaths[]`
         | Ausführen eines Shellbefehls |

| "write" | fileName diff intention newFileContents? | Schreiben/Ändern einer Datei | | "read" | path, intention | Lesen einer Datei oder eines Verzeichnisses | | "mcp" | serverName, , toolName``toolTitle, , args?``readOnly | Aufrufen eines MCP-Tools | | "url" | url, intention | Abrufen einer URL | | "memory" | subject, fact``citations | Ein Gedächtnis speichern | | "custom-tool" | toolName, toolDescription``args? | Aufrufen eines benutzerdefinierten Tools |

Alle kind Varianten enthalten auch eine optionale toolCallId Verknüpfung mit dem Toolaufruf, der die Anforderung ausgelöst hat.

permission.completed

Ephemere. Eine Berechtigungsanfrage wurde gelöst.

DatenfeldTypErforderlichBeschreibung
requestIdstringEntspricht dem entsprechenden permission.requested
result.kindstringEiner von: "approved", , "denied-by-rules"``"denied-interactively-by-user", , "denied-no-approval-rule-and-could-not-request-from-user"``"denied-by-content-exclusion-policy"

user_input.requested

Ephemere. Der Agent stellt dem Benutzer eine Frage.

DatenfeldTypErforderlichBeschreibung
requestIdstringVerwenden Sie dies, um über session.respondToUserInput() zu antworten.
questionstringDie Frage, die dem Benutzer präsentiert werden soll
choicesstring[]
Vordefinierte Auswahlmöglichkeiten für den Benutzer
allowFreeformboolean
Gibt an, ob Freiformtexteingaben zulässig sind.

user_input.completed

Flüchtig Eine Benutzereingabeanforderung wurde aufgelöst.

DatenfeldTypErforderlichBeschreibung
requestIdstringEntspricht dem entsprechenden user_input.requested

elicitation.requested

Temporär. Der Agent benötigt strukturierte Formulareingaben vom Benutzer (MCP-Elicitationsprotokoll).

DatenfeldTypErforderlichBeschreibung
requestIdstringVerwenden Sie dies, um über session.respondToElicitation() zu antworten.
messagestringBeschreibung der benötigten Informationen
mode"form"
Elicitationsmodus (derzeit nur "form")
requestedSchema{ type: "object", properties, required? }JSON-Schema zur Beschreibung der Formularfelder

elicitation.completed

Flüchtig Eine Anfrage wurde behoben.

DatenfeldTypErforderlichBeschreibung
requestIdstringEntspricht dem entsprechenden elicitation.requested

Sub-Agenten und Skill-Ereignisse

subagent.started

Ein angepasster Agent wurde als Sub-Agent aufgerufen.

DatenfeldTypErforderlichBeschreibung
toolCallIdstringÜbergeordneter Werkzeugaufruf, der diesen Unter-Agenten erzeugt hat
agentNamestringInterner Name des Unter-Agents
agentDisplayNamestringMenschenlesbarer Anzeigename
agentDescriptionstringBeschreibung der Funktionsweise des Unter-Agents

subagent.completed

Ein Sub-Agent wurde erfolgreich abgeschlossen.

DatenfeldTypErforderlichBeschreibung
toolCallIdstringEntspricht dem entsprechenden subagent.started
agentNamestringInterner Name
agentDisplayNamestringAnzeigename

subagent.failed

Bei einem Unter-Agent ist ein Fehler aufgetreten.

DatenfeldTypErforderlichBeschreibung
toolCallIdstringEntspricht dem entsprechenden subagent.started
agentNamestringInterner Name
agentDisplayNamestringAnzeigename
errorstringFehlermeldung

subagent.selected

Ein benutzerdefinierter Agent wurde ausgewählt (abgeleitet), um die aktuelle Anforderung zu verarbeiten.

DatenfeldTypErforderlichBeschreibung
agentNamestringInterner Name des ausgewählten Agents
agentDisplayNamestringAnzeigename
toolsstring[] | nullFür diesen Agent verfügbare Toolnamen; null für alle Tools

subagent.deselected

Ein benutzerdefinierter Agent wurde deaktiviert und kehrt zum Standard-Agent zurück. Die Antwortnutzlast ist leer ({}).

skill.invoked

Für die aktuelle Unterhaltung wurde eine Fähigkeit aktiviert.

DatenfeldTypErforderlichBeschreibung
namestringQualifikationsname
pathstringDateipfad zur SKILL.md Definition
contentstringVollständiger Skill-Inhalt, der in die Kommunikation eingespeist wird
allowedToolsstring[]
Werkzeuge werden automatisch genehmigt, solange diese Fähigkeit aktiv ist.
pluginNamestring
Plugin, aus dem die Fertigkeit stammt
pluginVersionstring
Plugin-Version

Andere Ereignisse

abort

Die aktuelle Drehung wurde abgebrochen.

DatenfeldTypErforderlichBeschreibung
reasonstringWarum die Drehung abgebrochen wurde (z. B. "user initiated")

user.message

Der Benutzer hat eine Nachricht gesendet. Aufgezeichnet für den Sitzungsverlauf.

DatenfeldTypErforderlichBeschreibung
contentstringDer Nachrichtentext des Benutzers
transformedContentstring
Transformierte Version nach der Vorverarbeitung
attachmentsAttachment[]
Datei-, Verzeichnis-, Auswahl-, Blob- oder GitHub Referenz-Anhänge
sourcestring
Nachrichtenquellenkennung
agentModestring
Agentmodus: "interactive", , "plan", "autopilot"oder "shell"
interactionIdstring
Interaktionskennung

system.message

Eine System- oder Entwickleraufforderung wurde in die Unterhaltung eingefügt.

DatenfeldTypErforderlichBeschreibung
contentstringDer Aufforderungstext
role"system" | "developer"Nachrichtenfunktion
namestring
Quellenbezeichner
metadata{ promptVersion?, variables? }
Metadaten der Prompt-Vorlage

external_tool.requested

Flüchtig Der Agent möchte ein externes Tool aufrufen (eines, das vom SDK-Consumer bereitgestellt wird).

DatenfeldTypErforderlichBeschreibung
requestIdstringVerwenden Sie dies, um über session.respondToExternalTool() zu antworten
sessionIdstringSitzung, zu der diese Anforderung gehört
toolCallIdstringToolaufruf-ID für diesen Aufruf
toolNamestringName des externen Tools
argumentsobject
Argumente für das Tool

external_tool.completed

Ephemere. Eine externe Toolanforderung wurde aufgelöst.

DatenfeldTypErforderlichBeschreibung
requestIdstringEntspricht dem entsprechenden external_tool.requested

exit_plan_mode.requested

Temporär. Der Agent hat einen Plan erstellt und möchte den Planmodus beenden.

DatenfeldTypErforderlichBeschreibung
requestIdstringVerwenden Sie dies, um über session.respondToExitPlanMode() zu antworten.
summarystringZusammenfassung des Plans
planContentstringVollständiger Inhalt der Plandatei
actionsstring[]Verfügbare Benutzeraktionen (z. B. genehmigen, bearbeiten, ablehnen)
recommendedActionstringVorgeschlagene Maßnahme

exit_plan_mode.completed

Vergänglich Eine Anforderung für den Exit-Plan-Modus wurde aufgelöst.

DatenfeldTypErforderlichBeschreibung
requestIdstringEntspricht dem entsprechenden exit_plan_mode.requested

command.queued

Ephemere. Ein Slash-Befehl wurde zur Ausführung in die Warteschlange gestellt.

DatenfeldTypErforderlichBeschreibung
requestIdstringVerwenden Sie dies, um über session.respondToQueuedCommand() zu antworten.
commandstringDer Schrägstrich-Befehlstext (z. B. /help, /clear)

command.completed

Temporär. Ein Befehl in der Warteschlange wurde aufgelöst.

DatenfeldTypErforderlichBeschreibung
requestIdstringEntspricht dem entsprechenden command.queued

Kurzübersicht: Agentischer Handlungsfluss

Ein typischer Agent gibt Ereignisse in dieser Reihenfolge aus:

assistant.turn_start          → Turn begins
├── assistant.intent          → What the agent plans to do (ephemeral)
├── assistant.reasoning_delta → Streaming thinking chunks (ephemeral, repeated)
├── assistant.reasoning       → Complete thinking block
├── assistant.message_delta   → Streaming response chunks (ephemeral, repeated)
├── assistant.message         → Complete response (may include toolRequests)
├── assistant.usage           → Token usage for this API call (ephemeral)
│
├── [If tools were requested:]
│   ├── permission.requested  → Needs user approval (ephemeral)
│   ├── permission.completed  → Approval result (ephemeral)
│   ├── tool.execution_start  → Tool begins
│   ├── tool.execution_partial_result  → Streaming tool output (ephemeral, repeated)
│   ├── tool.execution_progress        → Progress updates (ephemeral, repeated)
│   ├── tool.execution_complete        → Tool finished
│   │
│   └── [Agent loops: more reasoning → message → tool calls...]
│
assistant.turn_end            → Turn complete
session.idle                  → Ready for next message (ephemeral)

Alle Ereignistypen auf einen Blick

EreignistypKurzlebigKategorieSchlüsseldatenfelder
assistant.turn_start
Assistent
          `turnId`, `interactionId?` |

| assistant.intent | ✅ | Assistent | intent | | assistant.reasoning | | Assistent | reasoningId, content | | assistant.reasoning_delta | ✅ | Assistent | reasoningId, deltaContent | | assistant.streaming_delta | ✅ | Assistent | totalResponseSizeBytes | | assistant.message | | Assistent | messageId, , content``toolRequests?, , outputTokens?``phase? | | assistant.message_delta | ✅ | Assistent | messageId, deltaContent``parentToolCallId? | | assistant.turn_end | | Assistent | turnId | | assistant.usage | ✅ | Assistent | model, , inputTokens?``outputTokens?, , cost?``duration? | | tool.user_requested | | Werkzeug | toolCallId, toolName``arguments? | | tool.execution_start | | Werkzeug | toolCallId toolName arguments? mcpServerName? | | tool.execution_partial_result | ✅ | Werkzeug | toolCallId, partialOutput | | tool.execution_progress | ✅ | Werkzeug | toolCallId, progressMessage | | tool.execution_complete | | Werkzeug | toolCallId success result? error? | | session.idle | ✅ | Sitzung | backgroundTasks? | | session.error | | Sitzung | errorType, message``statusCode? | | session.compaction_start | | Sitzung | (leer) | | session.compaction_complete | | Sitzung | success, preCompactionTokens?``summaryContent? | | session.title_changed | ✅ | Sitzung | title | | session.context_changed | | Sitzung | cwd gitRoot? repository? branch? | | session.usage_info | ✅ | Sitzung | tokenLimit, currentTokens``messagesLength | | session.task_complete | | Sitzung | summary? | | session.shutdown | | Sitzung | shutdownType, codeChanges``modelMetrics | | permission.requested | ✅ | Erlaubnis | requestId, permissionRequest | | permission.completed | ✅ | Erlaubnis | requestId, result.kind | | user_input.requested | ✅ | Benutzereingabe | requestId, question``choices? | | user_input.completed | ✅ | Benutzereingabe | requestId | | elicitation.requested | ✅ | Benutzereingabe | requestId, message``requestedSchema | | elicitation.completed | ✅ | Benutzereingabe | requestId | | subagent.started | | Unteragent | toolCallId, agentName``agentDisplayName | | subagent.completed | | Untervertreter | toolCallId, agentName``agentDisplayName | | subagent.failed | | Sub-Agent | toolCallId, agentName``error | | subagent.selected | | Unter-Agent | agentName, agentDisplayName``tools | | subagent.deselected | | Unteragent | (leer) | | skill.invoked | | Fertigkeit | name path content allowedTools? | | abort | | Steuerung | reason | | user.message | | Benutzer | content, attachments?``agentMode? | | system.message | | System | content, role | | external_tool.requested | ✅ | Externes Werkzeug | requestId, toolName``arguments? | | external_tool.completed | ✅ | Externes Werkzeug | requestId | | command.queued | ✅ | Befehl | requestId, command | | command.completed | ✅ | Befehl | requestId | | exit_plan_mode.requested | ✅ | Planmodus | requestId summary planContent actions | | exit_plan_mode.completed | ✅ | Planmodus | requestId |

Morty Proxy This is a proxified and sanitized view of the page, visit original site.