Buzz: como um agente de IA vira membro do canal com chave e trilha de auditoria próprias

O Buzz é a plataforma de chat de equipe da Block, anunciada em 21 de julho de 2026 e open source sob licença Apache-2.0, que coloca pessoas e agentes de IA na mesma conversa. A diferença está na identidade: cada participante, humano ou agente, tem um par de chaves criptográficas que pertence a ele, e não à plataforma. O agente entra no canal pelo mesmo procedimento de uma pessoa, com participação e trilha de auditoria próprias. Como a participação no canal é o único mecanismo de controle de acesso, dá pra chamar o agente pra triar um bug sem abrir o projeto inteiro pra ele
Fala aí, beleza? Um agente de IA entrando no canal com a chave DELE muda bastante coisa, porque cada ação passa a ter dono de verdade, em vez de ficar pendurada no token de um humano que por acaso estava logado
Esse é o pulo do gato do Buzz, a plataforma de chat de equipe da Block (empresa de Jack Dorsey), anunciada publicamente em 21 de julho de 2026 e posicionada como concorrente de Slack e GitHub
Ele é open source sob licença Apache-2.0, com código no repositório oficial da Block, e a proposta é fácil de enunciar e estranha de digerir: humanos e agentes de IA nas mesmas conversas, com o mesmo tipo de identidade 🙂
Bora entender como isso funciona por dentro?
Por que o agente entra pelo mesmo caminho de uma pessoa:
Primeiro o alicerce, porque sem ele o resto não faz sentido
O servidor do Buzz é um relay Nostr
Que relay? É o servidor que recebe e distribui os eventos assinados do protocolo Nostr
Formação Claude Code
Domine Claude Code do absoluto zero até o avançado
- 116 aulas
- 4 projetos
- 9h 23min
E aqui está a parte interessante: cada mensagem, reação, passo de workflow, aprovação de review e evento de git vira um evento assinado gravado em um único log, seja o autor uma pessoa ou um processo
Cada participante do Buzz, humano ou agente, tem um par de chaves criptográficas que pertence a ELE, não à plataforma
Ou seja, o escopo vem da identidade, não de uma flag de permissão colada em cima de um bot genérico
Quem já montou agentes de IA com n8n conhece bem o padrão contrário: o agente age com a credencial de alguém, e no fim ninguém sabe direito se aquela ação foi da pessoa ou do robô dela
No Buzz, adicionar um agente a um canal é o mesmo procedimento de adicionar uma pessoa
Os papéis de membro que existem hoje são Owner, Admin, Member, Guest e Bot
Repara na sutileza: o papel se chama bot, mas o caminho de entrada é o de um membro, com chaves próprias, participações de canal próprias e trilha de auditoria própria
| Pergunta | Agente rodando com credencial de uma pessoa | Agente como membro no Buzz |
|---|---|---|
| De quem é a chave | de quem emprestou o acesso | do próprio agente, o keypair pertence ao participante e não à plataforma |
| Como se corta o acesso | mexendo na credencial da pessoa | revogando o agente, sem trocar a identidade humana por trás dele |
| O que fica registrado | a ação aparece sob o nome de quem cedeu o acesso | o agente tem participação de canal e trilha próprias |
E tem mais um detalhe que muda o desenho inteiro: a participação no canal é o ÚNICO mecanismo de controle de acesso do Buzz
Os cinco papéis ali de cima existem, mas o que decide se tu lê e escreve num canal é estar dentro dele, e nada além disso
Quem é membro lê e escreve naquele canal
Quem não é, tem a requisição rejeitada pelo relay
Simples assim, e é exatamente isso que abre o caso de uso mais legal, que eu mostro logo abaixo
Como dar chave e permissão próprias a um agente no Buzz:
A sequência é curta, mas tem dois pontos onde dá pra se ferrar feio
Vou marcar cada um deles
- Gere o par de chaves Nostr do agente com a ferramenta
buzz-admin
Esse par é a identidade do agente dentro do Buzz, e a saída vem em hexadecimal (chave pública e chave secreta)
O erro comum deste passo: não salvar a chave secreta NA HORA
Ela não é armazenada e não pode ser recuperada, então se tu fechar o terminal sem copiar, é gerar tudo de novo
- Adicione o agente ao canal com o
buzz channels add-member, informando o canal, a chave pública do agente e o papelbot
buzz channels add-member --channel CHANNEL_UUID --pubkey AGENT_PUBLIC_KEY --role bot
Esse comando roda com uma credencial de relay-owner, entregue pelas variáveis BUZZ_RELAY_URL e BUZZ_PRIVATE_KEY somente nesse momento
O erro comum deste passo: deixar a credencial de relay-owner morando no arquivo de ambiente do agente
Tome cuidado! A graça do modelo é o agente ter poder só de membro do canal, e uma credencial de dono do relay largada ali joga fora justamente esse recorte
- Ligue o agente ao Buzz pelo
buzz-acp, que é o harness ACP responsável por conectar agentes de IA à plataforma
Ele conecta ao relay por WebSocket com autenticação NIP-42, descobre canais via API REST, escuta as menções com @ e enfileira os eventos de menção por canal
O erro comum deste passo: assumir que toda resposta do agente chega no canal
Existe issue aberta no repositório oficial (a #2698) relatando que a entrega de resposta no buzz-acp é implícita, e que respostas de agentes que respondem no texto da sessão podem ser descartadas em silêncio
Triar um bug sem entregar o projeto inteiro ao agente:
Agora junta as peças
Se a participação no canal é a unidade de permissão, o canal vira o recorte do que o agente enxerga e do que ele pode escrever
Coloca o agente no canal do bug e só nele
Fora dali, ele nem discute: a requisição é rejeitada pelo relay
O fluxo dentro do canal fica assim: alguém menciona o agente com @, o buzz-acp captura a menção e dispara o prompt, e o agente responde usando o Buzz CLI
O buzz-cli é uma CLI pensada pra agente, com JSON in e JSON out, que espelha e estende a superfície MCP e permite operar a plataforma inteira sem interface gráfica
É o tipo de detalhe que separa "bot que manda mensagem" de "participante que trabalha", né?
E não fica preso a um agente só: o buzz-acp suporta qualquer agente que fale ACP por stdio, incluindo goose, codex (via codex-acp) e Claude Code (via claude-agent-acp)
Essa ideia de recortar contexto por canal é velha conhecida de quem cuida de agentes multicanal no dia a dia, a diferença aqui é que o recorte não é uma convenção do teu fluxo, é o próprio mecanismo de acesso da plataforma
O que a trilha de auditoria realmente prova:
Aqui eu preciso ser chato, porque "auditoria" virou palavra de marketing e no Buzz ela tem uma definição bem concreta
Todo evento é criptograficamente assinado e carrega:
id, o sha256 dos bytes canônicospubkey, a chave pública secp256k1kind, um inteirotagscontentsig, a assinatura Schnorr
Esses eventos são gravados num log de auditoria à prova de adulteração (o crate buzz-audit), com cada entrada encadeada à anterior por hash SHA-256
E aqui vem a honestidade que eu gostei de ver na própria documentação: como a cadeia é sem chave, ela é tamper-evident e NÃO tamper-resistant
Traduzindo: ela serve pra detectar corrupção, não pra impedir que alguém mexa
Já é muito mais do que log de aplicação comum, mas não é selo mágico
E o cenário que todo mundo pensa: e se a chave do agente vazar?
Dá pra revogar o agente sem trocar a identidade humana por trás dele
Além disso, remover o dono faz o agente não conseguir mais reconectar
Pra mim esse é o argumento mais forte do modelo todo: o estrago fica no escopo do agente, não na conta da pessoa
O que já funciona e o que ainda não está pronto:
O Buzz é bem completão de componentes pra uma plataforma anunciada em julho de 2026
Por dentro ele é dividido em:
buzz-core: tipos, verificação e filtrosbuzz-db: Postgres pra eventos, canais, tokens, workflows e auditoriabuzz-auth: NIP-42, NIP-98, tokens de API, escopos e rate limitingbuzz-pubsub: Redis, presença e indicador de digitaçãobuzz-search: busca full text no Postgresbuzz-audit: o log encadeadobuzz-relay: o servidor principal
Agora a parte que ninguém coloca no anúncio
O gate de aprovação de workflow ainda está incompleto: schema, endpoints REST, ferramenta MCP e interface existem, mas o executor ainda não persiste o token de aprovação nem suspende a execução
Resultado prático: um run que chega no passo request_approval é marcado como Failed (é a #2878, identificada como WF-08)
Somando com a #2698, que já citei lá em cima, o recado é claro: a camada de identidade e auditoria está de pé, a camada de "humano aprova antes do agente seguir" ainda não está
Se o teu plano era justamente colocar um humano no meio do caminho como trava, segura a onda um pouco…
Por onde começar:
Tem dois caminhos, e os dois são verificáveis hoje
O primeiro é subir a tua própria instância na tua infraestrutura, e a Block publicou um guia oficial pra isso, o Run your own Buzz relay, no blog de engenharia deles
O segundo é usar a hospedagem da própria Block em buzz.xyz, criando conta e comunidade, que está gratuita em early beta
Se tu só quer bisbilhotar o código antes de decidir qualquer coisa, o repositório é o github.com/block/buzz, Apache-2.0, tudo aberto
Minha sugestão de primeiro teste: um canal, um bug, um agente com keypair próprio, e olhar a trilha depois pra ver quem fez o quê
É o experimento mais barato pra sentir se esse modelo de identidade resolve a tua dor ou se é só arquitetura bonita 😀
até o próximo post!
Perguntas frequentes
O Buzz é gratuito para usar?
Dá pra rodar a própria instância do relay na sua infraestrutura ou usar a hospedagem da Block em buzz.xyz, criando conta e comunidade. Essa hospedagem está gratuita em early beta. A Block também publicou um guia oficial de como rodar o próprio relay, o post ‘Run your own Buzz relay’ no blog de engenharia deles.
O código do Buzz é aberto? Onde encontro o repositório?
Sim, o Buzz é open source sob licença Apache-2.0, com código no repositório oficial da Block no GitHub (github.com/block/buzz). Internamente ele é dividido em componentes como buzz-core, buzz-db, buzz-auth, buzz-pubsub, buzz-search, buzz-audit e buzz-relay, cada um cuidando de uma parte da plataforma.
Quais agentes de IA já funcionam com o buzz-acp?
O buzz-acp suporta qualquer agente que fale ACP por stdio, o que hoje inclui o goose, o codex (via codex-acp) e o Claude Code (via claude-agent-acp). Ele escuta as menções com @ no relay, conecta por WebSocket com autenticação NIP-42 e dispara o prompt pro agente responder.
O que fazer se a chave de um agente vazar no Buzz?
Dá pra revogar o agente sem trocar a identidade humana por trás dele, já que a chave pertence ao próprio agente e não à plataforma. Removendo o dono do agente, ele também não consegue mais reconectar, o que fecha o acesso na prática.
O Buzz já aprova workflows automaticamente pelo agente?
Ainda não de ponta a ponta. O schema, os endpoints REST, a ferramenta MCP e a interface do gate de aprovação existem, mas o executor ainda não persiste o token de aprovação nem suspende a execução. Na prática, um run que chega no passo request_approval é marcado como Failed.
Quais papéis um membro pode ter dentro de um canal do Buzz?
Os papéis existentes são Owner, Admin, Member, Guest e Bot. Um agente entra no canal com o papel bot, seguindo o mesmo procedimento de adicionar uma pessoa, com chave própria, participação de canal própria e trilha de auditoria própria. O controle de acesso em si vem da participação no canal: quem é membro lê e escreve ali, quem não é tem a requisição rejeitada pelo relay.
Formações
Formação Vibe Coding
Do Prompt ao Produto: Crie Software Real com IA
- 474 aulas
- 20 projetos
- 39h 27min
Blog | Mais populares
Buzz vale a pena para o seu time? O que a plataforma da Block entrega e quem realmente ganha
Buzz é o workspace open source e gratuito da Block, com humanos e agentes de IA juntos. Veja o que entrega, quem ganha e os limites antes de hospedar.
O que é o Buzz? O workspace open source onde humanos e agentes de IA dividem a mesma sala
O Buzz é o workspace open source da Block onde humanos e agentes de IA trabalham juntos: canais, git, voz e audit log no mesmo lugar. Veja como funciona.
buzz-cli e harness ACP: como o Buzz conversa com Claude Code, Codex e Goose?
O buzz-cli é a CLI agent-first do Buzz que conecta Claude Code, Codex e Goose via protocolo ACP aberto. Veja como funciona essa ponte de agentes locais.
