09 · 6 waterfalls

Anatomía de un turno

Un turno puede contener varias peticiones al modelo y cada una deja rastro.

Dos palabras que hay que fijar, porque de ellas sale todo lo demás.

  • Step Una petición Una llamada al modelo más las herramientas que llame a raíz de ella
  • Turno Varios steps Desde que pides algo hasta que no queda nada pendiente. Puede contener varios steps o ninguno

Anatomía de un turno

session agent capability turn/start agent/pre-step step/start user/message agent/request llm/stream assistant/chunk assistant/message tool/call tools/pre-execute tools/execute tools/post-execute tool/result step/end agent/turn-stopping turn/end
Dieciséis eventos entre turn/start y turn/end. La columna dice qué parte del sistema lo emite, y el salto de una columna a otra es una costura por la que se puede enganchar código.

La secuencia

Se abre el turno. Se recoge lo que hayas escrito. Se ensamblan las instrucciones y la lista de herramientas disponibles.

Antes de enviar nada, hay un punto donde cualquier pieza instalada puede reescribir lo que el modelo va a ver o rechazarlo directamente.

Si pasa, se abre un step. Tu mensaje se escribe en el registro. Se construye el historial que verá el modelo. Se lanza la petición y la respuesta llega por fragmentos, que también se guardan.

Si el modelo pide una herramienta, esa petición pasa por tres fases: una donde se decide si tiene permiso, otra donde se ejecuta y otra donde se puede transformar el resultado. El resultado se escribe en el registro.

Se cierra el step. Y si las herramientas han dejado algo pendiente, se abre otro. Ahí es donde un turno se alarga: cada step es otra petición al modelo, con su coste.

Cuando no queda nada, se cierra el turno.

El detalle que más dice del diseño

Si el filtro previo rechaza tu mensaje, el turno se cierra igualmente y queda registrado, aunque no haya llegado a hacerse ni una sola petición al modelo.

Se puede auditar también lo que no llegó a ejecutarse.

Detalle técnico opcional

Los eventos de turno, step, mensaje y herramienta son duraderos y se escriben en el registro. El resto son puntos de extensión en vivo. Seis de ellos funcionan como middleware envolvente y sus escuchas deben delegar explícitamente para que la cadena continúe. El evento que avisa del cierre del turno es la excepción: se ejecuta en orden y no delega.