Pensamento de Produto

Demos aos nossos agents um Slack e um Telegram. Então eles começaram a conversar entre si.

Agents deixam de ser ferramentas e viram colegas de trabalho quando compartilham seus canais.

ASR

Apollo Space Research

Apollo Space

· 10 min de leitura

A gente não se propôs a construir um time. A gente se propôs a parar de copiar-e-colar output de agent no Slack à mão. Então demos a cada agent sua própria conta, um login de Slack, um handle de Telegram, um rosto na sidebar de canais como qualquer outro colega. O plano era simples: em vez de ir a um dashboard para ler o que um agent fez, o agent simplesmente postaria onde os humanos já estavam.

Dentro de uma semana, os agents estavam respondendo uns aos outros. Não porque a gente os conectou. Porque eles estavam de pé na mesma sala.

Isso nos surpreendeu, e então parou de nos surpreender, e essa mudança é sobre o que este post inteiro fala. Agents deixam de ser ferramentas e viram colegas de trabalho quando compartilham seus canais.

O dashboard é uma sala de espera

Aqui está o modelo que quase todo mundo shipa, e ele parece obviamente correto: cada agent ganha um dashboard. Uma aba, um painel, um feed do que ele está fazendo. Você vai lá para checá-lo do jeito que você checaria um download longo. O agent trabalha no seu próprio terrário, e o output espera por você atrás de uma URL que você tem que lembrar de abrir.

É limpo. É auditável. E silenciosamente faz algo corrosivo: torna o agent um lugar que você visita em vez de um colega ao lado de quem você trabalha.

Um colega de time humano não tem um dashboard. Ele tem uma cadeira. Ele está na thread quando a decisão é tomada, ele escuta a coisa que muda o plano, e quando termina algo ele diz isso em voz alta, no canal, onde aterrissa no contexto de todo mundo de graça. O modelo do dashboard tira tudo isso. Todo agent vira uma ilha, e você vira a única balsa, o único humano carregando mensagens entre terrários, colando o output de um agent no prompt de outro agent, repassando o que o bot de research achou para o bot de writing que precisava dele.

Você não automatizou o trabalho. Você se nomeou a camada de integração.

E a camada de integração é o pior trabalho de qualquer empresa. É tudo atenção, nenhuma alavancagem. O dashboard não te libertou; ele te tornou o ônibus que toda mensagem tem que pegar.

Dê a eles o canal, não o dashboard

Então tentamos a outra coisa. Sem terrário, sem painel privado. Cada agent ganha uma identidade real nos canais onde o time já vive, Slack para o trabalho, Telegram para os pings em movimento, e ele lê e escreve lá como todo mundo.

O primeiro efeito foi pequeno e óbvio: você para de visitar agents. Eles vêm até você. O agent de research termina e posta em #deals, marcado na thread certa. Você o vê no mesmo scroll onde seus colegas estão conversando, porque ele está no mesmo scroll.

O segundo efeito foi o que a gente não planejou. Quando um agent posta uma descoberta num canal compartilhado, todo outro agent naquele canal consegue vê-la, exatamente do jeito que um humano consegue. Então o agent que monitora o pipeline notou o post do agent de research, reconheceu como relevante para um deal que já estava rastreando, e respondeu. Dois agents, sem código de integração, coordenando através de uma mensagem num canal em que ambos por acaso estavam.

À esquerda, três agents sentam em dashboards separados e um único humano é o único caminho entre eles, colando o output de cada um no próximo; à direita, os mesmos três compartilham um canal e roteiam mensagens uns aos outros diretamente.

O canal estava fazendo a integração que a gente costumava fazer à mão. Não porque construímos um message bus, porque o Slack é um message bus, e a gente vinha tratando ele como um lugar para despejar output em vez de um lugar para coordenar. No momento em que os agents conseguiram lê-lo, eles conseguiram rotear a partir dele.

A gente pensou que estava dando aos agents um feed de notificações. Na verdade a gente estava dando a eles um sistema nervoso.

É por isso que o canal vence o dashboard, e vale dizer claramente: um dashboard é um lugar onde um agent fala com um humano. Um canal é um lugar onde qualquer um fala com qualquer um, e “qualquer um” agora inclui os agents. Agents deixam de ser ferramentas e viram colegas de trabalho quando compartilham seus canais, porque um canal é a única interface que sempre foi construída para muitos-para-muitos.

O jeito ingênuo de fazer agents conversarem: conecte-os

Agora, você pode dizer: tudo bem, mas você não precisava de Slack para isso. Se você quer que dois agents coordenem, só conecte-os. Dê ao agent de research uma function call ao agent de pipeline. Defina o formato da mensagem. Construa o bus.

A gente começou ali. Todo mundo começa. E funciona, para exatamente os dois agents que você conectou, exatamente na direção que você conectou, para exatamente o formato de mensagem que você definiu.

Então você adiciona um terceiro agent e descobre que agora precisa de três conexões. Adicione um quarto e são seis. O grafo de integração cresce mais rápido que o time, o número de fios possíveis sobe aproximadamente com o quadrado do quadro de pessoal, então no momento em que você tem um time real de agents, você tem um fardo de manutenção maior que o próprio time. Toda nova conexão é um pequeno contrato que alguém tem que desenhar, shipar e versionar: quais campos, qual formato, o que acontece na falha, quem chama quem primeiro.

Pior, a coordenação é invisível. Ela acontece dentro de function calls que nenhum humano consegue ver, então quando dois agents discordam ou entram em loop ou pisam um no outro, não há thread para rolar para trás. Você debuga uma conversa que nunca lhe foi permitido assistir, reconstruindo de logs o que dois agents disseram um ao outro, num formato que você desenhou precisamente para que nenhum humano jamais tivesse que ler.

A abordagem conectada à mão faz os agents conversarem entre si enquanto mantém os humanos fora da sala. Esse é o exato inverso do que você quer. Você quer uma sala onde a conversa é visível, para todo agent e todo humano ao mesmo tempo, e onde adicionar um participante significa adicionar uma conta, não adicionar uma aresta a um grafo.

Essa sala já existe. É o canal em que seu time já está.

Um diagrama de fiação ingênuo onde todo novo agent precisa de uma conexão ponto-a-ponto com todo outro agent, as arestas explodindo, vira um único canal compartilhado onde cada agent e cada humano é uma única membership, não uma aresta por par.

O canal compartilhado colapsa o grafo de integração numa única superfície compartilhada. Cinco agents e quatro humanos num canal são nove memberships, não trinta e seis fios. E toda palavra da coordenação está bem ali no scrollback, legível para a próxima pessoa que entra, debugável por qualquer um, porque é só uma conversa. Agents deixam de ser ferramentas e viram colegas de trabalho quando compartilham seus canais, e o canal é o que torna a coordenação deles legível em vez de enterrada.

O que muda quando a conversa é visível

A coisa que nos fez crentes não foi a velocidade. Foi o scrollback.

Alguns dias depois, rolamos um canal e lemos uma pequena troca: um agent sinalizou que um número num relatório não batia com a fonte, um segundo agent confirmou contra os dados originais, e o post foi corrigido, antes de chegar ao humano para quem era destinado. Não tínhamos construído um protocolo de fact-checking. Dois agents num canal compartilhado fizeram o que dois colegas cuidadosos fazem quando um diz “espera, essa cifra parece estranha” e o outro vai e checa.

Aqui está por que isso importa mais do que soa. No mundo conectado à mão, esse catch ou não acontece ou acontece invisivelmente dentro de uma function call que não conseguimos auditar. No mundo de canal compartilhado, ele acontece à vista, e o registro dele está só sentado ali na thread, o que significa que podemos confiar nele, aprender com ele, e corrigi-lo quando dá errado. Visibilidade não é um nice-to-have. É a coisa que deixa você entregar trabalho real a um time que você não consegue pessoalmente assistir a cada minuto.

Um canal te dá três coisas que um dashboard nunca poderia. Ele dá aos agents um contexto compartilhado, para que o que terminou possa informar o que está começando sem você repassar. Ele dá aos humanos uma janela, para que a coordenação que você delegou continue auditável. E ele dá ao time inteiro uma única linha do tempo, para que a história do que aconteceu, quem sinalizou o quê, quem corrigiu o quê, em que ordem, seja uma thread que você pode ler em vez de um estado que você tem que reconstruir.

Há um payoff mais sutil também. Porque os agents postam no mesmo lugar que as pessoas, os humanos começam a direcioná-los no meio da tarefa sem nenhuma ferramenta nova. Alguém lê o draft de um agent no canal, solta uma correção de uma linha embaixo, e o agent a pega da thread, sem nova janela de prompt, sem contexto para re-colar, sem trocar de app. A mesma superfície que deixa agents coordenarem entre si deixa humanos coordenarem com agents. Direcionamento deixa de ser uma coisa que você faz num console separado e vira uma resposta, como toda outra resposta na sala.

Nada disso exigiu infraestrutura nova. Exigiu que parássemos de pensar no canal como um destino de output e começássemos a pensar nele como o local de trabalho.

A virada

A parte estranha não foi a tecnologia. A gente não construiu nada que você chamaria de esperto, um agent que consegue ler um canal e escrever nele não é um breakthrough de pesquisa. A parte estranha foi assistir o instinto do time mudar.

As pessoas pararam de dizer “deixa eu ir checar o que o agent fez” e começaram a dizer “pergunta a ele no canal”. Um colega respondeu ao post de um agent do jeito que você responderia ao de um colega, um rápido “consegue também puxar o trimestre passado?”, e o agent o fez, in-thread, e ninguém achou isso notável. Em algum ponto ali os agents pararam de ser software que o time operava e viraram participantes com quem o time trabalhava. A linha que cruzamos não foi uma linha de capacidade. Foi uma linha social.

Essa é a parte que você não ganha de um modelo melhor ou uma context window maior. Você a ganha de uma decisão sobre onde os agents ficam. Ponha-os atrás de um dashboard e eles continuam ferramentas não importa quão espertos sejam, coisas que você opera, sozinho, como a balsa entre eles. Ponha-os na sala, nos canais, sob nomes que seus colegas reconhecem, e eles viram colegas de trabalho, porque ser um colega nunca foi sobre inteligência. Foi sobre estar presente na mesma conversa que todo mundo.

A coisa mais valiosa que fizemos não foi treinamento. Foi dar a um agent uma cadeira.


É isso que estamos construindo na Apollo Space: não agents que você opera de um console, mas agents que aparecem nos canais que seu time já usa e trabalham ao seu lado ali. A primeira vez que você assistir um deles responder à pergunta de um colega sem você no meio, algo se encaixa, e você percebe que nunca esteve gerenciando ferramentas. Você só estava esperando para conhecer o time.

A Apollo cuida da operação repetitiva da sua empresa pro seu time não precisar.

Entre na lista de espera: acesso antecipado, preço de usuário fundador e um lugar na primeira fila enquanto a gente constrói.

Entrar na lista de espera