Execução e interrupção
Enviar mensagem inicia uma execução. O passo a passo aparece ao vivo. Se o agente estiver ocupado ou esperando algo, a plataforma diz isso em vez de aceitar em silêncio…
Execução e interrupção
Camada funcional
Enviar mensagem inicia uma execução. O passo a passo aparece ao vivo. Se o agente estiver ocupado ou esperando algo, a plataforma diz isso em vez de aceitar em silêncio. E, a qualquer momento, dá para mandar parar — e parar de verdade.
O que acontece ao enviar, conforme o estado da conversa
| Estado da conversa | O que acontece ao enviar |
|---|---|
| Livre | segue para a execução |
| Trabalhando | recusado — o agente ainda está respondendo à mensagem anterior |
| Esperando aprovação | recusado — há uma decisão humana pendente |
| Esperando credencial | recusado, mas com uma tentativa automática de recuperar a conversa antes de desistir |
O caso de "esperando credencial" tem um cuidado extra: existe uma janela em que não há mais nem card para preencher nem pedido para cancelar — e sem essa recuperação automática, a conversa ficaria travada nesse estado para sempre. A mesma recusa também aparece quando falta um pré-requisito de integração (por exemplo, uma conexão que caiu), para não travar toda mensagem por um problema de configuração.
Parar uma execução
Parar é tratado como prioridade: a plataforma tenta garantir que a execução pare de verdade, mesmo quando o caminho normal de resposta não está funcionando. Um detalhe importa para quem usa: um pedido de parar que chega atrasado não cancela uma execução nova que já tinha começado depois dele — só a execução que estava rodando no momento em que o pedido foi feito.
Parar sempre deixa um rastro na conversa: se havia texto parcial, ele fica, e uma nota separada ("Execução interrompida pelo usuário.") aparece depois; se o turno não tinha produzido nada ainda (nem texto, nem chamada de ferramenta), a própria resposta vazia vira essa nota. Um turno que só tinha "pensado" (raciocínio, sem texto nem ferramenta) também ganha a nota — o raciocínio continua visível, na área própria dele.
Correção (25/09/2026): Parar deixou de virar o card de erro genérico. Os três motores (Claude Code, Cursor, Codex) respondem ao pedido de interromper com um resultado marcado como erro — é o eco do próprio Parar, não uma falha de verdade. Até esta correção, a plataforma tratava esse eco como falha real: a conversa mostrava o card "O agente interrompeu o trabalho inesperadamente", com um botão Continuar, bem acima da nota de que a pessoa tinha pedido para parar — e, com texto parcial, esse texto ainda ficava escondido dentro de "Ver detalhes técnicos". Agora esse desfecho é reconhecido antes de qualquer outro (a plataforma já sabe que é um Parar no instante em que manda a interrupção, não depois) e a conversa fecha como bolha normal, sem card nenhum.
Duas exceções de prioridade, quando mais de uma coisa acontece ao mesmo tempo:
- O limite de sessão do provedor ganha do Parar. Se a recusa por limite chegar junto com o clique em Parar, o card âmbar de limite aparece — e não a bolha de interrupção — porque o turno já tinha acabado pelo limite, e a pessoa precisa saber que é esperar, não que bastaria tentar de novo.
- Uma delegação interrompida não vira resposta do agente delegado. Parar na conversa principal também interrompe as delegações em andamento; antes desta correção, a nota de interrupção do delegado podia ser lida pelo agente que delegou como se fosse a resposta final dele. Agora essa distinção é explícita: interrompido é interrompido, não é "concluído".
O passo a passo agrupado num chip (14/09/2026)
Até então cada chamada de ferramenta virava um bloco próprio na conversa — um turno com nove chamadas virava nove blocos. Num turno comum há bem mais blocos de ferramenta do que texto, e nos mais longos a diferença é de ordem de grandeza: a resposta que a pessoa foi ler virava a menor coisa da tela.
Ferramentas vizinhas do mesmo turno agora viram um chip só, com o tempo do turno à direita. Um turno com uma única ferramenta não ganha lista dentro do chip: o chip é o passo, mostrando o rótulo daquela chamada específica.
O sumário de várias chamadas deixou de dizer de que tipo elas eram (21/09/2026). Até então, um chip com dois ou mais passos resumia por tipo de trabalho — "3 arquivos, 2 comandos e 1 ajuste na plataforma". O tipo informa mais que o número, mas num turno comum os números eram todos 1, e o que se lia era "1 arquivo, 1 edição e 1 escrita": uma lista de inventário onde cabia uma frase. Hoje o chip conta sem qualificar — "Executando N ações internamente" enquanto o turno corre, "Executou N ações internamente" depois que ele assenta. O tempo verbal muda de propósito: com o turno correndo, o último passo ainda não terminou, e "Executou" contaria uma ação que não aconteceu.
O detalhe de quais foram os passos não se perdeu — está na lista que o chip abre, item por item, que é onde se olha quando importa.
Cartões com vida própria — pergunta ao usuário, plano, cofre, delegação, integrações, aprovação — continuam fora do agrupamento: recolhê-los esconderia justamente onde a pessoa precisa clicar.
Enquanto o turno corre, o chip só conta (quantas chamadas, sem véu nem brilho, numa janela de até cinco linhas que acompanha sozinha); quem fala o que o agente está fazendo agora é uma linha acima do campo de mensagem, com verbo, tempo decorrido e o lembrete de que Esc para o agente. Os dois eram, antes, dois indicadores coral próximos um do outro — o coral marca uma coisa só, e agora marca a espera, não a contagem.
O contador de tempo sobrevive a recarregar (26/09/2026). O tempo decorrido passou a ser contado a partir do momento em que a conversa de fato começou a trabalhar, e não de quando a tela abriu. Antes, recarregar a página, abrir a mesma conversa em outro aparelho ou voltar de uma aprovação zerava a contagem, porque só a tela guardava o início. Hoje o mesmo início aparece em qualquer lugar que mostre aquela conversa.
Aprovar um plano reinicia o contador — de propósito: ele mede trabalho, não a espera pela sua decisão.
Abrir o chip mostra o detalhe de cada chamada. Uma edição de arquivo (Edit/Write) renderiza como
diff — montado a partir do argumento da própria chamada (o texto antigo e o novo que o agente
pediu para trocar), não da saída dela — e nasce aberto quando tem até seis linhas. Uma leitura de
arquivo não abre dentro da conversa: leva ao painel lateral.
A resposta em texto entra em blocos completos (parágrafo, tabela, trecho de código) à medida que cada um fecha, em vez de ir caractere a caractere — o mesmo componente desenha o texto ainda em curso e o já fechado, então a transição no fim do streaming não reescreve a bolha inteira. Uma mensagem enviada por você ganhou um lápis de editar, ao lado da opção de copiar que já existia.
O agrupamento precisou de um segundo acerto no mesmo dia
Na primeira versão ele simplesmente não agrupava: cada chamada continuava num bloco próprio, porque numa conversa real as chamadas não chegam do jeito que a verificação tinha suposto. Junto disso, dois acabamentos — o sumário estava genérico demais para ferramentas de integração e de plataforma (MCP), que caíam todas num "passo" que não dizia nada, e uma ferramenta de busca aparecia com nome interno no complemento cinza do chip.
Os três foram corrigidos horas depois, no mesmo dia.
Mais três acertos no dia seguinte, e o botão de parar muda de lugar (15/09/2026)
O chip e a linha de espera passaram por mais uma rodada de correções, e o botão de parar ganhou uma posição nova.
A linha de espera trocou de animação duas vezes no mesmo dia. Era uma sequência de três pontos animados por CSS. A primeira troca usou um pacote de terceiro (uma esfera pontilhada em canvas), que não convenceu no lugar — o vocabulário visual dele ("dados girando") não é o da casa, e no tamanho da linha os pontos ficavam soltos demais. A versão final é desenhada pela própria plataforma: uma grade que ondula de cima para baixo, no mesmo espírito da matriz de pontos original, sem depender de pacote nenhum. Quem pede menos movimento na tela recebe um quadro parado — a palavra ao lado (o verbo do que o agente está fazendo) já carrega a informação.
Abrir uma chamada em andamento voltou a funcionar. Por um tempo, enquanto o turno corria, a linha de cada chamada ficava inerte — o argumento, a saída ou o diff só apareciam depois que o turno inteiro terminasse, bem no momento em que já não importa mais tanto. Agora dá para abrir e ver o detalhe de uma chamada que ainda está rodando, e a janela rolante do chip (que existe para um turno com muitas chamadas não empurrar a resposta para fora da tela) para de acompanhar o fim automaticamente assim que alguém abre uma linha ou rola para trás — senão o que a pessoa acabou de abrir seria arrastado para fora de vista no passo seguinte do agente. De quebra, o rótulo "Lendo arquivo..." parou de continuar no gerúndio depois que a leitura já tinha terminado.
O parar passou a ocupar o lugar do enviar, como no resto dos produtos de chat com IA. Antes, os dois eram controles separados; agora, enquanto o agente responde, o botão sólido do rodapé é o de parar, e ele volta a ser o de enviar quando o turno termina. Se você escrever alguma coisa com o agente ainda respondendo, aparece ao lado dele um segundo botão, "Enfileirar": a mensagem entra na fila e roda assim que o turno atual acabar, em vez de ser recusada.
As duas pausas — aprovação e credencial — são a exceção: nelas o rodapé inteiro dá lugar a uma faixa própria, sem enviar e sem parar. A saída é decidir no cartão que está na conversa, e é para ele que a faixa leva.
Regressões da própria rodada, corrigidas no mesmo dia: o chip tinha ficado "apagado" (sem borda nem janela rolante) na transcrição de um trabalhador e no cartão de delegação, porque os dois montam a mesma peça sem passar a informação de que o turno está correndo — corrigido para cada um usar a própria fonte de verdade (o hook do trabalhador, o estado da sub-conversa do cartão). E a resposta em texto tinha voltado a aparecer de uma vez só em vez de em blocos — dois defeitos diferentes, um em cada metade do fluxo, ambos com teste que trava a regressão.
Duas pausas diferentes de parar
Diferente de parar, há duas situações em que a execução espera e depois continua de onde parou: aprovação humana e preenchimento de credencial. Nos dois casos a sessão de trabalho é preservada — o agente não perde o fio quando alguém volta e decide.
Ocupação da janela de contexto e compactação
A plataforma mede, a cada turno, o quanto da capacidade de memória de uma conversa já está em uso.
O que a interface mostra: um indicador de ocupação com detalhamento por categoria (mensagens, ferramentas, memória, skills e espaço livre). A conta que fecha é: uso total mais espaço livre soma a capacidade máxima.
Correção (12/08/2026): o gatilho automático mudou de dono. Até então, a plataforma considerava compactar a conversa a partir de 80% de ocupação da janela — um limite fixo que disparava cedo demais e descartava contexto que ainda dava para aproveitar. Hoje quem decide quando compactar automaticamente é o próprio motor de execução do agente, que só age perto do limite real da janela, reservando uma margem de segurança para si mesmo; a plataforma não dispara mais essa compactação por conta própria.
O que continua exatamente como antes:
- A medição de fim de turno (o indicador de ocupação por categoria, mensagens/ferramentas/ memória/skills/espaço livre), que alimenta o popover de contexto e o botão "Liberar espaço".
- O diagnóstico de piso fixo: quando as mensagens são menos de 15% do total ocupado, compactar devolveria quase nada, e a interface continua explicando que o peso está na configuração do agente, não no histórico.
Compactação manual: dá para pedir para compactar a qualquer momento, pelo chat. Roda como uma operação separada, em segundo plano, com um teto de 120 segundos por tentativa. O marco visual de "conversa compactada" só aparece depois de confirmar que a janela realmente encolheu — não basta o pedido ter sido aceito. Corrigida em 12-13/08/2026 uma falha que deixava esse pedido preso em "compactando" para sempre.
Aviso quando o agente perde o fio
Em conversas muito longas, o agente pode continuar respondendo mas ir se afastando das instruções originais — sem erro, sem aviso, só gradualmente "esquecendo" o combinado. A plataforma detecta esse padrão e avisa antes do trabalho se perder, com uma faixa no topo da conversa.
O aviso liga automaticamente, sem configuração, e é calibrado para disparar depois de algumas respostas seguidas fora do combinado (por padrão, três) — não uma só, para não alarmar por um deslize pontual.
Cada organização pode desligar (20/08/2026). Até então o aviso era ligado ou desligado para a plataforma inteira, de uma vez — não havia como desligar para uma organização sem desligar para todas. Como a detecção funciona acrescentando uma instrução a todo agente da organização, quem não quer o aviso, ou prefere não gastar instrução com ele, agora desliga sozinho em Configurações da organização. As duas camadas precisam concordar para o aviso existir: o interruptor geral da plataforma segue valendo como desligamento de emergência, e a preferência da organização decide dentro do que ele deixa passar. As duas resolvem num só lugar, porque o valor é consultado em três momentos de uma mesma execução — quando a instrução é dada ao agente, quando o desvio é medido e quando o aviso aparece na tela — e divergir entre eles produz o pior dos dois desfechos: instrução dada sem medição (aviso que nunca dispara) ou medição sem instrução (aviso que dispara sempre). Falha ao ler a preferência da organização cai no padrão histórico: ligado.
O que isso não detecta: não é uma medida de "o histórico saiu da memória" — é uma medida de que o modelo parou de seguir a instrução, ainda que ela continue disponível para ele.
Duas saídas, e só na faixa do topo (02/09/2026)
Até 17/08/2026 o aviso oferecia uma única saída, "Iniciar nova conversa", que criava uma conversa vazia — quem clicava no meio de um trabalho recomeçava do zero. Em 18/08/2026 passaram a ser três, e uma delas exigia fechar uma janela que cobria a conversa antes de continuar lendo.
Em 02/09/2026 essa janela saiu, e com ela uma das três saídas. O mesmo alerta estava aparecendo em dois lugares ao mesmo tempo: a faixa no topo, que já traz as duas ações que fazem alguma coisa e fica à vista enquanto a situação durar, e uma janela por cima, que só acrescentava a interrupção — no meio de uma conversa que a pessoa estava lendo. A terceira saída era "Continuar aqui", que não fazia nada; e não fazer nada não precisa de botão quando nada está bloqueando o caminho.
Restam duas, na faixa, em ordem de custo:
- Resumir a conversa (destaque) — a mesma compactação manual descrita acima. É a saída mais barata: resume o histórico e mantém a pessoa na mesma conversa. Fica desabilitada nas mesmas condições de sempre (conversa ocupada, sem histórico a resumir) e também quando o peso é conteúdo fixo do agente — nesse caso compactar devolveria pouco espaço, e o aviso não recomenda o que não resolve (o medidor de contexto, que já mostra o diagnóstico ao lado, continua permitindo mesmo assim).
- Levar para uma conversa nova — vira um turno do próprio agente ("hand-off"): ele escreve o estado do trabalho e, quando o agente tem a capacidade de operar a própria plataforma, já cria a conversa nova e planta o resumo lá; sem essa capacidade, ele gera um documento e a pessoa recebe um link para baixar. Essa decisão (criar conversa vs. gerar arquivo) é definida no servidor, não pelo agente — evita a situação de o agente tentar uma ação que não tem disponível e anunciar uma conversa que não existe. Exige que a conversa esteja livre (sem execução em curso).
O desfecho do hand-off fica registrado como um marco permanente na linha do tempo da conversa (diferente do banner, que some quando a aderência volta): "Preparando a transferência" enquanto roda, depois um botão para abrir a conversa nova ou baixar o resumo, ou um aviso de que o turno terminou com erro e nenhum resumo foi gerado (nesse caso dá para pedir de novo). Pedir hand-off mais de uma vez na mesma conversa é permitido — cada marco de pedido só mostra o resultado da sua própria tentativa.
Em conversas vistas por link compartilhado (visão só-leitura), o aviso inteiro não aparece — quem só está lendo a conversa de outra pessoa não tem como acionar nenhuma das duas ações.
O aviso passou a ser falado (02/09/2026). Enquanto existia a janela, ela era a única parte que se anunciava sozinha para quem usa leitor de tela. Tirada a janela, o aviso do topo ficava mudo: quem não vê a tela simplesmente não era informado de que a conversa tinha entrado nesse estado.
Agora o aviso é anunciado nos dois momentos em que ele pode aparecer — quando a conversa se degrada enquanto você está nela, e quando você já a abre degradada. São dois casos, e cada um exigiu tratamento próprio: o que funciona para avisar de uma mudança não avisa nada quando o texto já estava lá desde o começo.
A faixa passou a caber num canto (03/09/2026)
A faixa mostrava quatro coisas de uma vez: o aviso em si, a recomendação, a razão de uma das saídas estar indisponível e as duas saídas. Com duas conversas abertas lado a lado, isso comia um terço do espaço de leitura de cada uma — o alerta ocupava mais lugar do que aquilo sobre o que ele alertava.
Agora só o essencial fica sempre à vista: o aviso e a saída mais barata. O resto desce para um bloco que abre com um clique.
Duas regras decidem quando esse bloco abre por conta própria, e as duas têm o mesmo critério — se aquilo é resposta a algo que você fez:
- Um erro abre o bloco. Erro é o desfecho de um clique seu, e esconder isso atrás de um gesto a mais seria simplesmente não avisar. Tentar de novo e falhar de novo faz o aviso reaparecer, em vez de a segunda falha passar calada.
- Uma saída indisponível não abre o bloco. "Não há histórico para resumir" é estado da conversa, acontece com frequência e não pede reação sua. Abrir por isso deixaria a faixa sempre expandida, e a economia de espaço desapareceria. Quem quiser o motivo o alcança pelo próprio botão.
Para quem usa leitor de tela nada muda entre recolhido e aberto: é o mesmo aviso, dito do mesmo jeito — só a apresentação muda.
E o estado recolhido não é guardado entre visitas, de propósito: o aviso não é algo que se dispensa. Enquanto a condição durar, ele volta.
Correção (14/08/2026): a instrução que pede ao agente para sinalizar o início de cada resposta media taxas bem diferentes conforme o turno: quase 1 em 3 turnos sem chamar nenhuma ferramenta antes de escrever emitia o sinal, contra menos de 1 em 20 turnos que chamavam uma ferramenta primeiro — o caso mais comum numa plataforma de agentes autônomos, que quase sempre agem antes de escrever. A instrução original pedia para sinalizar "o começo de toda resposta", o que não fazia sentido para um turno que começa com uma ação, não com texto — quando o agente finalmente escrevia, já não era mais "o começo" de nada. A instrução agora ancora explicitamente no primeiro texto do turno, com orientação própria para depois de usar ferramentas, e a medição deixou de disparar aviso em conversas saudáveis por causa desse falso positivo.
O que dá para fazer
| Ação | Onde |
|---|---|
| Enviar mensagem (inicia a execução) | Painel e API de chat |
| Parar | Painel e API de conversas |
| Retomar depois de uma pausa | Painel e API de conversas |
| Ver o estado da execução em andamento | Painel e API de conversas |
Quando o provedor de IA recusa por limite (25/08/2026)
Uma execução também pode terminar porque o provedor de IA recusou por limite de uso da conta — não é uma falha do agente nem da conversa. Esse caso ganhou um card próprio, âmbar, sem o botão "Continuar": insistir não resolve, e o limite volta sozinho depois de um tempo. Antes desta correção o motivo se perdia, e a conversa mostrava o card genérico de erro sem dizer o que havia acontecido.
Limites conhecidos
- Execução órfã: se o ambiente por trás da execução morrer no meio do processo, a conversa pode ficar presa em "Trabalhando" até alguém parar e reenviar a mensagem.
- A recusa por conversa ocupada é uma resposta esperada, não um erro de sistema: quem integra por API precisa tratá-la (mostrar um aviso ou oferecer enfileirar a mensagem).
Compartilhamento de conversa por link
Uma conversa pode ser aberta para quem tem o link — em dois níveis: só ver o histórico, ou ver e participar, respondendo dentro dela. Desde 05/09/2026, os dois níveis exigem…
Fila de mensagens por conversa
Mandar mensagem com o agente ocupado é recusado por padrão, mas dá para enfileirar de forma explícita: ela é enviada automaticamente quando ele terminar.