Asistente Virtual
Agente inteligente que analiza correos y calendario, detecta información relevante y complementa con búsquedas web para ofrecer organización, contexto y recomendaciones útiles en tiempo real.
graph TD
%%{init: {'theme': 'mc','layout': 'elk'}}%%
GmailMesageComponent-mkt7v[<div><img alt="logo" src="/_astro/gmail.CLxyIGOu.svg" style="height: 20px !important;width: 20px !important"/></div>enviar]
style GmailMesageComponent-mkt7v stroke:#a170ff
GmailMesageComponent-44crm[<div><img alt="logo" src="/_astro/gmail.CLxyIGOu.svg" style="height: 20px !important;width: 20px !important"/></div>obtener]
style GmailMesageComponent-44crm stroke:#a170ff
googlecalendarcomponent-i0fv3[crear evento]
style googlecalendarcomponent-i0fv3 stroke:#a170ff
googlecalendarcomponent-v01iy[obtener eventos]
style googlecalendarcomponent-v01iy stroke:#a170ff
googlecalendarcomponent-pljlu[actualizar evento]
style googlecalendarcomponent-pljlu stroke:#a170ff
googlecalendarcomponent-4abze[eliminar evento]
style googlecalendarcomponent-4abze stroke:#a170ff
CalculatorTool-8cm5k[Calculator]
style CalculatorTool-8cm5k stroke:#a170ff
DuckDuckGoSearch-m7u5j[DuckDuckGo Search]
style DuckDuckGoSearch-m7u5j stroke:#a170ff
GmailMesageComponent-fytbb[<div><img alt="logo" src="/_astro/gmail.CLxyIGOu.svg" style="height: 20px !important;width: 20px !important"/></div>responder]
style GmailMesageComponent-fytbb stroke:#a170ff
LanggraphSupervisorAgent-wsqta[Supervisor Agent]
style LanggraphSupervisorAgent-wsqta stroke:#a170ff
GmailMesageComponent-74mb7[<div><img alt="logo" src="/_astro/gmail.CLxyIGOu.svg" style="height: 20px !important;width: 20px !important"/></div>eliminar]
style GmailMesageComponent-74mb7 stroke:#a170ff
GmailMesageComponent-2umqp[<div><img alt="logo" src="/_astro/gmail.CLxyIGOu.svg" style="height: 20px !important;width: 20px !important"/></div>marcar_leído]
style GmailMesageComponent-2umqp stroke:#a170ff
AdvancedAgent-70psk[AgenteBúsqueda]
style AdvancedAgent-70psk stroke:#a170ff
AdvancedAgent-v75tq[AgenteGmail]
style AdvancedAgent-v75tq stroke:#a170ff
AdvancedAgent-91o8w[AgenteCalendario]
style AdvancedAgent-91o8w stroke:#a170ff
TelegramWebhook-u9hpu[Telegram Webhook]
style TelegramWebhook-u9hpu stroke:#a170ff
TelegramMessage-7x695[Telegram Message]
style TelegramMessage-7x695 stroke:#a170ff
OpenAIModel-w05yo[<div><img alt="logo" src="/_astro/openAI.BhmuxEs3.svg" style="height: 20px !important;width: 20px !important"/></div>OpenAI]
style OpenAIModel-w05yo stroke:#a170ff
OpenAIModel-lv5xv[<div><img alt="logo" src="/_astro/openAI.BhmuxEs3.svg" style="height: 20px !important;width: 20px !important"/></div>OpenAI2]
style OpenAIModel-lv5xv stroke:#a170ff
OpenAIModel-pfy9p[<div><img alt="logo" src="/_astro/openAI.BhmuxEs3.svg" style="height: 20px !important;width: 20px !important"/></div>OpenAI3]
style OpenAIModel-pfy9p stroke:#a170ff
OpenAIModel-cproi[<div><img alt="logo" src="/_astro/openAI.BhmuxEs3.svg" style="height: 20px !important;width: 20px !important"/></div>OpenAI4]
style OpenAIModel-cproi stroke:#a170ff
AdvancedAgent-v75tq -.- LanggraphSupervisorAgent-wsqta
linkStyle 0 stroke:#a170ff
GmailMesageComponent-2umqp -.- AdvancedAgent-v75tq
linkStyle 1 stroke:#a170ff
GmailMesageComponent-44crm -.- AdvancedAgent-v75tq
linkStyle 2 stroke:#a170ff
GmailMesageComponent-fytbb -.- AdvancedAgent-v75tq
linkStyle 3 stroke:#a170ff
GmailMesageComponent-74mb7 -.- AdvancedAgent-v75tq
linkStyle 4 stroke:#a170ff
GmailMesageComponent-mkt7v -.- AdvancedAgent-v75tq
linkStyle 5 stroke:#a170ff
AdvancedAgent-91o8w -.- LanggraphSupervisorAgent-wsqta
linkStyle 6 stroke:#a170ff
googlecalendarcomponent-i0fv3 -.- AdvancedAgent-91o8w
linkStyle 7 stroke:#a170ff
googlecalendarcomponent-pljlu -.- AdvancedAgent-91o8w
linkStyle 8 stroke:#a170ff
googlecalendarcomponent-v01iy -.- AdvancedAgent-91o8w
linkStyle 9 stroke:#a170ff
googlecalendarcomponent-4abze -.- AdvancedAgent-91o8w
linkStyle 10 stroke:#a170ff
CalculatorTool-8cm5k -.- AdvancedAgent-70psk
linkStyle 11 stroke:#a170ff
DuckDuckGoSearch-m7u5j -.- AdvancedAgent-70psk
linkStyle 12 stroke:#a170ff
AdvancedAgent-70psk -.- LanggraphSupervisorAgent-wsqta
linkStyle 13 stroke:#a170ff
TelegramWebhook-u9hpu -.- LanggraphSupervisorAgent-wsqta
linkStyle 14 stroke:#a170ff
LanggraphSupervisorAgent-wsqta -.- TelegramMessage-7x695
linkStyle 15 stroke:#a170ff
OpenAIModel-w05yo -.- LanggraphSupervisorAgent-wsqta
linkStyle 16 stroke:#a170ff
OpenAIModel-lv5xv -.- AdvancedAgent-v75tq
linkStyle 17 stroke:#a170ff
OpenAIModel-pfy9p -.- AdvancedAgent-91o8w
linkStyle 18 stroke:#a170ff
OpenAIModel-cproi -.- AdvancedAgent-70psk
linkStyle 19 stroke:#a170ff
🧩 Descripción general
El flujo “Asistente Virtual” recibe peticiones de un usuario a través de un bot de Telegram y, mediante una arquitectura de agentes, interpreta la intención, accede a Gmail y Google Calendar, realiza búsquedas web y cálculos, y devuelve al usuario la respuesta final en el mismo chat de Telegram. El supervisor coordina a tres agentes especializados (Gmail, Calendario y Búsqueda) y delega las tareas a los componentes de interacción con los servicios externos.
⚙️ Funcionalidades principales
| Funcionalidad | Descripción breve |
|---|---|
| Intención | El modelo LLM del supervisor analiza el mensaje del usuario y determina el agente que debe ejecutarse. |
| Correo | Obtener, enviar, responder y eliminar mensajes de Gmail. |
| Calendario | Crear, obtener, actualizar y eliminar eventos en Google Calendar. |
| Búsqueda | Ejecutar consultas en DuckDuckGo y realizar cálculos aritméticos. |
| Respuesta | Construir y enviar un mensaje claro al usuario mediante el bot de Telegram. |
| Memoria | Opcionalmente guarda el historial de conversación para mantener contexto. |
| Fallo seguro | Si el modelo principal falla, se activa un modelo de respaldo. |
🔄 Pasos del flujo de trabajo
| Nombre del componente | Rol en el flujo | Entradas clave | Salidas clave |
|---|---|---|---|
| Telegram Webhook | Recibe la petición del usuario y extrae el texto. | Mensaje de Telegram (JSON) | Texto del usuario (input_value) |
| Supervisor Agent | Interpreta la intención, selecciona el agente apropiado y compila la respuesta final. | Texto del usuario (input_value), LLM (llm) |
Mensaje de respuesta (response) |
| AgenteGmail | Ejecuta operaciones relacionadas con Gmail. | Operación (Operation), credenciales, datos de correo |
Resultado de la operación de Gmail |
| AgenteCalendario | Gestiona eventos de Google Calendar. | Operación (Operation), credenciales, datos de evento |
Resultado de la operación de calendario |
| AgenteBúsqueda | Realiza búsquedas web o cálculos. | Consulta (input_value), tipo de búsqueda (DuckDuckGo/Calculator) |
Resultado de la búsqueda o cálculo |
| GmailMesageComponent | Conecta al agente Gmail con la API de Gmail (obtener, enviar, responder, eliminar, marcar). | Parámetros de la operación específica (por ejemplo, mail_id, subject, body) |
Datos del correo procesado |
| googlecalendarcomponent | Conecta al agente Calendario con la API de Google Calendar (crear, obtener, actualizar, eliminar). | Parámetros del evento (summary, start_date, end_date, etc.) |
Datos del evento procesado |
| CalculatorTool | Evalúa expresiones aritméticas. | Expresión (expression) |
Resultado numérico |
| DuckDuckGoSearch | Busca resultados en DuckDuckGo. | Consulta (input_value), número máximo de resultados |
Lista de resultados de búsqueda |
| Telegram Message | Envía la respuesta final al chat de Telegram. | Texto del mensaje (text) |
Mensaje enviado en Telegram |
Orden secuencial
- Telegram Webhook → 2. Supervisor Agent → 3. Selección del agente (Gmail / Calendario / Búsqueda) → 4. Ejecución de la herramienta correspondiente (GmailMesageComponent / googlecalendarcomponent / DuckDuckGoSearch / CalculatorTool) → 5. Compilación de la respuesta → 6. Telegram Message.
🧠 Notas
- Modelo LLM: Se utiliza
OpenAI GPT‑4.1como modelo principal; si falla, se activará un modelo de respaldo configurado en el agente. - Memoria: Opcionalmente se puede habilitar la memoria a corto y largo plazo (
use_checkpointer) para mantener contexto en conversaciones largas. - Stream: La salida del modelo puede transmitirse en tiempo real (
use_stream) si se requiere una respuesta instantánea al usuario. - Seguridad: Se incluyen mecanismos de detección de PII (email, etc.) y se pueden habilitar controles de repetición de llamadas a herramientas para evitar abusos.
- Batch: La arquitectura permite procesar múltiples tareas en paralelo gracias a los modos de “Batch” y “Parallel Executions” disponibles en los componentes.
- Logs: Para depuración, se habilita un nivel de verbosidad opcional (
verbose) que revela la cadena de razonamiento del modelo.