Dónde va el manejador y qué recibe
Eventos que emite el runtime
Las claves de detalle aparecen abajo en snake_case; TypeScript usa la forma camelCase.
Rust
0.2 usa sus propios nombres para algunos eventos:
Una ejecución que termina por una condición de parada envía
run.stopped en TypeScript y ningún evento final en Python, Go, C#, PHP, Ruby ni Java; lee en su lugar el estado de la ejecución. En TypeScript, step.completed se envía después de guardar el punto de control del paso, así que los consumidores de persistencia y de telemetría pueden tratarlo como un límite estable.
Eventos del stream
Con streaming, los mismos eventos del ciclo de vida llegan junto a los eventosresponse.* del modelo. En TypeScript, Python, Go, C# y Java los recibe el manejador; en PHP y Ruby también aparecen en fullStream() / full_stream. Rust no tiene streaming. En Streaming se explican los consumidores del stream.
Mantén los manejadores rápidos
El runtime espera al manejador antes de continuar, así que devuelve el control rápido y pasa a una cola el trabajo lento de almacenamiento o de red. Oculta las entradas y salidas sensibles de las herramientas antes de que los eventos salgan de tu proceso.Elige los eventos para la interfaz de un producto
Usaresponse.output_text.delta para el texto de la respuesta en directo, los eventos de herramientas para las tarjetas de llamadas a herramientas y los indicadores de progreso, run.waiting_for_human (Rust: run.paused) para mostrar los controles de aprobación o de entrada, y los eventos finales de la ejecución para cerrar los estados de carga. Para tener un registro local de ejecuciones completas durante el desarrollo, usa DevTools.