Steering y queueing
En el flujo habitual de una aplicación Laravel apenas se usa steering directamente. En los patrones de ejecución síncrona de Laravel es difícil aprovecharlo, y lo normal es operar con el queueing por defecto.
Resumen
Todos los métodossend() / sendAndWait() / sendAndStream() / Copilot::run() aceptan el parámetro $mode.
| Modo | Comportamiento |
|---|---|
"enqueue" (por defecto) | Se procesa como cola después de completar el turn actual |
"immediate" (steering) | Se inyecta inmediatamente interrumpiendo el turn en curso |
Steering ("immediate")
Inyecta el mensaje directamente en el turn que el agente está procesando. El agente lo recibe en tiempo real y ajusta la respuesta. Se usa cuando quieres cambiar de dirección sin interrumpir el trabajo en curso.
Queueing ("enqueue")
Añade el mensaje a la cola y lo procesa en orden una vez completado el turn actual. Cada mensaje encolado se ejecuta como un turn independiente. Es el comportamiento por defecto si omites $mode.
Enfoque práctico en Laravel
En Laravel es habitual usar patrones síncronos conCopilot::run() o sendAndWait(). Como envían el mensaje y esperan hasta el estado idle, no hay oportunidad de interrumpir al agente mientras procesa, así que $mode es prácticamente irrelevante.
"immediate") es útil cuando envías mensajes de forma asíncrona con send() y, en paralelo, puedes intervenir sobre el turn en curso con otro mensaje. En el flujo síncrono habitual de Laravel es difícil crear esa oportunidad, así que en general lo adecuado es no indicar $mode y dejar el valor por defecto.
¿Cuál usar?
| Situación | Patrón |
|---|---|
| El agente va en la dirección equivocada | Steering ("immediate") |
| Se te ocurre lo siguiente que hay que hacer | Queueing ("enqueue") |
| Ejecutar varias tareas en orden | Queueing ("enqueue") |
| Aplicación Laravel normal | Por defecto ($mode no hace falta) |
Buenas prácticas
- El valor por defecto es queueing: en la mayoría de casos, omitir
$mode(o indicar"enqueue") es lo adecuado. Ofrece un comportamiento predecible. - Usa steering para correcciones: reserva
"immediate"para cuando el agente esté haciendo claramente algo mal. - Mensajes de steering breves: mensajes cortos y comprensibles en el contexto actual. Los mensajes de steering largos y complejos generan más confusión.
- Evita el steering encadenado: enviar varios steerings en poco tiempo puede degradar la calidad del turn. Si se requiere un cambio grande de dirección, a veces es mejor interrumpir el turn y empezar de nuevo.
Referencias
Consulta la información más reciente en el repositorio de GitHub.