← Voltar ao Blog IA

Por dentro do Copera AI: como resumimos threads em tempo real

Por dentro do Copera AI: como resumimos threads em tempo real

Uma thread longa é onde as decisões são tomadas e onde os recém-chegados se perdem. O Copera AI mantém cada canal resumido conforme a conversa avança — não com um processo em lote noturno, mas em tempo real. Aqui vai um olhar por dentro de como fazemos isso sem transformar o seu espaço de trabalho em uma enxurrada de resumos robóticos.

Resumir parece simples até você tentar fazê-lo ao vivo, no ritmo de uma equipe de verdade, sem ser irritante. Um resumo que está sempre se regenerando é ruído. Um resumo com horas de atraso é inútil. A engenharia interessante não é o modelo que escreve o resumo — é tudo ao redor dele que decide quando vale a pena atualizar um resumo e o que realmente vale a pena dizer. Este post percorre essa maquinaria.

O problema com a sumarização ingênua

A abordagem óbvia — entregar a thread inteira a um modelo toda vez que alguém publica — falha tanto no custo quanto na qualidade. É um desperdício, porque a maioria das mensagens não muda a essência de uma conversa (“valeu!”, “já estou nessa”, uma reação). E é incoerente, porque um resumo que se reescreve a cada trinta segundos não dá aos leitores nada estável para se ancorar. Uma boa sumarização depende tanto de contenção quanto de geração.

A parte difícil de um resumo em tempo real não é escrevê-lo. É saber a hora de não escrevê-lo.

Decidindo quando resumir

Antes de qualquer modelo rodar, uma camada leve decide se uma atualização é sequer justificada. Ela fica atenta a sinais de que o estado de uma conversa mudou, não apenas de que houve atividade:

  • Deriva semântica. Acompanhamos o quanto as mensagens recentes se afastaram do que o resumo atual já captura. Uma conversa fiada mal move a agulha; uma nova proposta ou uma reviravolta a move bastante.
  • Marcadores de decisão. Linguagem que sinaliza um compromisso, uma mudança de plano ou uma questão em aberto tem peso alto, porque esses são os momentos que o leitor mais precisa ver refletidos.
  • Eventos estruturais. Um novo participante entrando, um arquivo sendo compartilhado ou uma thread se ramificando são pistas baratas e confiáveis de que o contexto mudou.

Só quando esses sinais cruzam um limiar é que gastamos uma chamada de modelo. A maioria das mensagens nunca aciona uma, o que é exatamente o que mantém o recurso ao mesmo tempo acessível e tranquilo.

Resumindo de forma incremental, não do zero

Quando uma atualização é justificada, não relemos a thread inteira. Tratamos o resumo existente como estado e o atualizamos apenas com o material novo — uma passagem incremental que incorpora as mensagens recentes ao resumo em andamento. Isso mantém o resumo coerente ao longo do tempo (ele evolui em vez de dar solavancos) e mantém o custo proporcional ao que mudou, não ao tamanho que a thread alcançou.

Canais de longa duração são onde isso mais importa. Uma thread com duas mil mensagens não deveria custar o equivalente a duas mil mensagens de trabalho para se manter atualizada. Com atualizações incrementais, ela custa mais ou menos o mesmo que o punhado de mensagens novas desde a última atualização.

Escrevendo um resumo que valha a leitura

Um bom resumo responde às perguntas que o leitor de fato tem ao abrir um canal movimentado: O que foi decidido? O que ainda está em aberto? O que eu preciso fazer? Por isso estruturamos os resumos em torno dessas perguntas, e não em torno de um relato neutro passo a passo. Decisões são apresentadas como decisões. Questões em aberto são sinalizadas como abertas. Itens de ação são atribuídos a pessoas. O trabalho do modelo não é comprimir a transcrição — é responder as perguntas implícitas do leitor a partir dela.

Mantendo tudo fundamentado e honesto

O modo de falha que todos temem é um resumo confiante que está sutilmente errado. Nós o mitigamos de algumas formas: toda afirmação em um resumo é rastreável até as mensagens de onde veio, então você pode tocar em um ponto e pular para a fonte; o modelo é ajustado para preferir “isto está em aberto” a inventar uma resolução; e o resumo em andamento fica sempre visivelmente ancorado a um ponto específico da thread, então você sabe exatamente o que ele viu e o que não viu.

Por que o tempo real é o ponto central

Um resumo em lote conta o que aconteceu. Um resumo em tempo real muda o funcionamento da conversa enquanto ela ainda está acontecendo. Alguém pode entrar em um canal agitado e se atualizar em dez segundos. Uma decisão tomada às 14h fica compreensível para quem conecta às 17h. E a thread deixa de ser uma parede que você precisa ler do início — vira um lugar onde você pode entrar em qualquer ponto e entender na hora. Essa é a diferença entre uma transcrição e um espaço de trabalho que acompanha o seu ritmo.

Continue lendo

Pronto para substituir suas ferramentas?

Um só espaço de trabalho que substitui todas as ferramentas da sua equipe. Pague pelo que usar — nunca por usuário.

Comece grátis — $0