Skip to main content

SessionEvent

Alle Nachrichten von Copilot sind Instanzen der Klasse Revolution\Copilot\Types\SessionEvent. Da sie am häufigsten verwendet wird, wurden Laravel-typische Komfortfunktionen ergänzt.

content()

Ruft die wichtigste Antwortnachricht der KI ab.
Auch die implizite Typumwandlung via __toString() liefert den Nachrichteninhalt zurück.

Event-Typ prüfen

isAssistantMessage(), isUserMessage(), isIdle(), isAssistantMessageDelta() stehen zur Verfügung. Für häufig genutzte Event-Typen können weitere Helper hinzugefügt werden. Mit is() können Sie einen beliebigen EventType prüfen.
type() gibt den String-Wert des Enums SessionEventType zurück.

failed() / successful()

Wenn der Event-Typ SESSION_ERROR ist, wird failed() zu true. successful() ist die Negation. Zur Ausrichtung an Laravel-Konventionen wurde die Methode von isError() umbenannt.

throw()

Wie bei Laravels HTTP- und Process-API wird der Fehler beibehalten und kann via throw() als Exception geworfen werden. Da bei fehlerfreiem Zustand nichts passiert, lässt sich schreiben:
Bei Event-Typ SESSION_ERROR wird Revolution\Copilot\Exceptions\SessionErrorException geworfen. Bei Timeout wird Revolution\Copilot\Exceptions\SessionTimeoutException geworfen. Bei JSON-RPC-Fehlern wird Revolution\Copilot\Exceptions\JsonRpcException geworfen.

Conditionable

when() und unless() sind verfügbar.

Dumpable

dump() und dd() sind verfügbar.

Tappable

tap() ist verfügbar.

InteractsWithData

Diese Funktion bezieht sich ausschließlich auf die Eigenschaft $data von SessionEvent. Sie können vertraute Helper wie all(), has(), only(), collect() verwenden. Details siehe InteractsWithData. Da die Struktur von $data je nach EventType unterschiedlich ist, ist dies für den ereignisspezifischen Zugriff auf Werte hilfreich. Auch content() verwendet intern InteractsWithData.

toArray() / toJson()

Sie können den gesamten SessionEvent in ein Array oder JSON umwandeln.
Eine collect()-Methode für das gesamte Event existiert nicht. Grund: $data hat bereits collect() aus InteractsWithData. Wenn Sie das gesamte Event mit Collection-Operationen bearbeiten möchten, nutzen Sie den Laravel-Helper collect().

broadcast() / broadcastNow()

Sie können mit derselben Schnittstelle wie beim StreamEvent des Laravel AI SDK broadcasten. Beim AI SDK wird es beim Streaming verwendet, beim SessionEvent aber für beliebige EventTypes.
broadcastNow() broadcastet sofort, ohne den Weg über die Queue.
Anwendungsbeispiel beim Streaming:
Aktuelle Informationen finden Sie im GitHub-Repository.
Zuletzt geändert am 13. Juli 2026