Skip to content

Visao geral multicanal

O Triggerfish se conecta as suas plataformas de mensagens existentes. Voce fala com seu agente onde ja se comunica -- terminal, Telegram, Slack, Discord, WhatsApp, um widget web ou e-mail. Cada canal tem seu proprio nivel de classificacao, verificacoes de identidade do proprietario e aplicacao de politicas.

Como os canais funcionam

Cada adaptador de canal implementa a mesma interface: connect, disconnect, send, onMessage e status. O roteador de canais fica acima de todos os adaptadores e gerencia o despacho de mensagens, as verificacoes de classificacao e a logica de retentativas.

Roteador de canais: todos os adaptadores de canal fluem por um portao de classificacao central ate o Gateway Server

Quando uma mensagem chega em qualquer canal, o roteador:

  1. Identifica o remetente (proprietario ou externo) usando verificacoes de identidade no nivel do codigo -- nao interpretacao do LLM
  2. Marca a mensagem com o nivel de classificacao do canal
  3. A encaminha ao motor de politicas para aplicacao
  4. Roteia a resposta do agente de volta pelo mesmo canal

Classificacao de canais

Cada canal tem um nivel de classificacao padrao que determina quais dados podem fluir por ele. O motor de politicas aplica a regra de no write-down: dados em um determinado nivel de classificacao nunca podem fluir para um canal com classificacao inferior.

CanalClassificacao padraoDeteccao de proprietario
CLIINTERNALSempre proprietario (usuario do terminal)
TelegramINTERNALCorrespondencia de ID de usuario do Telegram
SignalPUBLICNunca proprietario (o adaptador E seu celular)
SlackPUBLICID de usuario do Slack via OAuth
DiscordPUBLICCorrespondencia de ID de usuario do Discord
WhatsAppPUBLICCorrespondencia de numero de telefone
WebChatPUBLICNunca proprietario (visitantes)
E-mailCONFIDENTIALCorrespondencia de endereco de e-mail

Totalmente configuravel Todas as classificacoes sao configuraveis no seu

triggerfish.yaml. Voce pode definir qualquer canal em qualquer nivel de classificacao com base nos seus requisitos de seguranca.

yaml
channels:
  telegram:
    classification: CONFIDENTIAL
  slack:
    classification: INTERNAL

Classificacao efetiva

A classificacao efetiva de qualquer mensagem e o minimo entre a classificacao do canal e a classificacao do destinatario:

Nivel do canalNivel do destinatarioNivel efetivo
INTERNALINTERNALINTERNAL
INTERNALEXTERNALPUBLIC
CONFIDENTIALINTERNALINTERNAL
CONFIDENTIALEXTERNALPUBLIC

Isso significa que mesmo se um canal for classificado como CONFIDENTIAL, mensagens para destinatarios externos nesse canal sao tratadas como PUBLIC.

Estados dos canais

Os canais passam por estados definidos:

  • UNTRUSTED -- Canais novos ou desconhecidos comecam aqui. Nenhum dado flui de entrada ou saida. O canal fica completamente isolado ate voce classifica-lo.
  • CLASSIFIED -- O canal tem um nivel de classificacao atribuido e esta ativo. As mensagens fluem de acordo com as regras de politica.
  • BLOCKED -- O canal foi desabilitado explicitamente. Nenhuma mensagem e processada.

Canais UNTRUSTED Um canal UNTRUSTED nao pode receber nenhum dado

do agente e nao pode enviar dados ao contexto do agente. Este e um limite de seguranca rigido, nao uma sugestao. :::

Roteador de canais

O roteador de canais gerencia todos os adaptadores registrados e fornece:

  • Registro de adaptadores -- Registrar e desregistrar adaptadores de canal por ID de canal
  • Despacho de mensagens -- Rotear mensagens de saida para o adaptador correto
  • Retentativa com backoff exponencial -- Envios falhos sao retentados ate 3 vezes com atrasos crescentes (1s, 2s, 4s)
  • Operacoes em lote -- connectAll() e disconnectAll() para gerenciamento do ciclo de vida
yaml
# O comportamento de retentativa do roteador e configuravel
router:
  maxRetries: 3
  baseDelay: 1000 # milissegundos

Ripple: indicadores de digitacao e presenca

O Triggerfish retransmite indicadores de digitacao e estado de presenca entre canais que os suportam. Isso se chama Ripple.

CanalIndicadores de digitacaoConfirmacoes de leitura
TelegramEnvio e recepcaoSim
SignalEnvio e recepcao--
SlackApenas envio--
DiscordApenas envio--
WhatsAppEnvio e recepcaoSim
WebChatEnvio e recepcaoSim

Estados de presenca do agente: idle, online, away, busy, processing, speaking, error.

Divisao de mensagens

As plataformas tem limites de tamanho de mensagem. O Triggerfish divide automaticamente respostas longas para caber nas restricoes de cada plataforma, separando por quebras de linha ou espacos para facilitar a leitura:

CanalTamanho maximo de mensagem
Telegram4.096 caracteres
Signal4.000 caracteres
Discord2.000 caracteres
Slack40.000 caracteres
WhatsApp4.096 caracteres
WebChatIlimitado

Proximos passos

Configure os canais que voce usa:

  • CLI -- Sempre disponivel, nenhuma configuracao necessaria
  • Telegram -- Crie um bot com o @BotFather
  • Signal -- Vincule pelo daemon signal-cli
  • Slack -- Crie um app do Slack com Socket Mode
  • Discord -- Crie um aplicativo de bot no Discord
  • WhatsApp -- Conecte via WhatsApp Business Cloud API
  • WebChat -- Incorpore um widget de chat no seu site
  • E-mail -- Conecte via IMAP e relay SMTP