
Conectar DeepSeek Harness ao Buzz: O Gateway de Nostr
Integre o DeepSeek Harness ao Block Buzz com uma ponte Nostr. Configure auth NIP-42, streaming de mensagens in-place e espaços de trabalho de agentes de IA.
Índice

O plugin do DeepSeek Harness (DSH), dsh-message-gateway, estende o assistente DeepSeek Harness a múltiplas plataformas de mensagens, como Discord, Telegram e WeChat. O repositório do plugin foi bifurcado e estendido para adicionar a plataforma Como auto-hospedar o Buzz do Block: Espaço para agentes de IA à lista. O repositório bifurcado está disponível no GitHub em https://github.com/Tech-Voyage-Dev/dsh-message-gateway.

Guia de pré-requisitos
Como auto-hospedar o Buzz do Block: Espaço para agentes de IA
Aprenda a auto-hospedar o relay Buzz da Block em um VPS Linux com Cloudflare. Crie um espaço de trabalho seguro baseado em Nostr para humanos e agentes IA.
12 MIN DE LEITURAO assistente DSH ingressa em um relay do Buzz como membro, recebe mensagens diretas (DMs) e mensagens de canal onde é @mencionado, e responde pelo mesmo pipeline de agentes por chat utilizado na interface Web.
Arquitetura do plugin dsh-message-gateway
A arquitetura do plugin dsh-message-gateway é dividida em duas camadas principais:
- Host (Node):
gateway-store(credenciais em~/.dsh/gateway.json),platforms.ts(definições de plataformas e testes de conexão),routes.ts(endpoints/gateway/*) ebridge-manager.ts(as pontes residentes: sessões de agentes independentes por chat e respostas em streaming). - Cliente (navegador): a página "Message platforms" na barra lateral, onde você salva credenciais, testa conexões e monitora o status do serviço.
Adicionar uma nova plataforma envolve as seguintes etapas:
- Uma classe de ponte (bridge): implementando os métodos
start/stop/statuse o callbackonText(text, frame), espelhando o padrão dewecom-bridge.ts. - Integração no bridge-manager: reaproveitar o pipeline existente por conversa (
ensureAgentForKey+pendingMap) e conectar o coletor de respostas da plataforma. - Persistência e rotas: em
/gateway/savee/gateway/delete: salvar credenciais inicia a ponte, excluí-las a encerra — complementado por uma flagautoStartXxxpara que odsh webreconecte automaticamente no boot.
Implementação da ponte do Buzz: Protocolo Nostr e ciclo de vida de eventos
O DeepSeek Harness foi utilizado para implementar a ponte do Buzz. A implementação atende rigorosamente às seguintes especificações do protocolo Nostr:
| Transporte | Um único WebSocket autenticado via NIP-42; padrão ws://localhost:3000; http(s):// é normalizado para ws(s):// |
|---|---|
| Autenticação | Evento AUTH kind 22242, tags [["relay", url], ["challenge", challenge]], conteúdo vazio, assinado com a chave do agente |
| Inscrições | Por canal: REQ {"kinds":[9], "#h":[<uuid>]} — um REQ por canal. Um REQ global kinds:[9] recebe EOSE mas nunca distribui eventos; filtro #h multivalorado não funciona |
| Descoberta | REQ {kinds:[39000]} histórico para metadados de canal (type == "dm" marca canal de mensagem direta) |
| Associação | REQ {kinds:[44100,44101], "#p":[nossa pubkey], since: now-60s} ao vivo — 44100 = adição, 44101 = remoção, com p+h; atualiza inscrições sem reconectar |
| Eventos de chat | kind 9 com tags ["h", canal], opcional ["e", replyTo], ["p", menção] |
| Edições in-place | kind 40003 com h + e→alvo; substituição de conteúdo; limite do relay de 64 KB → manter payloads ≤ 60.000 B; respostas longas são fragmentadas — chunk 0 na edição, o restante adicionado como mensagens kind 9 encadeadas (e→raiz) |
| Quadros CLOSED | auth-required antes de AUTH é normal durante o bootstrap (completar AUTH e reabrir inscrições); após AUTH → retentativa delimitada (3 tentativas, backoff 0/1/2 s); reconexão reconstrói tudo |
| Limites do relay | ≤ 2000 eventos históricos por inscrição, ordenados do mais recente para o mais antigo, mesmo utilizando since |
| Filtro de menções | Processa kind 9 de entrada apenas quando: (a) tag p inclui nossa pubkey, (b) o canal é DM, ou (c) a raiz e pertence ao nosso agente. Ignora a própria pubkey (anti-loop) |
| Menções de saída | Texto publicado sem alterações — o relay não valida tokens @; tags p incluem o autor de origem mais até 7 outras pubkeys mencionadas (máx. 8) |
| Mensagens diretas | Canais de texto simples no escopo do relay (metadados type: "dm") — sem criptografia NIP-04/44 nesta ponte |
| Anexos (entrada) | NIP-92 imeta (url, sha256, m) → download http(s), verificação de SHA-256, limite de 20 MB, máx. 4 por mensagem; imagens de saída não suportadas |
O diagrama abaixo ilustra o fluxo de inicialização (bootstrap) da ponte do Buzz:

Streaming em tempo real via edições in-place do Nostr (Kind 40003)
Como o Nostr não possui indicador nativo de digitação e seus eventos são estritamente cumulativos (append-only), a ponte do Buzz simula streaming por meio de edições in-place:

- A ponte do Buzz publica primeiro um evento placeholder
kind 9, depois o reescreve progressivamente com edições in-placekind 40003com taxa controlada e grava a edição final quando o agente conclui a resposta. Esse mecanismo segue o mesmo padrão consagrado das pontes do Telegram e Discord.
Conexão de workspaces do DeepSeek Harness via comandos de chat
O recurso de "Workspaces" na interface Web do DSH é gerenciado pelo serviço workspaceRegistry (@deepseek-ai/dsh-workspace):
const existing = await ctx.workspaceRegistry.resolveByPath(request.path);
A ponte do Buzz disponibiliza o comando de chat /workspace <pasta>, que registra uma pasta existente no DSH. Qualquer nova sessão criada pelo gateway é anexada a essa pasta e exibida na interface Web.

Três regras de projeto essenciais:
- Mudar de pasta = nova sessão. O valor de
cwdé gravado no cabeçalho da sessão no momento da criação e não pode ser alterado posteriormente. - A pasta deve existir previamente. O método
createrejeita caminhos inexistentes. - Comando com sensibilidade de segurança. Toda sessão opera sob uma política de auto-aprovação, concedendo acesso aos arquivos da pasta de destino.
Guia passo a passo de instalação e configuração
- Execute os seguintes comandos no terminal:
dsh plugin --profile web add https://github.com/Tech-Voyage-Dev/dsh-message-gateway.git
# Start DSH web
dsh web
- Assim que a interface Web do DSH abrir no navegador, clique no ícone "Message platforms":
![]()
- Selecione "Buzz" no painel esquerdo:

- Clique em "Generate keypair" para gerar o par de chaves Nostr. Guarde a chave pública
npubem local seguro. - Preencha a Relay URL e os Channels (a lista autorizada de UUIDs dos canais que serão assinados).
- Clique no botão "Save".
Ao salvar o formulário, as credenciais são armazenadas e a ponte é iniciada. A chave privada nsec é protegida como segredo e gravada exclusivamente em ~/.dsh/gateway.json.
Registro do par de chaves do agente no relay Nostr do Buzz
Adicione o assistente DSH ao relay como membro. Utilize a chave npub gerada na etapa anterior:
docker compose exec relay buzz-admin add-member --pubkey npub123123123
Adicione o assistente a um canal específico. Apenas registrar o membro no relay não o torna visível nem pesquisável nos canais. Para adicioná-lo via buzz-cli, lembre-se de que o parâmetro --pubkey deve estar no formato HEX, e não npub (o comando buzz-admin add-member exibe a chave HEX correspondente):
buzz channels add-member --channel <CHANNEL_UUID> --pubkey <AGENT_HEX> --role member

Guia da CLI
Como instalar e usar o buzz-cli
Instruções passo a passo para instalar e configurar o buzz-cli para gerir canais Nostr, chaves de membros e permissões de agentes de IA.
5 MIN DE LEITURAAtualize o perfil do assistente no relay Nostr definindo um nome amigável com o buzz-cli:

Envie uma saudação Wave (a saudação padrão de DM do Buzz) para o assistente. O retorno confirma a operação:

Enviando uma Wave por mensagem direta para o assistente DSH — a ponte está ativa.
Habilitando o acesso a pastas locais com /workspace
Como a configuração allowWorkspace vem desativada (false) por padrão, o comando /workspace será inicialmente recusado:

Ative a funcionalidade em ~/.dsh/profiles/web/cordis.patch.yml e reinicie o dsh web:
- id: ui-message-gateway
config:
allowWorkspace: true
Após reiniciar:

Dica importante: o sistema presume que a pasta do workspace (TechVoyage nas capturas) esteja no diretório padrão do usuário. Caso contrário, informe o caminho absoluto. Qualquer nova sessão criada sob este workspace pelo Buzz também aparecerá na interface Web do DeepSeek Harness.

Comandos disponíveis no Buzz
Todos os comandos disponíveis nas demais plataformas suportadas funcionam normalmente no Buzz:
| Comando | O que faz |
|---|---|
/workspace <folder> | Registra uma pasta existente como o workspace da conversa (requer habilitação nas configurações) |
/help | Lista os comandos disponíveis |
/time | Mostra a hora atual do sistema |
/new | Inicia uma nova sessão de conversa limpa |
/clear | Limpa o histórico da conversa atual |
/status | Exibe o status operacional da ponte |
/stats | Mostra a contagem de conversas e linhas de status por ponte (todas as plataformas, incluindo Buzz) |
/commands | Lista descritiva com todos os comandos |
@path/to/file | Funciona exatamente como menções de arquivos na Web: o modelo lê o arquivo relativo ao workspace; @, @prefixo ou /files <prefixo> retornam arquivos e pastas correspondentes |
/model | [provider model effort] — valida contra o catálogo ativo de LLMs; /model lista as opções disponíveis e /model reset restaura os padrões |
/effort | <id> ajusta apenas o esforço de raciocínio do modelo; /effort reset restaura o valor padrão |
Resumo das medidas de segurança
- A chave privada nsec reside unicamente em
~/.dsh/gateway.json(permissões 0600, gravação atômica) — nunca sendo exposta em/gateway/listnem em logs. - Todo evento de entrada passa por validação de assinatura criptográfica (
verifyEvent), desduplicação, filtro de mensagens próprias e controle de menções antes de alcançar o agente. - O registro de workspaces é bloqueado por configuração (
allowWorkspace: falsepor padrão), garantindo controle total contra acesso indevido aos arquivos da máquina.
Conclusão: Colaboração com agentes de IA descentralizados no Buzz
O maior desafio ao incorporar o Buzz ao dsh-message-gateway esteve na conformidade com o protocolo Nostr. Como a base do plugin já contava com uma sólida arquitetura de sessões por conversa e despacho de comandos, a integração correu de maneira muito fluida assim que a manipulação de eventos e o streaming foram resolvidos.
Referências:
- dsh-message-gateway architecture guide — guia de arquitetura, receitas de extensão e notas de segurança
- nostr-tools — biblioteca Nostr utilizada sob o capô
- deer-flow IM channel connections — referências para arquiteturas de conexão em canais de mensageria
Artigos relacionados

Colaboração
Como auto-hospedar o Buzz do Block: Espaço para agentes de IA
Aprenda a auto-hospedar o relay Buzz da Block em um VPS Linux com Cloudflare. Crie um espaço de trabalho seguro baseado em Nostr para humanos e agentes IA.
18 MIN DE LEITURA
IA e Agentes
Expor o Hermes Agent em rede privada com Cloudflare WARP
Aprenda a expor e acessar globalmente seu Hermes Agent de forma segura com o Cloudflare WARP e o Zero Trust, sem abrir portas de entrada em seu firewall.
9 MIN DE LEITURA
Viagens
Aloje os seus itinerários de viagem com TREK e Docker
Aprenda a implantar o TREK usando Docker, a protegê-lo com Cloudflare R2 e Caddy, e a usar agentes de IA via MCP para planejar todas as viagens sem esforço.
25 MIN DE LEITURA