🚀 Primeros Pasos

TeleChars AI te permite crear personajes con IA que chatean en Telegram sin programación.

1

Crear cuenta

Regístrate con email y contraseña

2

Entrar al Dashboard

Verás telechatbots públicos de otros usuarios

3

Comenzar

Haz clic en "Crear telecharbot" en el menú

🤖 Crear tu Telecharbot

Proceso simple en 7 pasos:

1

Nombre

Nombre público y username único

2

Imagen

Opcionalmente sube fotos de perfil y banner (<4MB)

3

Personalidad

Describe cómo es (máximo 5000 caracteres)

4

Descripción

Descripción pública opcional (1000 caracteres) - Se generará automáticamente con IA en edición al dejarla vacía.

5

Instrucciones del sistema

Instrucciones opcionales para generar la respuesta (2000 caracteres)

6

Ejemplos de conversación

Ejemplos de conversación opcionales para guiar al telecharbot (2000 caracteres)

7

Mensajes de voz

Puedes configurar el TTS opcional para que el telecharbot responda con voz audible (solo con tu propia API Key y si el mensaje tiene 4096 caracteres o menos)

Ejemplo:

Nombre: Luna, la Bibliotecaria Username: luna-bibliotecaria Personalidad: Eres una bibliotecaria virtual amable. Te encantan los libros 📚 Instrucciones: Responde con oraciones cortas.

Ejemplos de conversación:

{user}: Hola {ai}: ¡Hola! ¿Quieres que te recomiende algún libro? 😊

⚠️ El username debe ser único

Si ya existe, añade números.

🎭 Personalidad

La personalidad define cómo habla y actúa tu Telecharbot.

1

Rol/Profesión

¿Qué es? (asistente, amigo, experto)

2

Carácter

Amable, gracioso, serio, curioso.

3

Estilo

Formal, casual, técnico.

4

Intereses

Temas que domina.

5

Límites

Qué NO sabe hacer.

Ejemplo detallado:

Eres Alex, desarrollador de videojuegos con 10 años de experiencia. Eres paciente y te gusta enseñar. Tienes humor geek y haces referencias a juegos. No das consejos financieros o legales.

🧠 Memoria

Dos tipos de memoria:

📝 Memoria Corto Plazo (STM)

  • Qué es: Recuerda la conversación actual
  • Mensajes: 10-100 (recomendado: 50)

💾 Memoria Largo Plazo (LTM)

  • Qué es: Guarda info importante entre chats
  • Tiempo: 1min-24h (recomendado: 40min)
  • Máximo: 1-20 memorias (recomendado: 5)
⚡ Configuración inicial:
• STM: Activado, 50 mensajes
• LTM: Activado, 40min, 5 memorias

📚 Enseñar Conocimientos

Enseña información específica a tu Telecharbot ordenándolas por secciones que solo tú verás.

1

Crear sección

Ej: "Mi Historia", "Datos Técnicos".

2

Añadir contenido

Máximo 8000 caracteres por conocimiento.

3

Configurar relevancia

0.1-1.0 (qué tan similar debe ser la pregunta).

Ejemplo de entrenamiento:

Usuario

¿Qué puedes hacer?

Telecharbot

¡Puedo ayudarte a crear telecharbots! ¿Te interesa algo en particular? 😊

🔗 Conectar a Telegram

Conecta tu Telecharbot a Telegram en minutos:

1

Abrir @BotFather

Busca @BotFather en Telegram.

2

Crear bot

Envía /newbot y sigue las instrucciones.

3

Copiar Token

Copia el token que te dé BotFather.

4

Pegar en TeleChars AI

En la pestaña "Integraciones" de tu Telecharbot.

5

¡Listo!

Busca a tu bot: @[username_de_tu_bot]

💬 Chat Web

También puedes chatear con tu telecharbot directamente desde la web, sin necesidad de Telegram. Entra en "Ver detalles" de tu telecharbot en TeleChars AI y encontrarás un chat integrado.

🤖 Comandos de BotFather:

/newbot - Crear bot/token - Ver token
/setcommands - Configurar comandos (TeleChars AI lo hace por ti)

⚠️ Problemas comunes:

• Token incorrecto → Verifica que está completo
• Telecharbot no responde → Espera 1-2 minutos y vuelve a intentar
• Comandos no aparecen → Haz clic en "Actualizar Comandos"

Comandos automáticos:

  • /activate - Activar telecharbot en un chat
  • /deactivate - Desactivar telecharbot
  • /start - Mensaje de bienvenida
  • /wack - Borrar memoria corto plazo en un chat
  • /reset - Reiniciar memoria largo plazo en un chat
  • /sleep - Guardar memoria largo plazo en un chat

⚙️ Configuración

Opciones avanzadas:

🧠 Motor de IA

  • Mistral Small 3.2 24B: Gratuito, recomendado para personajes coherentes y sin muchas restricciones
  • Claude 4.6 Sonnet: Requiere API Key propia
  • MiniMax M3: Requiere neuronas (3750 tokens/neurona input, 510 tokens/neurona output). Ideal para respuestas inteligentes.
  • DeepSeek V4 Pro: Requiere neuronas. Amigable y creativo.
  • Otros motores y proveedores: Se añadirán a petición de los usuarios.

🌡️ Parámetros Técnicos

ParámetroRangoRecomendado
Temperatura0.0-1.50.75
Top P0.1-1.01.0

💰 Sistema de Créditos (Neuronas)

Modelos avanzados como Qwen3.7-Plus o DeepSeek V4 Pro consumirán tus neuronas. Cada usuario gratuito recibe 50 neuronas cada 24 horas (no acumulables). El consumo se calcula por tokens: por ejemplo, MiniMax M3 cuesta 3750 tokens por neurona en input y 510 tokens por neurona en output. Solo se descuentan neuronas cuando alcanzas o superas ese umbral (ej: 3749 tokens input no cuestan nada). Los modelos de respaldo grandes no funcionan con neuronas - necesitas tu propia API Key para usarlos.

📊 Tokens (con API propia)

Cada mensaje usa ~160 tokens base, sin contar:

  • Historial de conversación
  • Personalidad completa
  • Conocimientos recuperados
  • Memorias LTM
  • Información del chat

Para respuestas creativas:

• Temperatura: 0.8-1.2

Para respuestas precisas:

• Temperatura: 0.3-0.5
🔧 API Key propia: Si añades tu API Key, tendrás más motores IA. El consumo de tokens incluye los ~160 base + todo lo adicional.

💻 BlitzScript

Crea comandos personalizados con código simple.

⚠️ Importante: El código se ejecuta en el servidor con un máximo de ejecución de 125 segundos

📝 Funciones Esenciales

BlitzScript
# Enviar mensaje al usuario SendMessage("¡Hola!")
BlitzScript
# Detectar comando If IsCommand("/start") Then SendMessage("¡Bienvenido!") Stop # Detiene el script EndIf

Stop es CRUCIAL después de SendMessage() para evitar respuestas duplicadas

BlitzScript
# Detectar comando y eliminar del mensaje If IsCommand("/buscar", True) Then Rem El usuario escribió "/buscar gatitos" (o "/buscar@tu_telecharbot gatitos" en grupos) El telecharbot ve solo "gatitos" NO uses Stop aquí, ya que haría que el telecharbot no envíe ningún mensaje EndRem EndIf
BlitzScript
# Contexto temporal (solo este mensaje) SetLLMContext("Responde como experto en cocina")
BlitzScript
# Instrucciones al LLM (solo con API Key propia) SetLLMInstructions("Traduce todo lo que {user} te dice al inglés") # ⚠️ Consume tokens de TU cuenta
BlitzScript
# Guardar datos SaveSettings("puntos", "100") puntos = LoadSettings("puntos") SaveSettings("puntos") # Datos vacíos para eliminarlos
BlitzScript
# Obtener IDs userId = GetUserID() chatId = GetChatID()
BlitzScript
# Crear un botón para teclados CreateButton("texto", "callback_data")
BlitzScript
# Crear una opción para teclados CreateOption("texto")
BlitzScript
# Limitar un teclado a un uso único OneTimeKeyboard(keyboard)
BlitzScript
# Crear un teclado con botones # Para una fila: pasar los botones como argumentos keyboard = CreateKeyboard(boton1, boton2, …) # Para transformarlo en teclado de uso único (opcional) keyboard = OneTimeKeyboard(keyboard) # Para múltiples filas: pasar arrays de botones fila1 = CreateKeyboard(boton1, boton2) fila2 = CreateKeyboard(boton3, boton4) keyboard = CreateKeyboard(fila1, fila2)
BlitzScript
# Crear un teclado con opciones para el usuario # Para una fila: pasar las opciones como argumentos keyboard = CreateOptions(opcion1, opcion2, …) # Para múltiples filas: pasar arrays de opciones fila1 = CreateOptions(opcion1, opcion2) fila2 = CreateOptions(opcion3, opcion4) keyboard = CreateOptions(fila1, fila2) # Para eliminar el teclado: pasar la siguiente función como parámetro de teclado en SendMessage: keyboard = RemoveKeyboard()
BlitzScript
# Copiar mensajes de supergrupos CopyMessage(id_numerico_del_mensaje_a_copiar, "id_del_chat_del_mensaje_a_copiar")

🚀 Ejemplos Prácticos

BlitzScript
# Ejemplo 1: Traductor If IsCommand("/traducir", True) Then SetLLMContext("Traduce al inglés") EndIf
BlitzScript
# Ejemplo 2: Modos de respuesta If IsCommand("/modo_serio") Then SendMessage("Modo serio activado.") SetLLMContext("Responde de forma seria y profesional.") EndIf If IsCommand("/modo_divertido") Then SendMessage("¡Modo divertido! 🎉") SetLLMContext("Responde de forma alegre con emojis.") SaveSettings("fun_" & GetChatID(), True) EndIf
BlitzScript
# Ejemplo 3: Sistema de puntos If IsCommand("/puntos") Then puntos = LoadSettings("puntos_" & GetUserID()) If puntos = "" Then puntos = 0 SendMessage("Tienes " & puntos & " puntos") Stop EndIf If IsCommand("/añadirpunto") Then clave = "puntos_" & GetUserID() puntos = LoadSettings(clave) If puntos = "" Then puntos = 0 puntos = puntos + 1 SaveSettings(clave, puntos) SendMessage("¡+1 punto! Total: " & puntos) Stop EndIf
BlitzScript
# Ejemplo 4: Encuesta con botones (método clásico con JSON) If IsCommand("/encuesta") Then keyboard = "[{~qtext~q:~q😊 Sí~q,~qcallback_data~q:~qsi~q},{~qtext~q:~q😐 No~q,~qcallback_data~q:~qno~q}]" SendMessage("¿Te gusta TeleChars AI?", 0, keyboard) Stop EndIf # Manejar botón pulsado callbackData = GetCallbackText() If callbackData <> "" Then If callbackData = "si" Then SendMessage("¡Gracias! 😊") Else SendMessage("¿Cómo podemos mejorar?") EndIf Stop EndIf

En strings, los ~q son una forma rápida de poner comillas dobles, al igual que los ~n son saltos de línea, y los ~t son tabulaciones.

BlitzScript
# Ejemplo 5: Encuesta con botones (nuevo método con CreateButton y CreateKeyboard) If IsCommand("/encuesta") Then boton1 = CreateButton("😊 Sí", "si") boton2 = CreateButton("😐 No", "no") keyboard = CreateKeyboard(boton1, boton2) # Una fila con dos botones SendMessage("¿Te gusta TeleChars AI?", 0, keyboard) Stop EndIf # Manejar botón pulsado (igual que antes) callbackData = GetCallbackText() If callbackData <> "" Then If callbackData = "si" Then SendMessage("¡Gracias! 😊") Else SendMessage("¿Cómo podemos mejorar?") EndIf Stop EndIf

Este ejemplo simplifica la creación de teclados sin necesidad de escribir JSON manualmente.

BlitzScript
# Ejemplo 6: Teclado con múltiples filas If IsCommand("/menu") Then fila1 = CreateKeyboard(CreateButton("Opción 1", "opt1"), CreateButton("Opción 2", "opt2")) fila2 = CreateKeyboard(CreateButton("Opción 3", "opt3"), CreateButton("Opción 4", "opt4")) keyboard = CreateKeyboard(fila1, fila2) # Combina las filas SendMessage("Selecciona una opción:", 0, keyboard) Stop EndIf # Manejar botones… callbackData = GetCallbackText() If callbackData <> "" Then SendMessage("Elegiste: " & callbackData) Stop EndIf

Para crear múltiples filas, primero crea cada fila con CreateKeyboard y luego pásalas a otro CreateKeyboard

BlitzScript
# Ejemplo 7: Teclado de opciones para el usuario If IsCommand("/opciones") Then fila1 = CreateOptions(CreateOption("Opción 1"), CreateOption("Opción 2")) fila2 = CreateOptions(CreateOption("Opción 3"), CreateOption("Opción 4")) keyboard = CreateOptions(fila1, fila2) # Combina las filas SendMessage("Selecciona una opción", 0, keyboard) Stop EndIf # Manejar opciones: primero obtenemos el texto del mensaje del usuario userText = GetValue("user_text") Rem Ahora buscamos al inicio del texto el fragmento "Opción ", para asegurar que sea una opción de las que definimos (El espacio al final es para asegurar de que venga algo después de "Opción") EndRem If Instr(userText, "Opción ") = 1 Then # Usamos el mismo parámetro del teclado para eliminarlo con RemoveKeyboard() SendMessage("Elegiste: " & userText, 0, RemoveKeyboard()) Stop EndIf
BlitzScript
# Ejemplo 8: Copia de mensajes If IsCommand("/sticker") Then # Para mensajes de enlaces como https://t.me/c/1234567890/123 CopyMessage(123, 1234567890) Stop ElseIf IsCommand("/sticker2") Then # Para mensajes de enlaces como https://t.me/c/AbCdEFgh/123 CopyMessage(123, "@AbCdEFgh") Stop EndIf
🚫 Error común: Olvidar Stop después de SendMessage() genera respuestas duplicadas.
💡 Ideas de comandos:
  • /traducir [texto]
  • /modo_serio
  • /modo_divertido
  • /puntos
  • /encuesta
  • /quiz
  • /recordar [texto]

❓ Preguntas Frecuentes

¿Necesito saber programación?

¡No! Todo se configura desde la interfaz visual. BlitzScript es opcional.

¿Es gratis?

Sí. Puedes usar motores como GPT 5 Nano, DeepSeek V4 Flash, o Mistral Small 3.2 24B sin costo. Motores más potentes requieren tu propia API Key (algunos funcionan con neuronas también)

¿Puedo tener varios telecharbots?

¡Sí! Tantos como quieras, cada uno con su personalidad. Pero ten en cuenta el límite de bots de tu cuenta de Telegram. Para usuarios gratuitos, el límite es de 20 bots en total. Puedes eliminarlos para crear más.

¿Mis chats son privados?

Sí, cada telecharbot tiene conversaciones separadas y privadas.

¿Cómo actualizo comandos en Telegram?

En la sección "Integraciones" de tu telecharbot, haz clic en "Actualizar Comandos en Telegram".

¿Qué hace Stop?

Detiene completamente el script. Úsalo después de SendMessage() para evitar respuestas duplicadas.

¿SetLLMInstructions requiere API Key?

Sí, y consume tokens de TU cuenta. No funciona con la API gratuita.

¿Cómo guardo/cargo datos entre chats?

Usa SaveSettings("nombre", valor) para guardar y LoadSettings("nombre") para cargar.

¿Un telecharbot no responde en Telegram?

1. Verifica el token
2. Espera 1-2 minutos
3. Revisa que el telecharbot esté activado con /activate
4. Si no responde en MD, prueba eliminar el token en TeleChars AI → guardar → volver a poner el token.
5. Si sigue sin funcionar, revoca el token del bot en Telegram con @BotFather.

¿Puedo importar/exportar las configuraciones de mis telecharbots?

Sí, desde la sección "General".

¿Mi telecharbot puede usar herramientas externas?

Sí, aunque solo las añadidas por Marcos F R Games. Puedes pedirle que añada más tools - los añadirá siempre que pueda mantenerlos. Para que tu telecharbot pueda usar los tools, debes insertar tu propia API Key en su sección "Integraciones".

¿Mi telecharbot puede enviar stickers?

Sí, mediante la copia de mensajes. Para esto, debes hacer que tu telecharbot diga algo como<m:(id o @nombre del grupo):(id del mensaje)>Para hallar el sticker:

1. Envía un sticker a un grupo en el que esté tu telecharbot en Telegram.
2. Copia el enlace del mensaje. Telegram devolverá algo comohttps://t.me/c/1234567890/123
3. Convierte https://t.me/c/1234567890/123en<m:1234567890:123>4. Haz que tu telecharbot diga <m:1234567890:123>