Conectar Bot do Telegram
Este guia mostra como criar um bot no Telegram e conectá-lo ao GarraIA passo a passo.
Pré-requisitos
- GarraIA instalado e configurado (veja Início Rápido)
- Conta no Telegram
- Servidor GarraIA em execução (
garraia start)
Passo 1 — Criar o bot no Telegram
- Abra o Telegram e inicie uma conversa com @BotFather
- Envie o comando
/newbot - Escolha um nome de exibição para o bot (ex:
Meu Assistente IA) - Escolha um username terminado em
bot(ex:meu_assistente_ia_bot) - O BotFather retornará um token no formato:
1234567890:ABCdefGHIjklMNOpqrSTUvwxYZ
Guarde esse token — ele será necessário na configuração.
Passo 2 — Configurar o canal no GarraIA
Abra ~/.garraia/config.yml e adicione a seção channels:
channels:
telegram:
type: telegram
enabled: true
Segurança: NÃO coloque o token diretamente no
config.ymlem repositórios versionados. O token deve ser fornecido via variável de ambienteTELEGRAM_BOT_TOKEN.
Configurar o token via variável de ambiente (recomendado)
Linux / macOS:
export TELEGRAM_BOT_TOKEN="1234567890:ABCdefGHIjklMNOpqrSTUvwxYZ"
Para persistir, adicione ao ~/.bashrc, ~/.zshrc, ou use um arquivo .env no diretório de trabalho.
Windows (PowerShell):
[Environment]::SetEnvironmentVariable("TELEGRAM_BOT_TOKEN", "1234567890:ABCdefGHIjklMNOpqrSTUvwxYZ", "User")
Feche e reabra o terminal após definir a variável.
Alternativa: token no config.yml (uso local/dev)
Se preferir (apenas para uso local, nunca commite o token):
channels:
telegram:
type: telegram
enabled: true
bot_token: "1234567890:ABCdefGHIjklMNOpqrSTUvwxYZ"
Ordem de precedência do token
O runtime resolve o token nesta ordem:
- Cofre criptografado (
~/.garraia/credentials/vault.json, requerGARRAIA_VAULT_PASSPHRASE) bot_tokenno config.yml (camposettings)- Variável de ambiente
TELEGRAM_BOT_TOKEN
Passo 3 — Reiniciar o servidor
garraia restart
# ou, se estiver rodando em foreground:
# Ctrl+C para parar, depois:
garraia start
O GarraIA detecta a configuração do Telegram e inicia automaticamente o polling de mensagens:
[INFO] Canal Telegram inicializado: @meu_assistente_ia_bot
[INFO] Iniciando polling de mensagens...
Passo 4 — Testar o bot
- Abra o Telegram e inicie uma conversa com o seu bot pelo username
- Envie
/startou qualquer mensagem - Aguarde a resposta do GarraIA
Se o canal tiver allowlist configurada, o bot enviará um código de pareamento na primeira mensagem:
Para usar este bot, envie o código de pareamento exibido no terminal do GarraIA.
Verifique o terminal do GarraIA para obter o código de 6 dígitos e envie-o ao bot.
Configurações avançadas
Allowlist de usuários
Descubra seu ID numérico do Telegram via @userinfobot:
channels:
telegram:
type: telegram
enabled: true
bot_token: "SEU_TOKEN"
allowlist:
- 123456789
- 987654321
Streaming de respostas
O GarraIA envia respostas em tempo real via Telegram, usando MarkdownV2 para formatação. Não há configuração adicional necessária — o streaming está ativo por padrão.
Indicadores de digitação
O bot exibe o indicador "digitando..." enquanto o LLM processa a resposta. Esse comportamento é automático.
Verificação
Verifique se o canal está ativo:
curl http://127.0.0.1:3888/api/runtime/state | jq '.channels'
Saída esperada:
{
"channels": {
"telegram": {
"status": "connected",
"bot_username": "meu_assistente_ia_bot"
}
}
}
Resolução de problemas
O bot não responde:
- Verifique se o token está configurado:
echo $TELEGRAM_BOT_TOKEN(Linux/macOS) ou$env:TELEGRAM_BOT_TOKEN(PowerShell) - Confirme que o servidor está rodando:
curl http://127.0.0.1:3888/health - Verifique os logs em
~/.garraia/garraia.log - Verifique o status do canal:
garraia channel status telegram
Erro "Unauthorized" no log:
O token do bot está inválido ou foi revogado. Gere um novo token no BotFather com /revoketoken e atualize a variável de ambiente TELEGRAM_BOT_TOKEN.
Bot responde mas sem formatação:
O Telegram pode rejeitar MarkdownV2 com caracteres especiais. O GarraIA escapa os caracteres automaticamente; se houver problemas, relate como bug no GitHub Issues.