Guía12 min

Cómo crear un bot de Telegram con IA paso a paso (2026)

Resumen

Crear un bot de Telegram con IA toma una tarde: BotFather te da el token, tú decides entre long polling y webhook, conectas un LLM con tools y controlas memoria por chat_id. Esta guía cubre el flujo completo con código real en TypeScript, límites de la Bot API (4096 caracteres, rate limits), costos y un checklist de producción.

TelegramOpenAI
Un teléfono con una conversación de Telegram conectada a un flujo de herramientas de un agente de IA

Qué resuelve

Esta pieza se queda en la decisión práctica: qué instalar, qué riesgo agrega y cómo aplicarlo sin romper operación.

Un bot de Telegram es la forma más rápida de poner un agente de IA en manos de usuarios reales en Latinoamérica: no necesitas app, ni aprobación de tienda, ni número empresarial verificado como en WhatsApp. En una tarde pasas de cero a un bot que conversa, usa herramientas y recuerda contexto por chat. Esta guía cubre el camino completo: BotFather, long polling vs webhook, el LLM con tools, memoria por chat_id, límites reales de la Bot API y el checklist antes de abrirlo a usuarios.

Si lo que necesitas es un mismo agente en varios canales (Telegram + WhatsApp + Slack), la arquitectura correcta es otra: empieza por cómo deployar un agente multicanal. Aquí el foco es un solo canal, hecho bien.

Paso 1: BotFather y el token (10 minutos)

Telegram crea bots hablando con un bot. Abre @BotFather en Telegram y sigue este flujo:

  1. Envía /newbot y responde el nombre visible (puede tener espacios: "Asistente de Ventas").
  2. Elige el username — debe terminar en bot y ser único (ej. asistente_ventas_gt_bot).
  3. BotFather responde con el token: una cadena tipo 123456789:AAE... que es la credencial completa de tu bot. Guárdala como secreto de entorno (TELEGRAM_BOT_TOKEN); cualquiera con ese token controla el bot.
  4. Opcional pero recomendable: /setdescription (lo que ve el usuario antes de iniciar), /setabouttext (el bio del perfil) y /setcommands para registrar comandos como /start y /ayuda en el menú.

Si el token se filtra, /revoke en BotFather genera uno nuevo al instante. Sin historial complicado ni tickets de soporte: esa es una de las ventajas operativas de Telegram sobre otros canales.

Paso 2: long polling vs webhook

Tu código necesita recibir los mensajes. Hay dos mecanismos y la decisión se toma una vez:

CriterioLong polling (getUpdates)Webhook (setWebhook)
InfraestructuraNinguna: tu proceso pide novedadesNecesitas URL pública HTTPS
Dónde corre bienLaptop, VPS, Raspberry Pi, Docker simpleVercel, Cloudflare Workers, Railway
LatenciaLigera espera entre pollsInmediata
EscalamientoUn solo proceso activo por tokenEscala horizontal sin estado
Costo típicoVPS de $5/mes o tu máquinaFree tier de serverless suele bastar
Riesgo típicoProceso muerto = bot mudoCertificado/URL mal configurado

Regla práctica: prototipa con long polling, producción con webhook. Si ya vives en serverless, webhook desde el día uno. Los detalles de ambos métodos están en la referencia oficial de la Bot API.

Paso 3: el esqueleto con el LLM

Con grammY (el framework más mantenido para TypeScript) el bot mínimo son 20 líneas. La pieza importante no es recibir el mensaje — es qué pasa entre el mensaje y la respuesta:

import { Bot } from "grammy";

const bot = new Bot(process.env.TELEGRAM_BOT_TOKEN!);

bot.on("message:text", async (ctx) => {
  await ctx.replyWithChatAction("typing"); // señal de vida inmediata

  const respuesta = await agente.responder({
    chatId: String(ctx.chat.id),        // memoria por conversación
    mensaje: ctx.message.text,          // texto del usuario
    tools: [buscarProducto, crearPedido] // tus herramientas
  });

  // Telegram corta en 4096 caracteres: divide antes de enviar
  for (const parte de dividir(respuesta, 4096)) {
    await ctx.reply(parte);
  }
});

bot.start(); // long polling

Tres decisiones ya tomadas en ese esqueleto: replyWithChatAction inmediato (el LLM tarda segundos; sin "escribiendo…" el usuario reenvía el mensaje y duplicas costo), memoria indexada por chat_id (cada chat es una conversación independiente) y división del texto antes de enviar (la API rechaza mensajes de más de 4096 caracteres).

Flujo de un mensaje de Telegram pasando por el agente, sus herramientas y la respuesta dividida en bloques

Paso 4: memoria y tools sin pasarte

La tentación es guardar todo el historial del chat y mandarlo entero al modelo en cada turno. Funciona la primera semana; después el costo y la latencia crecen con cada usuario. El patrón que aguanta:

  • Ventana reciente: últimos 10-20 mensajes tal cual.
  • Resumen rodante: cuando la ventana se llena, resume lo viejo en 3-5 líneas y descártalo.
  • Hechos durables aparte: nombre, pedido activo, preferencias — en una tabla por chat_id, no en el prompt.

Para las tools, empieza con dos o tres bien definidas (schemas estrictos, descripciones en el idioma del usuario) en vez de diez ambiguas. La precisión del tool calling depende tanto del schema como del modelo —la guía de mejores modelos para tool calling tiene los datos del BFCL para elegir—. Si tu bot solo responde preguntas con información del negocio, quizá no necesitas tools sino RAG bien recortado.

Límites de la Bot API que sí te van a tocar

  • 4096 caracteres por mensaje: divide la salida del LLM o edita el primer mensaje con editMessageText para respuestas largas.
  • Rate limits: del orden de 30 mensajes por segundo globales y 1 por segundo por chat. En broadcast a muchos usuarios, encola; si no, Telegram responde 429 con retry_after y tu bot debe respetarlo.
  • Sin garantía de orden estricto bajo ráfagas: si el usuario manda tres mensajes seguidos, procesa en orden por chat_id con una cola simple.
  • Los bots no ven mensajes de otros bots y en grupos solo ven comandos y menciones salvo que desactives el modo privacidad con BotFather (/setprivacy).

Costos: la cuenta real

Telegram no cobra por la Bot API. El costo es 100% el LLM más el hosting. Con un modelo de gama media y conversaciones de ~10 turnos con ventana recortada, un chat típico cuesta centavos de dólar; el riesgo no es el precio por mensaje sino el usuario que deja el bot en loop o le pega un documento enorme. Pon dos topes desde el día uno: máximo de turnos por minuto por chat_id y máximo de tokens de entrada por mensaje. Ambos son cinco líneas y evitan el 95% de las sorpresas de factura.

Checklist de producción

Checklist de producción para un bot de Telegram con IA: token seguro, memoria acotada, rate limits y comandos registrados

  1. Token en variable de entorno, nunca en el repo; /revoke si se filtró.
  2. /setcommands registrado con /start y /ayuda — el menú es tu onboarding.
  3. replyWithChatAction antes de llamar al LLM.
  4. División de mensajes a 4096 caracteres probada con una respuesta larga real.
  5. Memoria con ventana + resumen; nada de historial infinito.
  6. Manejo de 429 con retry_after y cola por chat_id.
  7. Topes de turnos/minuto y tokens/mensaje por usuario.
  8. Logs por chat_id (sin contenido sensible) para depurar conversaciones raras.
  9. Webhook con secreto de validación (secret_token en setWebhook) si estás en serverless.
  10. Un /start que explica en dos líneas qué hace el bot y qué no.

Preguntas frecuentes

¿Necesito un servidor para un bot de Telegram? No para empezar: long polling corre en tu laptop o una Raspberry Pi. Para producción, un webhook en serverless (Vercel, Cloudflare Workers) es gratis a bajo volumen y no requiere mantener un proceso vivo.

¿Puedo usar mi número de WhatsApp Business en vez? Son mundos distintos: Telegram da la API gratis y sin verificación empresarial; WhatsApp exige Meta Business, plantillas aprobadas y cobra por conversación. Para validar una idea, Telegram primero; para ventas formales en LATAM, probablemente termines en ambos —la guía multicanal cubre esa transición—.

¿Cómo agrego comandos con botones? Con inline keyboards (InlineKeyboard en grammY). Los botones reducen errores de tipeo y guían al usuario mejor que un menú de texto; regístralos como respuestas a comandos, no como sustituto del texto libre.

¿El bot puede responder con voz o imágenes? Sí: la Bot API soporta sendVoice, sendPhoto y archivos. Genera el asset en tu backend y súbelo; el límite práctico es 50 MB por archivo en bots estándar.

El siguiente paso

Si quieres el camino guiado completo —instalación, configuración y tu primer agente funcionando en Telegram y WhatsApp— el curso gratuito de instalación de agentes lo recorre lección por lección. Y cuando tu bot crezca, la guía de arquitectura de un agente en producción te muestra qué agregar antes de los primeros mil usuarios. Más piezas de construcción en el hub de guías de construcción.