GPT-6 Astra Mid-Turn Steering Explicado: Actualiza un Agente Mientras Está Trabajando
Comprende la dirección a mitad de giro de GPT-6 Astra a través de WebSocket: eventos aceptados, pendientes, fallidos y dirigidos, esperas de herramientas, puntos de confirmación, recuperación y diseño de UX.

Las ejecuciones largas de agentes crean un problema de UX: el usuario nota una suposición incorrecta pero debe esperar a que termine para corregirla. La dirección a mitad de giro de GPT-6 Astra permite que un cliente envíe una nueva entrada del usuario mientras una respuesta está activa. El servidor pasa de la respuesta actual a una sucesora que incorpora la actualización.
Esto no es una continuación de chat ordinaria ni una cancelación con una nueva solicitud. Es un protocolo WebSocket con acuses de recibo, puntos de confirmación y reglas de recuperación.
Requisitos y límites
Los documentos de OpenAI guían sobre el modo WebSocket de la API de Respuestas. Un cliente envía un evento response.steer que contiene:
type: "response.steer";previous_response_id, que identifica la respuesta activa;input, que contiene mensajes de rol de usuario.
El input puede incluir texto, imagen o contenido de archivo. No agregues un stream_id no documentado. El steering actualmente se aplica a modos estándar de un solo agente compatibles. Las respuestas vinculadas a la conversación y la compactación automática no lo admiten, por lo que debes elegir entre esas capacidades durante el diseño de la arquitectura en lugar de descubrir el conflicto en producción.
{
"headers": {
"row1": "Columna 1",
"row2": "Columna 2",
"row3": "Columna 3"
},
"rows": [
{
"row1": "Este es un texto de ejemplo en la primera columna.",
"row2": "Este es un texto de ejemplo en la segunda columna.",
"row3": "Este es un texto de ejemplo en la tercera columna."
},
{
"row1": "Otro texto de ejemplo en la primera columna.",
"row2": "Otro texto de ejemplo en la segunda columna.",
"row3": "Otro texto de ejemplo en la tercera columna."
}
]
}
{ "type": "response.steer", "previous_response_id": "resp_active", "input": [{ "role": "usuario", "content": "Usa la versión de la política de la UE, no la versión de EE. UU." }] }
## Comprender el ciclo de vida
`response.steer.accepted` significa que el servidor ha aceptado la responsabilidad de la entrada de dirección. Aún no es el punto de confirmación final. El evento sucesor `response.created` es la confirmación: persiste su ID de respuesta y asocia la entrada de dirección con ese sucesor.
La respuesta activa puede entonces terminar como incompleta con `incomplete_details.reason: "steered"`. Eso es un flujo de control esperado, no un fallo de la aplicación. El sucesor continúa con la actualización.
Otros eventos importan:
- `response.steer.pending`: la actualización está en cola porque la respuesta actual está esperando el trabajo propiedad del cliente;
- `response.steer.failed`: el servidor no pudo aplicar la actualización;
- sin confirmación antes de la desconexión: se desconoce el resultado.
Construye una pequeña máquina de estados en lugar de manejar estas como notificaciones no relacionadas.
## Dirección mientras una herramienta está en funcionamiento
Si la respuesta está esperando la salida de una herramienta del cliente o aprobación, el control puede permanecer pendiente. El servidor no puede inventar de manera segura el resultado faltante. Complete el protocolo requerido utilizando stubs apropiados y resultados preservados, y no vuelva a ejecutar una herramienta solo porque ocurrió el control.
Ejemplo: un usuario indica "no enviar el correo" mientras una solicitud de aprobación está abierta. Denegar la aprobación y aplicar la actualización de la indicación. Si la herramienta de correo ya se ejecutó y se perdió el acuse de recibo, primero conciliar el sistema de correo. La indicación no puede deshacer un efecto secundario.
## Máquina de estados del cliente
Un cliente robusto rastrea:
1. ID de respuesta activa;
2. ID del mensaje de dirección y estado local;
3. si `accepted` llegó;
4. si un `response.created` sucesor lo cometió;
5. llamadas a herramientas pendientes y aprobaciones;
6. estado terminal de la respuesta original;
7. último cursor de evento durable o punto de control de la aplicación.
Desactivar el envío repetido en la interfaz de usuario mientras se permite al usuario editar o reemplazar una actualización en cola según sus propias reglas. Mostrar "Aplicando tu actualización" en lugar de pretender que la primera respuesta se detuvo instantáneamente.
## Recuperación de desconexiones
Tres casos necesitan un manejo diferente:
- **Evento no aceptado:** el resultado es incierto. Reconecte, inspeccione el estado de respuesta disponible y evite reenviar ciegamente un comando que podría aplicarse dos veces.
- **Aceptado, no se observó sucesor:** el servidor posee la entrada, pero el cliente carece del evento de confirmación. Recupere la cadena de respuesta antes de enviar nuevamente.
- **Sucesor creado:** persiste ese ID y continúa desde él.
Proporciona a las entradas de dirección IDs generados por el cliente en tu base de datos, incluso si el esquema de conexión no los utiliza como campos de protocolo. Esto ayuda a deduplicar acciones de la interfaz de usuario y auditar lo que el usuario cambió.
## Casos de uso buenos y malos
La dirección es excelente para cambiar el alcance, corregir una fuente, acotar una búsqueda, agregar una restricción faltante o modificar el resultado deseado mientras la investigación aún está en curso.
No es un sustituto de la aprobación, la reversión de transacciones, las comprobaciones de permisos o la cancelación determinista. No utilices la dirección para autorizar un pago ni para asumir que una acción externa ya en ejecución se ha detenido.
## Prueba las transiciones incómodas
Simular la dirección durante la generación de texto, la ejecución de herramientas alojadas, las esperas de herramientas del cliente, las esperas de aprobación, inmediatamente antes de la finalización y durante la pérdida de red. Verificar que las herramientas no se dupliquen, que la entrada aceptada no se pierda silenciosamente y que la interfaz de usuario asigne la salida a la respuesta correcta.
Rastrea la latencia de aceptación de dirección, la duración pendiente, la latencia de creación de sucesores, el estado de la respuesta original, las acciones de herramientas duplicadas y el abandono del usuario. Estas métricas revelan si la dirección realmente mejora la experiencia.
## Diseña la experiencia del usuario en torno a la propiedad
La interfaz debe distinguir tres momentos. "Enviando actualización" significa que el cliente la ha transmitido pero carece de un acuse de recibo. "Actualización aceptada" significa que el servidor la posee. "Continuando con la actualización" significa que se ha creado la respuesta sucesora. Estas etiquetas hacen comprensible la ambigüedad de red poco común sin exponer la jerga del protocolo.
Mantén la salida visible ya producida por la respuesta original, pero márcala como reemplazada si la corrección la invalida. Eliminarla puede confundir a los usuarios que actuaron según lo que vieron; presentarla como definitiva puede ser peor. Para trabajos sensibles a auditorías, conserva ambas ramas y muestra cuál sucesor se volvió autoritativo.
Aplique el rebote de ediciones rápidas de manera reflexiva. Dos mensajes de dirección—"usar Francia" e inmediatamente "usar Alemania"—pueden ser aceptados en orden. Si su producto solo desea la última instrucción, implemente una política de cliente y comuníquela; no asuma que el protocolo colapsa las actualizaciones en silencio.
Para accesibilidad, anuncie los cambios de estado sin leer repetidamente toda la respuesta generada. Permita que los usuarios de teclado lleguen a la entrada de control mientras continúa la generación, y mantenga un control de parada claro. Un buen control es tanto diseño de interacción como manejo del transporte.
## Preguntas Frecuentes
### ¿Es dirigir lo mismo que enviar otro mensaje?
No. Actualiza una respuesta activa de WebSocket y crea un flujo sucesor.
### ¿Significa `accepted` que la actualización está completamente aplicada?
No. Trata el `response.created` sucesor como el punto de confirmación.
### ¿Puede la dirección cancelar una acción de herramienta externa?
No es confiable. La cancelación de herramientas y la reconciliación de efectos secundarios son responsabilidades separadas de la aplicación.
### ¿Puedo usar la compactación automática con dirección?
La guía oficial de dirección dice que la compactación automática no es compatible con respuestas dirigidas. Diseñe una estrategia de contexto explícita.
## Conclusión
La dirección a mitad de giro hace que el trabajo largo de GPT-6 Astra se sienta receptivo, pero solo cuando el cliente respeta su protocolo. Rastree eventos aceptados, pendientes, fallidos, incompletos y sucesores; conserve los resultados de las herramientas; concilie los efectos secundarios inciertos; y exponga un estado de interfaz honesto. La dirección cambia el rumbo del agente—no borra la realidad de los sistemas distribuidos.





























































































