Mapa de la ruta
Contenido detallado
🤖 Jarvis
Tu asistente personal: un bot que habla contigo por Telegram, piensa con un modelo de lenguaje y ejecuta tareas, funcionando en tu propio VPS.
Un programa tuyo, que controlas con mensajes y está conectado a un modelo de IA. Entiende lo que pides en lenguaje natural y responde o ejecuta acciones en tu nombre.
Pasaste de «usar ChatGPT en el sitio» a «tener un asistente que es solo tuyo», que funciona donde quieras, con tus reglas, tus datos y tus herramientas conectadas.
Asistente = interfaz (donde conversas) + cerebro (el modelo) + manos (las tools). Personal significa que eres dueño del código y de dónde se ejecuta.
Las tres piezas que forman el asistente: el bot recibe el mensaje, el LLM decide qué hacer y las tools ejecutan acciones reales (buscar, guardar, enviar).
Entender el diseño antes de programar evita confusiones. Cada pieza tiene una función clara y vas armando una a la vez hasta que todo funcione.
El flujo siempre es el mismo: mensaje → bot → LLM → (quizás) tool → respuesta. El bot es la puerta de entrada; el LLM es el cerebro; las tools son las manos.
Telegram ofrece una API gratuita para crear bots. Hablas con BotFather, recibes un token y tu programa empieza a enviar y recibir mensajes.
Telegram es el canal más sencillo para conversar con tu asistente desde cualquier lugar, con el celular. Sin una app propia ni una interfaz que construir.
BotFather crea el bot y te da el token (trátalo como una contraseña). Tu código lee los mensajes (polling o webhook) y responde mediante la API. El token nunca va a Git.
Conectar el mensaje del usuario a la API de un modelo (Claude o GPT) y devolver la respuesta. Aquí es donde el bot deja de repetir scripts y empieza a "pensar".
Es el salto de calidad: el asistente entiende pedidos vagos, mantiene el contexto y responde de forma útil, en vez de solo reaccionar a comandos fijos.
Envías un system prompt (la personalidad) + el mensaje del usuario a la API y recibes el texto. La clave de la API va en una variable de entorno, nunca en el código.
Funciones que el asistente puede activar: comandos directos (como /clima) y tools que el propio modelo decide llamar (buscar en la web, hacer un cálculo, guardar una nota).
Sin tools, el asistente solo conversa. Con ellas, hace cosas en el mundo real. Eso es lo que separa un chatbot de un asistente de verdad.
Comando = atajo explícito que escribes; tool = función que el modelo llama por su cuenta cuando la necesita. Cada tool tiene un nombre, una descripción y parámetros bien definidos.
Subir el asistente a tu servidor (la VPS de la Trilha 3) y dejarlo siempre en ejecución, en vez de que solo funcione mientras tu computadora está encendida.
Un asistente solo es útil si está siempre disponible. En el VPS responde de madrugada, cuando estás de viaje, sin depender de tu máquina.
Reutiliza todo lo aprendido en el curso: Docker (Ruta 4) para empaquetar, systemd para mantenerlo activo y variables de entorno para los secretos. El asistente se convierte en un servicio que se reinicia solo.
🧠 Intelecto
IA que actúa sola: el salto del asistente que responde al agente que decide, programa, recuerda y ejecuta tareas sin que tú se lo pidas.
La diferencia entre un asistente, que solo actúa cuando le envías un mensaje, y un agente, que tiene objetivos, actúa por su cuenta y da varios pasos hasta completar la tarea.
Es el futuro del uso de la IA: ya no "pregunta y respuesta", sino "delega una tarea y se resuelve". Entender este cambio cambia lo que construyes.
Agente = objetivo + ciclo (pensar → actuar → observar → repetir) + autonomía. Puede iniciar acciones sin una solicitud humana directa en ese momento.
Hacer que el agente se ejecute en horarios definidos: un resumen del día a las 8h, revisar correos cada hora, recordatorios a la hora indicada, todo sin que tengas que activarlo.
Es lo que hace que el agente sea proactivo. En vez de esperar a que preguntes, aparece con lo que importa en el momento oportuno, como lo haría un asistente humano.
Reutiliza el cron y el temporizador de systemd de la Ruta 4. El agente "despierta" a la hora indicada, ejecuta su rutina y vuelve a dormir. Cada tarea programada es una rutina pequeña.
Darle al agente una memoria que perdure después de que termine la conversación: guarda hechos, preferencias e historial en una base de datos y los recupera cuando los necesita.
Sin memoria, el agente lo olvida todo con cada mensaje. Con ella, te conoce: sabe cuáles son tus proyectos, tus contactos y qué quedó pendiente ayer.
Usa Supabase (Trilha 2) para guardar la memoria. Antes de responder, el agente busca el contexto relevante; después, guarda lo que aprendió.
Conectar el agente a servicios reales mediante API: leer y enviar correos, crear eventos en el calendario, consultar tareas. Cada integración se convierte en una nueva tool.
Es lo que saca al agente de la cajita del chat y lo incorpora a tu vida real. Cuantos más servicios alcanza, más cosas puede resolver por ti.
Todo pasa por las API (Ruta 2) y los tokens (Ruta 3). Empieza con una integración sencilla (enviar un correo) y ve sumando. Cada token se guarda con cuidado.
Registrar cada acción del agente en logs y comprobar si está funcionando correctamente: qué decidió, qué tools llamó, dónde ocurrió un error y cuánto gastó en API.
Un agente autónomo actúa sin que lo veas. Sin registros, no sabes si acertó, se trabó o hizo algo mal. Los registros son tus ojos cuando no estás mirando.
Mira los logs con journalctl (systemd, Trilha 4). Registra cada decisión y cada llamada a tool. Configura una alerta para errores y gastos elevados.
Tratar al agente como un proyecto vivo: observas cómo se comporta, agregas tools, ajustas el prompt y corriges fallas, en un ciclo que nunca termina.
Un buen agente no nace listo: madura con el uso. Cada error se convierte en una mejora y, con el tiempo, se vuelve cada vez más útil y confiable.
Usa Git (Trilha 1) para versionar cada mejora y el deploy (Trilhas 2-4) para publicar las nuevas versiones de forma segura. Commits pequeños, mejoras constantes.