Agente con persistencia de memoria
El objetivo principal de este flujo es que el agente de IA mantenga un diálogo coherente , permitiendo que la respuesta se base en el contexto completo.
graph TD
%%{init: {'theme': 'mc','layout': 'elk'}}%%
ChatInput-tj4g4[<div><img alt="logo" src="/_astro/messages-square.BaSDmT6g.svg" style="height: 20px !important;width: 20px !important"/></div>Chat Input]
style ChatInput-tj4g4 stroke:#a170ff
ChatOutput-17n0s[<div><img alt="logo" src="/_astro/messages-square.BaSDmT6g.svg" style="height: 20px !important;width: 20px !important"/></div>Chat Output]
style ChatOutput-17n0s stroke:#a170ff
GoogleGenerativeAIModel-6dquc[Google Generative AI]
style GoogleGenerativeAIModel-6dquc stroke:#a170ff
AdvancedAgent-09rkl[Agent]
style AdvancedAgent-09rkl stroke:#a170ff
GoogleGenerativeAIModel-6dquc -.- AdvancedAgent-09rkl
linkStyle 0 stroke:#a170ff
ChatInput-tj4g4 -.- AdvancedAgent-09rkl
linkStyle 1 stroke:#a170ff
AdvancedAgent-09rkl -.- ChatOutput-17n0s
linkStyle 2 stroke:#a170ff
🧩 Descripción general
El flujo “Agente con persistencia de memoria” permite a un usuario iniciar una conversación, que es procesada por un agente inteligente con memoria adaptativa y herramientas externas. El agente utiliza el modelo Google Generative AI (Gemini) para generar respuestas, resume la memoria cuando es necesario y devuelve la respuesta al usuario a través de la salida de chat.
⚙️ Funcionalidades principales
- Entrada de chat: captura el mensaje del usuario junto con la conversación y metadatos asociados.
- Agente avanzado: decide qué acciones realizar, emplea herramientas y mantiene la memoria contextual.
- Persistencia de memoria: la memoria se gestiona con la estrategia “Summarize” para conservar la información relevante sin exceder el límite de tokens.
- Generación de lenguaje: el modelo Gemini produce la respuesta a partir del prompt y la conversación.
- Salida de chat: muestra la respuesta generada al usuario en el mismo formato de entrada.
- Control de flujo: el agente limita el número de iteraciones y permite streaming opcional de la respuesta.
- Seguridad y supervisión: opciones para incluir detección de datos sensibles y aprobación humana de llamadas a herramientas.
🔄 Pasos del flujo de trabajo
| Nombre del componente | Rol en el flujo | Entradas clave | Salidas clave |
|---|---|---|---|
| Chat Input | Recibe la pregunta del usuario y datos de contexto. | Mensaje del usuario, ID de conversación, sesión, archivos opcionales. | Objeto Message con el contenido del mensaje. |
| Google Generative AI | Proporciona el modelo de lenguaje que generará la respuesta. | Entrada de texto del agente, parámetros de configuración (modelo, temperatura, tokens máximos). | Modelo LanguageModel para el agente. |
| Advanced Agent | Ejecuta la lógica de decisión, llama al modelo y gestiona la memoria y herramientas. | Mensaje del usuario (arg_input), modelo de lenguaje (llm). | Respuesta en formato Message. |
| Chat Output | Presenta la respuesta al usuario. | Mensaje generado por el agente. | Mensaje de salida que se muestra en la interfaz de chat. |
Secuencia
- El usuario escribe un mensaje en Chat Input.
- El mensaje llega al Advanced Agent, que solicita al modelo Google Generative AI para generar la respuesta.
- El agente procesa la respuesta, actualiza la memoria y produce el mensaje final.
- El mensaje se envía a Chat Output para mostrarse al usuario.
🧠 Notas
- La memoria del agente se gestiona con la estrategia “Summarize”, limitando el número de mensajes que se mantienen (20) y el número máximo de tokens antes de resumir (4000).
- El modelo utilizado es Gemini 2.5‑flash (configurable).
- Se permite el streaming de la respuesta (
use_streamystream_thinking) pero por defecto está desactivado. - Se puede habilitar la detección de información personal (
add_pii_features) y la aprobación humana de herramientas (add_hitl_tool). - El agente limita a 35 iteraciones por conversación, evitando ciclos infinitos.
- Se pueden integrar herramientas externas; cuando se emplean, el agente llama a la herramienta y actualiza su estado si
output_stateestá activado. - Los parámetros de temperatura y top‑p están fijados a valores bajos (0.3) para generar respuestas coherentes y controladas.
- El flujo es completamente secuencial; los pasos son dependientes y se ejecutan en orden.
- El componente Label Component solo sirve como descripción visual y no participa en la lógica de procesamiento.