/agent ou /coder roda dentro dele: cada agente especializado (FileAgent, CoderAgent, Planner, Refiner, …) executa seu próprio loop Reason → Act → Observe até resolver a tarefa ou atingir o limite.
ReAct sempre está ativo. Os demais seis padrões do pipeline compõem em volta dele sem substituí-lo.
Como funciona
1
Reason
O LLM recebe o system prompt do agente + a tarefa + histórico de observações e produz uma resposta que pode conter texto de raciocínio, uma
<tool_call>, uma <agent_call>, ou a resposta final.2
Act
Se houve tool/agent call, o chatcli executa (shell, file read, API call, sub-agent dispatch, …) e captura a saída.
3
Observe
A saída da tool volta para o histórico como mensagem de sistema — o próximo turno do LLM já vê o resultado.
4
Repeat
Até o LLM emitir uma resposta sem tool calls (fim natural) ou atingir
CHATCLI_AGENT_WORKER_MAX_TURNS (default 30).Arquitetura no código
Configuração
Interação com o resto do pipeline
Dentro doPipeline.Run, o fluxo é:
Observabilidade
Cada turno do loop emite eventos estruturados viazap.Logger:
AgentEvent{Type: Started|Completed|Failed} via canal (ver DispatchWithProgress), consumidos pela UI para renderizar a timeline.
Leia também
Multi-Agent Orchestration
Como o dispatcher fan-out paralelo coordena vários workers ReAct ao mesmo tempo.
#7 Reasoning Backbone
Como o effort hint é auto-atachado ao ctx antes de cada turno.