Seções com análise escrita
O agente organiza o documento em seções e escreve o texto de cada uma: o que olhou, o que encontrou e o que recomenda. É a parte em que o raciocínio dele agrega — e é a única parte que ele redige.
O Squad consulta o seu sistema, analisa e publica um documento analítico: seções, tabelas alimentadas direto pela API, gráficos desenhados pelo servidor e PDF. Depois envia por e-mail — só para quem está na lista autorizada.
Parte da plataforma Hal-AI Agentic. O mesmo agente que trabalha é o que presta contas.
Publicar um documento é uma ferramenta do agente, como consultar o ERP ou mandar mensagem. Ele decide que a análise vale um relatório, monta a peça e a entrega — sem ninguém abrir editor.
O agente organiza o documento em seções e escreve o texto de cada uma: o que olhou, o que encontrou e o que recomenda. É a parte em que o raciocínio dele agrega — e é a única parte que ele redige.
Tabela e gráfico não são digitados. O agente declara de qual chamada de API vêm os dados, qual lista usar e como cruzar com outra fonte. O servidor lê o retorno e monta o bloco.
O mesmo documento sai em HTML para leitura na tela e em PDF para anexar no e-mail. A folha de estilo é da casa: o agente escreve conteúdo, nunca aparência.
O agente escolhe o que mostrar. O servidor faz a conta e o desenho.
No horário programado, o Squad chama as APIs do seu sistema e recebe as listas de dados do período.
Quando o leque de subagentes está ligado, dezenas de leituras rodam em paralelo — uma por pedido, por paciente, por contrato — com resposta validada contra um esquema declarado.
Ele escreve as seções e aponta cada tabela e cada gráfico para a chamada que já fez no mesmo turno.
O servidor monta o documento, gera o PDF e envia por e-mail aos destinatários autorizados. A execução fica registrada com o que foi feito.
Abaixo, uma representação do documento como ele chega ao gestor. A folha de estilo é clara e serifada de propósito — o entregável não se parece com o painel, ele se parece com um relatório.
Confirmação de Exames · execução #47
Relatório publicado pelo Squad ao fim da execução das 08:00, sobre os agendamentos da semana corrente.
Foram 412 agendamentos no período. A rotina abordou os 318 que ainda não tinham confirmação registrada e recebeu resposta de 244 pessoas no mesmo dia. Os 29 contatos fora da janela de 24 horas continuam pendentes e só podem ser abordados por template aprovado.
Figura 1 — proporção de cada desfecho sobre os 318 contatos abordados na execução #47.
| Unidade | Turno | Abordados | Confirmados | Estado |
|---|---|---|---|---|
| Clínica Vitória — Centro | manhã | 126 | 108 | agenda cheia |
| Clínica Vitória — Norte | tarde | 94 | 71 | agenda cheia |
| Unidade Aurora | manhã | 61 | 42 | 19 vagas ociosas |
| Unidade Rota 12 | tarde | 37 | 23 | fora da janela |
| Total do período | 318 | 244 |
O cabeçalho identifica a rotina e a execução que gerou a peça, e a linha em fonte mono declara de qual chamada de API vieram os blocos daquele documento. Cada linha da tabela de unidades termina num selo de estado — agenda cheia, 19 vagas ociosas, fora da janela — e cada cartão de número traz embaixo o que acontece a seguir, como a reabordagem marcada para as 08:00 do dia seguinte.
O bloco que fecha o documento é o único que não relata: ele separa o que o Squad já resolveu do que depende de uma pessoa decidir.
A peça chega com os casos já marcados e com a pendência nomeada, então ninguém precisa abrir o sistema para descobrir onde olhar. O trabalho de exportar a planilha do período, cruzar as listas e escrever o resumo deixa de ser manual — e sai de madrugada, antes de a operação começar.
Como a estrutura é a mesma em toda execução, o documento de hoje pode ser comparado com o da semana passada sem ninguém refazer a conta para alinhar as duas leituras.
Com o leque de subagentes ligado, cada caso da tabela nasce de uma leitura própria: dezenas de análises rodam em paralelo, uma por pedido, por paciente ou por contrato, cada uma com raciocínio dedicado e resposta conferida contra um esquema declarado antes de virar linha da tabela.
Uma automação de fluxo percorre uma árvore e devolve o total do conjunto. Aqui o conjunto é olhado caso a caso — e os subagentes só herdam ferramentas de leitura: escrever, mandar e-mail ou disparar mensagem não existe no universo deles.
O mesmo documento volta para o chat da execução como um anexo clicável, com o nome, o formato e o tamanho do arquivo — é por ali que o gestor abre a peça sem sair da conversa com o orquestrador.
Balão do documento publicado, como ele aparece no chat da execução do Squad.
Uma tabela redigitada por um modelo de linguagem é uma tabela plausível. A diferença aqui é de arquitetura, não de capricho no texto.
O agente declara a forma do dado — ranking, série, distribuição — e o recorte. Quem calcula a escala, posiciona a barra e escreve a legenda é o servidor.
| Tipo | Forma de dado que ele mostra |
|---|---|
| Barras horizontais | Ranking de itens por um valor — quem lidera e quem fica para trás. |
| Colunas empilhadas | Composição de cada grupo, com os segmentos somando dentro da coluna. |
| Linha de série | Uma ou mais séries ao longo do tempo, para ver tendência e ruptura. |
| Rosca | Participação de cada parte no todo, quando as partes são poucas. |
| Composição | Proporção lado a lado entre grupos, em valor ou em percentual. |
| Dispersão por grupo | Onde cada caso cai dentro do seu grupo — concentração e ponto fora da curva. |
| Matriz | Cruzamento de duas dimensões, com a intensidade em cada célula. |
| Cascata | De onde saiu e onde chegou: o que somou e o que subtraiu no caminho. |
| Histograma | Distribuição de valores por faixa, para enxergar a forma da amostra. |
O agente nunca escolhe um código hexadecimal. Ele escolhe um significado — ok, alerta, ruim, ausente, info, neutro — e a paleta é do servidor.
Quando nada foi declarado, o gráfico sai numa cor só. É deliberado: num relatório em que o vermelho quer dizer abra este caso primeiro, dezessete barras de dezessete cores ensinam o leitor a ignorar a cor. A exceção é rosca e composição, onde a cor identifica a fatia.
Antes de publicar, o servidor confere a peça. Duas recusas explícitas, em vez de limpeza silenciosa:
Falhar na entrega é ruim. Entregar um eixo bonito com nada dentro é pior, porque passa despercebido.
Um agente que manda e-mail sozinho precisa de um limite duro sobre para quem ele manda. Na Hal-AI esse limite não é uma instrução de texto: é o cadastro.
A lista de quem pode receber é cadastrada pelo gestor no painel. Durante a execução o agente escolhe dentro dela — não digita endereço novo, não edita a lista e não improvisa um encaminhamento. O destinatário é conferido antes do disparo.
O relatório do dia, da semana ou do fechamento do mês sai no horário combinado. O Squad acorda, lê o próprio contexto e decide o que aquela execução exige — inclusive concluir que não há nada de novo a relatar.
O gestor anexa no chat o relatório que a equipe já monta à mão e pede aquela forma com os dados da API. O Squad resolve a estrutura uma vez e guarda o gabarito — seções, tabelas e gráficos declarados. Depois só preenche o texto de cada lacuna.
Cada rodada guarda o que foi consultado, o que foi decidido e o que foi enviado. Há modo simulação para ensaiar sem disparar nada e botão de parar para interromper na hora.
Do lado do console, a mesma entrega aparece como configuração.
| Execução | Documento | Formato | Destinatários | Desfecho |
|---|---|---|---|---|
| #47 · hoje 08:04 | Confirmação de Exames | 3 | Entregue | |
| #46 · ontem 08:03 | Confirmação de Exames | 3 | Entregue | |
| #45 · 21/08 08:02 | — | — | 0 | Sem relatório · nada novo |
| #44 · 20/08 08:06 | Confirmação de Exames | 2 | 1 endereço fora da lista | |
| Total dos 4 envios | 8 | 3 + 3 + 0 + 2 |
À esquerda, as abas da rotina, com Agenda e entrega aberta. No centro, a periodicidade e a próxima execução, o formato em que a peça sai e o modo em que ela roda. Abaixo, a faixa da lista fechada e os endereços cadastrados: três ativos e um pausado pelo gestor.
O histórico embaixo é o registro de cada envio — quantos destinatários foram alcançados, a execução que não publicou nada e a que teve um endereço barrado — com o total do período mostrando as parcelas que o formam.
A entrega deixa de depender de alguém lembrar de rodar o relatório e encaminhar o arquivo. Quando o gestor pergunta se a peça de terça saiu e para quem, a resposta está na mesma tela, sem procurar em caixa de e-mail.
Tirar uma pessoa da lista é uma alteração de cadastro, não uma reescrita de instrução do agente — e um endereço fora da lista é barrado antes do disparo, então o documento com dado do seu cliente não sai por engano para quem não devia recebê-lo.
Uma automação agendada dispara porque o relógio bateu. Aqui, acordar não é ordem de agir.
É a mesma diferença do lado de dentro: o agente decide o que aquela execução exige, em vez de percorrer uma árvore desenhada antes.
Ao lado dos documentos que o agente publica, o painel traz três relatórios de operação para o supervisor tirar na hora — com filtro por fila e por canal, PDF gerado no servidor, envio por e-mail e agendamento recorrente.
Quanto cada pessoa atendeu no período, com o número de conversas distintas sempre ao lado da soma por operador.
O volume que passou por atendimento humano, separado do que o agente resolveu sozinho.
Quem falou com a empresa na janela escolhida, por fila e por canal.
Quando uma conversa passa de mão, contar só pela fila apaga o trabalho de quem atendeu antes. A contagem usa a união da fila com o registro de movimentação dos cards — e o relatório mostra as duas leituras lado a lado, para que a soma por operador nunca seja confundida com o total de conversas.
Uma conta agregada com as parcelas impressas é uma conta que o supervisor consegue conferir.
O PDF traz também uma seção de leitura em linguagem natural sobre os números daquele período: o que subiu, o que caiu e onde vale olhar. O texto é da IA; a tabela continua vindo da consulta.
Nem toda pergunta merece um relatório agendado. O gestor abre o Copiloto, pergunta em português e recebe a resposta já formatada — texto, tabela e gráfico na própria tela.
O Copiloto responde ao gestor com o gráfico na tela e o PDF pronto para encaminhar.
O Squad publica o documento completo e o entrega à lista autorizada, sem ninguém pedir.
A memória e as ferramentas são as mesmas dos dois lados. Muda quem puxa o gatilho.
Relatório de IA costuma falhar de um jeito difícil de perceber: a peça fica bem escrita, o eixo aparece, e o dado é aproximado. Aqui o caminho do dado é outro.
Tabela e gráfico leem o mesmo retorno de API, resolvido no mesmo lugar. Não existe a versão da tabela e a versão do gráfico.
Escala, soma, percentual e posição de cada elemento são calculados fora do modelo. O que ele erraria deixou de ser trabalho dele.
Documento sem conteúdo não sai. Destinatário fora da lista não recebe. Cada execução fica registrada com o que foi feito e o que não foi.
É mais fácil ver essa diferença no entregável do que explicá-la. Abaixo, o fechamento semanal de rotas de uma transportadora: a mesma chamada de API alimenta o gráfico e a tabela da página seguinte.
Fechamento de Rotas · execução #31
Relatório publicado pelo Squad ao fim da execução de sábado, sobre as quatro rotas de referência da semana.
Foram 1.453 entregas nas quatro rotas de referência da Transportes Meridiano. 1.325 chegaram dentro da janela combinada com o cliente e 128 saíram do prazo — 47 na Rota 41 e 41 na Rota 58, que juntas respondem por 88 das 128 ocorrências.
A quarta-feira concentra o pico: 31 das 128 ocorrências caem num único dia, contra 11 no sábado, quando o volume da praça é menor.
Figura 1 — ocorrências fora do prazo por dia útil: 14 + 19 + 31 + 26 + 27 + 11 somam as 128 do período.
| Rota | Turno | Entregas | Fora do prazo | Estado |
|---|---|---|---|---|
| Rota 12 — Centro | manhã | 486 | 22 | dentro da meta |
| Rota 27 — Litoral | tarde | 402 | 18 | dentro da meta |
| Rota 41 — Serra | manhã | 351 | 47 | atraso concentrado |
| Rota 58 — Interior | noite | 214 | 41 | fora da meta |
| Total do período | 1.453 | 128 |
Tabela 1 — mesma chamada de api_get_entregas que alimentou a Figura 1, agrupada por rota.
É o documento como ele chega ao gestor: folha clara, seções numeradas e a linha de metadados declarando o período, a execução e a chamada de API que alimentou a peça. O gráfico da Figura 1 e a tabela da seção 03 leem o mesmo retorno de api_get_entregas — um agrupado por dia, o outro por rota.
Nenhum número do texto fica sem as parcelas: as 1.453 entregas aparecem como 486 + 402 + 351 + 214, e as seis barras do gráfico somam exatamente as 128 ocorrências da coluna da tabela.
Como a soma, a escala e a altura de cada barra são calculadas fora do modelo, conferir a peça é olhar duas parcelas na tela — não refazer a consulta no sistema. Se o gráfico e a tabela discordassem, seria porque o dado mudou na fonte, nunca porque o texto foi redigitado.
E o que a peça pede ao gestor vem separado do que ela relata: a Rota 41 está nomeada no fim do documento como decisão humana, não escondida no meio da análise.
Um relatório serve para decidir. Decidir sobre número aproximado é pior do que não ter relatório.
Não. Nos blocos por referência, o agente declara de qual chamada de API os dados vêm, qual lista usar e como cruzar com outra fonte. O servidor lê esse retorno, monta a tabela e desenha o gráfico. O modelo escreve o texto de análise e escolhe o recorte; a aritmética e o desenho não são trabalho dele.
Só quem está na lista de destinatários autorizados, cadastrada pelo gestor no painel. O agente não digita endereço novo nem edita a lista durante a execução, e o destinatário é conferido antes do envio. Um relatório publicado sem destinatário válido não sai.
Sim. O gestor anexa o documento existente no chat do Squad e pede aquela forma com os dados da API. O Squad resolve a estrutura uma vez e guarda um gabarito: as seções, as tabelas e os gráficos já declarados. Nas execuções seguintes ele preenche o texto de cada lacuna e o servidor remonta a peça, para que a série de meses seja comparável.
Mostramos como o agente consulta os seus sistemas, publica o documento e o entrega no horário — com o número vindo da fonte.