GPT-6 Astra Mid-Turn Steering erklärt: Aktualisieren eines Agenten während der Arbeit
Verstehen Sie GPT-6 Astra Mid-Turn-Steuerung über WebSocket: akzeptierte, ausstehende, fehlgeschlagene und gesteuerte Ereignisse, Tool-Wartezeiten, Commit-Punkte, Wiederherstellung und UX-Design.

Lange Agentenläufe verursachen ein UX-Problem: Der Benutzer bemerkt eine falsche Annahme, muss aber auf den Abschluss warten, bevor er sie korrigieren kann. GPT-6 Astra Mid-Turn Steering ermöglicht es einem Client, neue Benutzereingaben zu senden, während eine Antwort aktiv ist. Der Server wechselt von der aktuellen Antwort zu einer Nachfolgeantwort, die das Update einbezieht.
Dies ist keine gewöhnliche Chat-Fortsetzung und keine Stornierung mit einer neuen Anfrage. Es handelt sich um ein WebSocket-Protokoll mit Bestätigungen, Commit-Punkten und Wiederherstellungsregeln.
Anforderungen und Grenzen
OpenAI dokumentiert Steuerung für den WebSocket-Modus der Responses-API. Ein Client sendet ein response.steer-Ereignis, das Folgendes enthält:
type: "response.steer"; -previous_response_id, die die aktive Antwort identifiziert;input, das Nachrichten mit der Benutzerrolle enthält.
Der Input kann Text, Bild- oder Dateiinhalte umfassen. Füge keine undokumentierte stream_id hinzu. Die Steuerung gilt derzeit für unterstützte Standard-Einzelagenten-Modi. Gesprächsgebundene Antworten und automatische Komprimierung unterstützen dies nicht, also entscheide dich während des Architekturdesigns zwischen diesen Fähigkeiten, anstatt den Konflikt erst in der Produktion zu entdecken.
{
"headers": {
"row1": "Dienst",
"row2": "Status",
"row3": "Antwortzeit"
},
"rows": [
{
"service": "Haupt-API",
"status": "Betriebsbereit",
"responsetime": "45ms"
},
{
"service": "Datenbank",
"status": "Betriebsbereit",
"responsetime": "12ms"
},
{
"service": "Cache",
"status": "Betriebsbereit",
"responsetime": "3ms"
}
],
"videourl": "https://example.com/status.mp4"
}
{ "type": "response.steer", "previous_response_id": "resp_active", "input": [{ "role": "Benutzer", "content": "Verwenden Sie die EU-Richtlinienversion, nicht die US-Version." }] }
## Verstehen Sie den Lebenszyklus
.steer.accepted bedeutet, dass der Server die Verantwortung für die Lenkeingabe übernommen hat. Es ist noch nicht der endgültige Commit-Punkt. Das nachfolgende Ereignis `response.created` ist der Commit: Speichern Sie dessen Antwort-ID und verknüpfen Sie die Lenkeingabe mit diesem Nachfolger.
Die aktive Antwort kann dann als unvollständig mit `incomplete_details.reason: "steered"` enden. Dies ist ein erwarteter Kontrollfluss, kein Anwendungsfehler. Der Nachfolger fährt mit dem Update fort.
Andere Ereignisse sind wichtig:
- `response.steer.pending`: Das Update ist in der Warteschlange, da die aktuelle Antwort auf clientseitige Arbeit wartet;
- `response.steer.failed`: Der Server konnte das Update nicht anwenden;
- keine Bestätigung vor der Trennung: das Ergebnis ist unbekannt.
Erstelle einen kleinen Zustandsautomaten, anstatt diese als unabhängige Benachrichtigungen zu behandeln.
## Lenken, während ein Werkzeug läuft
Wenn die Antwort auf eine Client-Tool-Ausgabe oder -Genehmigung wartet, kann die Steuerung ausstehend bleiben. Der Server kann das fehlende Ergebnis nicht sicher erfinden. Vervollständigen Sie das erforderliche Protokoll mit geeigneten Platzhaltern und erhaltenen Ergebnissen, und führen Sie ein Tool nicht erneut aus, nur weil eine Steuerung erfolgte.
Beispiel: Ein Benutzer steuert „E-Mail nicht senden“, während eine Genehmigungsaufforderung geöffnet ist. Lehnen Sie die Genehmigung ab und übernehmen Sie die Steuerungsaktualisierung. Wenn das E-Mail-Tool bereits ausgeführt wurde und die Bestätigung verloren ging, gleichen Sie zuerst das Mail-System ab. Steuerung kann einen Nebeneffekt nicht rückgängig machen.
## Client-Zustandsmaschine
Ein robuster Client verfolgt:
1. ID der aktiven Antwort;
2. Lenkungsnachrichten-ID und lokaler Status;
3. ob `accepted` eingetroffen ist;
4. ob ein nachfolgendes `response.created` es committet hat;
5. ausstehende Tool-Aufrufe und Genehmigungen;
6. Endstatus der ursprünglichen Antwort;
7. letzter dauerhafter Ereignis-Cursor oder Anwendungs-Checkpoint.
Deaktivieren Sie wiederholte Übermittlungen in der Benutzeroberfläche, während der Benutzer weiterhin eine in der Warteschlange befindliche Aktualisierung gemäß Ihren eigenen Regeln bearbeiten oder ersetzen kann. Zeigen Sie „Ihre Aktualisierung wird angewendet“ an, anstatt vorzutäuschen, dass die erste Antwort sofort gestoppt wurde.
## Wiederherstellung nach Verbindungsabbrüchen
Drei Fälle erfordern unterschiedliche Behandlung:
- **Kein akzeptiertes Ereignis:** Ergebnis ist ungewiss. Erneut verbinden, verfügbaren Antwortstatus prüfen und vermeiden, blind einen Befehl erneut zu senden, der zweimal angewendet werden könnte.
- **Akzeptiert, kein Nachfolger beobachtet:** Der Server besitzt die Eingabe, aber dem Client fehlt das Commit-Ereignis. Stellen Sie die Antwortkette wieder her, bevor Sie erneut senden.
- **Nachfolger erstellt:** Diese ID speichern und von dort fortfahren.
Weisen Sie Lenkeingaben client-generierte IDs in Ihrer Datenbank zu, auch wenn das Wire-Schema diese nicht als Protokollfelder verwendet. Dies hilft, UI-Aktionen zu deduplizieren und nachzuverfolgen, was der Benutzer geändert hat.
## Gute und schlechte Anwendungsfälle
Die Lenkung eignet sich hervorragend, um den Umfang zu ändern, eine Quelle zu korrigieren, eine Suche einzugrenzen, eine fehlende Einschränkung hinzuzufügen oder die gewünschte Ausgabe zu ändern, während die Recherche noch läuft.
Es ist kein Ersatz für Genehmigung, Transaktionsrückabwicklung, Berechtigungsprüfungen oder deterministischen Abbruch. Verwenden Sie Steuerung nicht, um eine Zahlung zu autorisieren oder anzunehmen, dass eine bereits laufende externe Aktion gestoppt wurde.
## Testen Sie die unbeholfenen Übergänge
Simulieren Sie die Steuerung während der Texterzeugung, gehosteter Tool-Ausführung, Wartezeiten auf Client-Tools, Genehmigungswartezeiten, unmittelbar vor Abschluss und während Netzwerkverlusts. Überprüfen Sie, dass Tools nicht dupliziert werden, akzeptierte Eingaben nicht stillschweigend verloren gehen und die Benutzeroberfläche die Ausgabe der richtigen Antwort zuweist.
Verfolgen Sie die Akzeptanzlatenz von Steuerungsbefehlen, die ausstehende Dauer, die Latenz der Nachfolgererstellung, den Status der ursprünglichen Antwort, duplizierte Tool-Aktionen und das Aufgeben durch Benutzer. Diese Metriken zeigen, ob die Steuerung die Erfahrung tatsächlich verbessert.
## Gestalten Sie die Benutzererfahrung rund um Eigentum
Die Schnittstelle sollte drei Momente unterscheiden. „Update senden“ bedeutet, dass der Client es übertragen hat, aber eine Bestätigung fehlt. „Update akzeptiert“ bedeutet, dass der Server es besitzt. „Mit Update fortfahren“ bedeutet, dass die Nachfolgeantwort erstellt wurde. Diese Bezeichnungen machen seltene Netzwerkambiguität verständlich, ohne Protokolljargon preiszugeben.
Behalten Sie die bereits erzeugte sichtbare Ausgabe der ursprünglichen Antwort bei, kennzeichnen Sie sie jedoch als überholt, wenn die Korrektur sie ungültig macht. Das Löschen kann Benutzer verwirren, die auf das Gesehene reagiert haben; es als endgültig darzustellen, kann schlimmer sein. Bewahren Sie bei prüfungsrelevanten Arbeiten beide Zweige auf und zeigen Sie, welcher Nachfolger maßgeblich wurde.
Entprellen Sie schnelle Bearbeitungen bedacht. Zwei Steuerungsnachrichten – „Frankreich verwenden“ und sofort „Deutschland verwenden“ – können beide der Reihe nach akzeptiert werden. Wenn Ihr Produkt nur die letzte Anweisung haben möchte, implementieren Sie eine Client-Richtlinie und kommunizieren Sie diese; nehmen Sie nicht an, dass das Protokoll Updates stillschweigend zusammenfasst.
Aus Gründen der Barrierefreiheit sollten Zustandsänderungen angekündigt werden, ohne die gesamte generierte Antwort wiederholt vorzulesen. Ermöglichen Sie Tastaturnutzern, während der laufenden Generierung die Steuerungseingabe zu erreichen, und behalten Sie eine klare Stoppsteuerung bei. Gute Steuerung ist ebenso Interaktionsdesign wie Transportabwicklung.
## FAQ
### Ist Lenken dasselbe wie das Senden einer weiteren Nachricht?
Nein. Es aktualisiert eine aktive WebSocket-Antwort und erstellt einen Nachfolge-Flow.
### Bedeutet `accepted`, dass das Update vollständig angewendet wurde?
Nein. Behandeln Sie das nachfolgende `response.created` als den Commit-Punkt.
### Kann die Lenkung eine externe Tool-Aktion abbrechen?
Nicht zuverlässig. Das Abbrechen von Tools und die Abstimmung von Nebeneffekten sind separate Anwendungsverantwortlichkeiten.
### Kann ich die automatische Kompaktierung mit Lenkung verwenden?
Die offizielle Steuerungsanleitung besagt, dass automatische Kompaktierung für gesteuerte Antworten nicht unterstützt wird. Entwickeln Sie eine explizite Kontextstrategie.
## Fazit
Die Lenkung während der Bearbeitung sorgt dafür, dass sich lange GPT-6 Astra-Arbeiten reaktionsschnell anfühlen, jedoch nur, wenn der Client sein Protokoll einhält. Verfolgen Sie akzeptierte, ausstehende, fehlgeschlagene, unvollständige und Nachfolge-Ereignisse; bewahren Sie Tool-Ergebnisse; gleichen Sie unsichere Nebeneffekte ab; und legen Sie den ehrlichen UI-Zustand offen. Die Lenkung ändert die Richtung des Agenten – sie löscht nicht die Realität verteilter Systeme.






























































































