Pular para o conteúdo principal
Passe um handler de eventos a uma execução ou continuação para receber um evento quando a execução começa, quando cada turno do modelo começa e termina, quando cada ferramenta roda, quando a execução pausa e quando ela termina. Use-o para atualizar sua interface, gravar registros de auditoria ou alimentar sua telemetria existente.

Onde fica o handler e o que ele recebe

Eventos que o runtime emite

As chaves de detalhes estão listadas abaixo em snake_case; o TypeScript usa a forma em camelCase. O Rust 0.2 usa nomes próprios para alguns eventos: Uma execução que termina por uma condição de parada envia run.stopped no TypeScript e nenhum evento final no Python, Go, C#, PHP, Ruby ou Java; nesses casos, leia o status da execução. No TypeScript, step.completed é enviado depois que a etapa recebeu um checkpoint, então os consumidores de persistência e telemetria podem tratá-lo como uma fronteira estável.

Eventos de stream

Com streaming, os mesmos eventos do ciclo de vida chegam junto com os eventos response.* do modelo. No TypeScript, Python, Go, C# e Java o handler os recebe; no PHP e no Ruby eles também aparecem em fullStream() / full_stream. O Rust não tem streaming. Streaming cobre os consumidores de stream.

Mantenha os handlers rápidos

O runtime espera o handler antes de continuar, então retorne rápido e mova o trabalho lento de armazenamento ou de rede para uma fila. Oculte entradas e saídas sensíveis das ferramentas antes que os eventos saiam do seu processo.

Escolha eventos para a interface de um produto

Use response.output_text.delta para o texto da resposta ao vivo, os eventos de ferramenta para cards de chamada de ferramenta e indicadores de progresso, run.waiting_for_human (Rust: run.paused) para mostrar controles de aprovação ou de entrada e os eventos finais da execução para encerrar os estados de carregamento. Para um registro local de execuções inteiras durante o desenvolvimento, use o DevTools.
Última modificação em 5 de novembro de 2026