Skip to content

Emparelhamento de DM e Controle de Acesso: Proteja seu Assistente de IA ​

O Que Você Vai Aprender ​

Ao completar este tutorial, você será capaz de:

  • ✅ Entender o mecanismo padrão de proteção de emparelhamento de DM
  • ✅ Aprovar solicitações de emparelhamento de remetentes desconhecidos
  • ✅ Listar e gerenciar solicitações de emparelhamento pendentes
  • ✅ Configurar diferentes políticas de acesso de DM (pairing/allowlist/open)
  • ✅ Executar verificações doctor na configuração de segurança

Seu Problema Atual ​

Você pode ter configurado o WhatsApp ou Telegram e quer conversar com seu assistente de IA, mas encontrou os seguintes problemas:

  • "Por que o Clawdbot não responde a estranhos que me enviam mensagens?"
  • "Recebi um código de emparelhamento e não sei o que significa"
  • "Quero aprovar a solicitação de alguém, mas não sei qual comando usar"
  • "Como verificar quem está aguardando aprovação?"

A boa notícia é: o Clawdbot habilita proteção de emparelhamento de DM por padrão, isso garante que apenas remetentes que você autorizou possam conversar com seu assistente de IA.

Quando Usar Esta Abordagem ​

Quando você precisa:

  • 🛡 Proteger privacidade: Garantir que apenas pessoas confiáveis possam conversar com seu assistente de IA
  • ✅ Aprovar estranhos: Permitir que novos remetentes acessem seu assistente de IA
  • 🔒 Controle de acesso estrito: Limitar permissões de acesso para usuários específicos
  • 📋 Gerenciamento em lote: Visualizar e gerenciar todas as solicitações de emparelhamento pendentes

Ideia Central ​

O Que É Emparelhamento de DM? ​

O Clawdbot se conecta a plataformas de mensagens reais (WhatsApp, Telegram, Slack, etc.), e mensagens privadas (DM) nessas plataformas são consideradas entrada não confiável por padrão.

Para proteger seu assistente de IA, o Clawdbot fornece um mecanismo de emparelhamento:

Processo de Emparelhamento

  1. Um remetente desconhecido envia uma mensagem para você
  2. O Clawdbot detecta que o remetente não está autorizado
  3. O Clawdbot retorna um código de emparelhamento (8 caracteres)
  4. O remetente precisa fornecer o código de emparelhamento para você
  5. Você aprova o código via CLI
  6. O ID do remetente é adicionado à lista de permissão
  7. O remetente pode conversar normalmente com o assistente de IA

Política de DM Padrão ​

Todos os canais usam dmPolicy="pairing" por padrão, o que significa:

PolíticaComportamento
pairingRemetentes desconhecidos recebem código de emparelhamento, mensagens não são processadas (padrão)
allowlistApenas permite remetentes da lista allowFrom
openPermite todos os remetentes (requer configuração explícita "*")
disabledDesabilita completamente a funcionalidade DM

Lembrete de Segurança

O modo pairing padrão é a opção mais segura. A menos que você tenha necessidades especiais, não altere para o modo open.


🎒 Preparativos ​

Certifique-se de que você:

  • [x] Completou o tutorial Início Rápido
  • [x] Completou o tutorial Iniciando o Gateway
  • [x] Configurou pelo menos um canal de mensagens (WhatsApp, Telegram, Slack, etc.)
  • [x] O Gateway está em execução

Siga-me ​

Passo 1: Entender a Origem do Código de Emparelhamento ​

Quando um remetente desconhecido envia uma mensagem para seu Clawdbot, eles recebem uma resposta semelhante a esta:

Clawdbot: access not configured.

Telegram ID: 123456789

Pairing code: AB3D7X9K

Ask the bot owner to approve with:
clawdbot pairing approve telegram <code>

Características-chave do Código de Emparelhamento (fonte: src/pairing/pairing-store.ts):

  • 8 caracteres: Fácil de digitar e lembrar
  • Letras maiúsculas e números: Evita confusão
  • Exclui caracteres confusos: Não contém 0, O, 1, I
  • Validade de 1 hora: Expira automaticamente após esse tempo
  • Máximo de 3 solicitações pendentes: Limpa automaticamente a solicitação mais antiga quando excedido

Passo 2: Listar Solicitações de Emparelhamento Pendentes ​

Execute o seguinte comando no terminal:

bash
clawdbot pairing list telegram

Você deve ver:

Pairing requests (1)

┌──────────────────┬────────────────┬────────┬──────────────────────┐
│ Code            │ ID            │ Meta   │ Requested            │
├──────────────────┼────────────────┼────────┼──────────────────────┤
│ AB3D7X9K        │ 123456789      │        │ 2026-01-27T10:30:00Z │
└──────────────────┴────────────────┴────────┴──────────────────────┘

Se não houver solicitações pendentes, você verá:

No pending telegram pairing requests.

Canais Suportados

A funcionalidade de emparelhamento suporta os seguintes canais:

  • telegram
  • whatsapp
  • slack
  • discord
  • signal
  • imessage
  • msteams
  • googlechat
  • bluebubbles

Passo 3: Aprovar Solicitação de Emparelhamento ​

Use o código de emparelhamento fornecido pelo remetente para aprovar o acesso:

bash
clawdbot pairing approve telegram AB3D7X9K

Você deve ver:

✅ Approved telegram sender 123456789

Efeito após Aprovação

Após a aprovação, o ID do remetente (123456789) é adicionado automaticamente à lista de permissão desse canal, armazenado em: ~/.clawdbot/credentials/telegram-allowFrom.json

Passo 4: Notificar o Remetente (Opcional) ​

Se você quiser notificar automaticamente o remetente, use a flag --notify:

bash
clawdbot pairing approve telegram AB3D7X9K --notify

O remetente receberá a seguinte mensagem (fonte: src/channels/plugins/pairing-message.ts):

✅ Clawdbot access approved. Send a message to start chatting.

Nota: A flag --notify exige que o Clawdbot Gateway esteja em execução e que o canal esteja ativo.

Passo 5: Verificar que o Remetente Pode Conversar Normalmente ​

Peça ao remetente para enviar outra mensagem, o assistente de IA deve responder normalmente.


Ponto de Verificação ✅ ​

Complete as seguintes verificações para confirmar que a configuração está correta:

  • [ ] Executar clawdbot pairing list <channel> pode mostrar solicitações pendentes
  • [ ] Usar clawdbot pairing approve <channel> <code> pode aprovar com sucesso
  • [ ] O remetente aprovado pode conversar normalmente com o assistente de IA
  • [ ] O código de emparelhamento expira automaticamente após 1 hora (pode verificar enviando outra mensagem)

Armadilhas Comuns ​

Erro 1: Código de Emparelhamento Não Encontrado ​

Mensagem de erro:

No pending pairing request found for code: AB3D7X9K

Causas possíveis:

  • O código de emparelhamento expirou (mais de 1 hora)
  • O código de emparelhamento foi inserido incorretamente (verifique maiúsculas/minúsculas)
  • O remetente não enviou uma mensagem real (o código de emparelhamento só é gerado quando uma mensagem é recebida)

Solução:

  • Peça ao remetente para enviar outra mensagem para gerar um novo código de emparelhamento
  • Certifique-se de que o código de emparelhamento foi copiado corretamente (observe maiúsculas/minúsculas)

Erro 2: Canal Não Suporta Emparelhamento ​

Mensagem de erro:

Channel xxx does not support pairing

Causas possíveis:

  • Erro de ortografia do nome do canal
  • O canal não suporta funcionalidade de emparelhamento

Solução:

  • Execute clawdbot pairing list para ver a lista de canais suportados
  • Use o nome correto do canal

Erro 3: Falha na Notificação ​

Mensagem de erro:

Failed to notify requester: <error details>

Causas possíveis:

  • Gateway não está em execução
  • Conexão do canal foi perdida
  • Problema de rede

Solução:

  • Confirme que o Gateway está em execução
  • Verifique o status da conexão do canal: clawdbot channels status
  • Não use a flag --notify, notifique o remetente manualmente

Resumo ​

Este tutorial apresentou o mecanismo de proteção de emparelhamento de DM do Clawdbot:

  • Segurança padrão: Todos os canais usam o modo pairing por padrão, protegendo seu assistente de IA
  • Processo de emparelhamento: Remetentes desconhecidos recebem um código de emparelhamento de 8 caracteres, você precisa aprovar via CLI
  • Comandos de gerenciamento:
    • clawdbot pairing list <channel>: Listar solicitações pendentes
    • clawdbot pairing approve <channel> <code>: Aprovar emparelhamento
  • Local de armazenamento: A lista de permissão é armazenada em ~/.clawdbot/credentials/<channel>-allowFrom.json
  • Expiração automática: Solicitações de emparelhamento expiram automaticamente após 1 hora

Lembre-se: o mecanismo de emparelhamento é a base de segurança do Clawdbot, garantindo que apenas pessoas autorizadas por você possam conversar com o assistente de IA.


Próximo ​

Na próxima lição, aprenderemos Solução de Problemas: Resolvendo Problemas Comuns.

Você vai aprender:

  • Diagnóstico rápido e verificação de status do sistema
  • Resolver problemas de inicialização do Gateway, conexão de canais, erros de autenticação, etc.
  • Métodos de solução de problemas para falhas de chamadas de ferramentas e otimização de desempenho

Apêndice: Referência do Código-fonte ​

Clique para expandir e ver localizações do código-fonte

Última atualização: 2026-01-27

FuncionalidadeCaminho do ArquivoLinhas
Geração de código de emparelhamento (8 caracteres, exclui caracteres confusos)src/pairing/pairing-store.ts173-181
Armazenamento e TTL de solicitações de emparelhamento (1 hora)src/pairing/pairing-store.ts11-14
Comando de aprovação de emparelhamentosrc/cli/pairing-cli.ts107-143
Geração de mensagem de código de emparelhamentosrc/pairing/pairing-messages.ts4-20
Armazenamento da lista de permissãosrc/pairing/pairing-store.ts457-461
Lista de canais que suportam pairingsrc/channels/plugins/pairing.ts11-16
Política de DM padrão (pairing)src/config/zod-schema.providers-core.ts93

Constantes-chave:

  • PAIRING_CODE_LENGTH = 8: Comprimento do código de emparelhamento
  • PAIRING_CODE_ALPHABET = "ABCDEFGHJKLMNPQRSTUVWXYZ23456789": Conjunto de caracteres do código de emparelhamento (exclui 0O1I)
  • PAIRING_PENDING_TTL_MS = 60 * 60 * 1000: Validade da solicitação de emparelhamento (1 hora)
  • PAIRING_PENDING_MAX = 3: Número máximo de solicitações pendentes

Funções-chave:

  • approveChannelPairingCode(): Aprovar código de emparelhamento e adicionar à lista de permissão
  • listChannelPairingRequests(): Listar solicitações de emparelhamento pendentes
  • upsertChannelPairingRequest(): Criar ou atualizar solicitação de emparelhamento
  • addChannelAllowFromStoreEntry(): Adicionar remetente à lista de permissão