Run steps
The history of each tool call: arguments, result, and tokens.
Updated on Aug 10, 2026
Each run keeps the full trail: which tool was called, with which arguments, what came back, and how many tokens each step cost. That is what lets you debug an agent that took a strange path — and audit what it did in production.
Bearer
| List of steps, in order | No native tools? |
|---|---|
Models without function calling support are still usable: agent-kit brings an XML tag protocol that runs in the same loop, without the tools field. | Tudo — ideal para UIs que mostram o progresso passo a passo. |
messages | Falas dos agentes, ferramentas, fronteiras de nó e iterações de loop. |
minimal | Só o essencial: texto da resposta, stopped, error e done. |
| Evento | Quando | Campos úteis |
|---|---|---|
thread | Primeiro evento de todo run. | thread_id — guarde para continuar e parar. |
workflow_node_start | Um nó começou. | node_id, node_type, node_name |
workflow_node_end | Um nó terminou. | success — false traz error com a causa. |
workflow_loop | Iteração de um while. | iteration, path (loop/exit) |
workflow_stopped | Execução parada a seu pedido. | node_id do próximo nó que rodaria |
workflow_error | Um nó falhou e o run vai encerrar. | error, node_id |
flow_state | Estado de captura de fluxo ao final do turno. | pinned_node, pinned_agent |
done | Fim do run. | usage — custo, tokens e tempo consolidados |
| Evento | Quando | Campos úteis |
|---|---|---|
agent_message | Um agente do workflow falou (mensagem inteira). | data.content, data.sender.name, data.context.node_id |
chat_chunk | Fragmento de texto em streaming (caminho simples). | data.content |
| Evento | Quando | Campos úteis |
|---|---|---|
tool_use | O agente decidiu chamar uma ferramenta. | tool_name, tool_input |
tool_executing | A ferramenta está rodando. | data.tool_name, data.status |
tool_result | Resultado devolvido ao agente. | tool_name, output |
| Evento | Quando | Campos úteis |
|---|---|---|
debate_start / debate_round / debate_end | Fases de um nó de debate. | data.round, participantes |
vote_cast | Um votante votou. | data.vote, data.voter_index, sender.name |
vote_result | Resultado da votação. | data.votes, data.winner, data.has_majority |
sequential_start / sequential_end | Pipeline sequencial de agentes. | data.agent_index |
routing_decision | Um roteador escolheu o caminho. | data.route |
Há ainda eventos de atividade fina (search_started, fetch_progress, llm_thinking, processing_final_response…) — todos seguem o mesmo envelope {type, data}. Trate tipos desconhecidos como informativos: novos eventos podem surgir sem aviso.
tribunal do júri — 3 jurados, votação secretajson
data: {"type":"thread","thread_id":"2586cf3b-..."} ← guarde
data: {"type":"workflow_node_start","data":{"node_id":"juiz-intro","node_type":"agent"}}
data: {"type":"agent_message","data":{"sender":{"name":"Juiz"},"content":"Apresento o caso..."}}
data: {"type":"workflow_loop","data":{"iteration":1,"path":"loop"}} ← rodada 1
data: {"type":"workflow_node_start","data":{"node_id":"debate-jur","node_type":"debate"}}
data: {"type":"agent_message","data":{"sender":{"name":"Jurado Conservador"},"content":"..."}}
data: {"type":"vote_cast","data":{"vote":"culpado","voter_index":0}}
data: {"type":"vote_result","data":{"votes":{"culpado":2,"inocente":1},"winner":"culpado"}}
data: {"type":"workflow_loop","data":{"iteration":2,"path":"loop"}} ← rodada 2
...
data: {"type":"workflow_node_start","data":{"node_id":"veredito","node_type":"agent"}}
data: {"type":"done","usage":{"cost":0.0075,"input_tokens":18240,"output_tokens":3105}}Was this page helpful?

