¿Cómo diseñar una memoria persistente y un sistema de IA agente personalizado con decadencia y autoevaluación?

En este tutorial, exploramos cómo construir un agente inteligente que recuerde, aprenda y se adapte a nosotros con el tiempo. Implementamos un sistema de personalización y memoria persistente utilizando una lógica simple basada en reglas para simular cómo los marcos modernos de IA agente almacenan y recuperan información contextual. A medida que avanzamos, vemos cómo las respuestas del agente evolucionan con la experiencia, cómo el deterioro de la memoria ayuda a prevenir la sobrecarga y cómo la personalización mejora el rendimiento. Nuestro objetivo es comprender, paso a paso, cómo la persistencia transforma un chatbot estático en un compañero digital en evolución y consciente del contexto. Consulta los CÓDIGOS COMPLETOS aquí.

importar matemáticas, tiempo, aleatorio desde escribir importar lista clase MemoryItem: def __init__(self, kind:str, content:str, score:float=1.0): self.kind = kind self.content = contenido self.score = puntaje self.t = time.time() class MemoryStore: def __init__(self, decay_half_life=1800): self.items: Lista[MemoryItem] = []
self.decay_half_life = decay_half_life def _decay_factor(self, item:MemoryItem): dt = time.time() – item.t devuelve 0.5 ** (dt / self.decay_half_life)

Establecimos las bases para la memoria a largo plazo de nuestro agente. Definimos la clase MemoryItem para contener cada pieza de información y construir un MemoryStore con un mecanismo de caída exponencial. Comenzamos a sentar las bases para almacenar y envejecer información como la memoria de un ser humano. Consulta los CÓDIGOS COMPLETOS aquí.

def agregar(self, tipo:cadena, contenido:cadena, puntuación:float=1.0): self.items.append(MemoryItem(tipo, contenido, puntuación)) def buscar(self, consulta:cadena, topk=3): puntuado = []
para ello en self.items: decay = self._decay_factor(it) sim = len(set(query.lower().split()) & set(it.content.lower().split())) final = (it.score * decay) + sim scoring.append((final, it)) scoring.sort(key=lambda x: x[0]reverso=Verdadero) retorno [it for _, it in scored[:topk] if _ > 0]def limpieza(self, min_score=0.1): nuevo = []
para ello en self.items: if it.score * self._decay_factor(it) > min_score: new.append(it) self.items = new

Ampliamos el sistema de memoria agregando métodos para insertar, buscar y limpiar recuerdos antiguos. Implementamos una función de similitud simple y una rutina de limpieza basada en el deterioro, lo que permite al agente recordar hechos relevantes y olvidar automáticamente los débiles u obsoletos. Consulta los CÓDIGOS COMPLETOS aquí.

Agente de clase: def __init__(self, memoria:MemoryStore, nombre=”PersonalAgent”): self.memory = memoria self.name = nombre def _llm_sim(self, Prompt:str, contexto:List[str]): base = “OK. ” if any(“prefiere short” en c para c en contexto): base = “” respuesta = base + f”Consideré {len(context)} notas pasadas. ” if “resumir” en el mensaje.lower(): devolver respuesta + “Resumen: ” + ” | “.join(context[:2]) si “recomendar” en Prompt.lower(): si corresponde (“ciberseguridad” en c para c en contexto): devolver respuesta + “Recomendado: escribir más artículos sobre ciberseguridad”. si corresponde (“rag” en c para c en contexto): devolver respuesta + “Recomendado: crear una demostración de RAG agente a continuación”. devolver respuesta + “Recomendado: continuar con tu último tema.” devolver respuesta + “Aquí está mi respuesta a: ” + mensaje def percibir(self, user_input:str): ui = user_input.lower() si “me gusta” en ui o “prefiero” en ui: self.memory.add(“preference”, user_input, 1.5) if “tema:” en ui: self.memory.add(“topic”, user_input, 1.2) if “proyecto” en ui: self.memory.add(“proyecto”, entrada_usuario, 1.0) def act(self, entrada_usuario:str): mems = self.memory.search(entrada_usuario, topk=4) ctx = [m.content for m in mems]
respuesta = self._llm_sim(user_input, ctx) self.memory.add(“dialog”, f”el usuario dijo: {user_input}”, 0.6) self.memory.cleanup() devolver respuesta, ctx

Diseñamos un agente inteligente que utiliza la memoria para informar sus respuestas. Creamos un simulador de modelo de lenguaje simulado que adapta las respuestas en función de las preferencias y temas almacenados. Al mismo tiempo, la función de percepción permite al agente capturar dinámicamente nuevos conocimientos sobre el usuario. Consulta los CÓDIGOS COMPLETOS aquí.

def evaluar_personalización(agente:Agente): agente.memory.add(“preferencia”, “Al usuario le gustan los artículos de ciberseguridad”, 1.6) q = “Recomendar qué escribir a continuación” ans_personal, _ = agente.act(q) vacío_mem = MemoryStore() cold_agent = Agente(empty_mem) ans_cold, _ = cold_agent.act(q) ganancia = len(ans_personal) – len(ans_cold) devuelve ans_personal, ans_cold, ganancia

Ahora le damos a nuestro agente la capacidad de actuar y evaluarse a sí mismo. Le permitimos recordar recuerdos para dar forma a respuestas contextuales y agregar un pequeño ciclo de evaluación para comparar respuestas personalizadas con una línea de base sin memoria, cuantificando cuánto ayuda la memoria. Consulta los CÓDIGOS COMPLETOS aquí.

mem = MemoryStore(decay_half_life=60) agente = Agente(mem) print(“=== Demostración: enseñarle al agente sobre usted mismo ===”) entradas = [
“I prefer short answers.”,
“I like writing about RAG and agentic AI.”,
“Topic: cybersecurity, phishing, APTs.”,
“My current project is to build an agentic RAG Q&A system.”
]
para inp en entradas: agent.perceive(inp) print(“\n=== Ahora pregúntele algo al agente ===”) user_q = “Recomendar qué escribir a continuación en mi blog” ans, ctx = agent.act(user_q) print(“USUARIO:”, user_q) print(“AGENTE:”, ans) print(“MEMORIA USADA:”, ctx) print(“\n=== Evaluar beneficio de personalización ===”) p, c, g = evalua_personalización(agente) print(“Con memoria :”, p) print(“Arranque en frío :”, c) print(“Ganancia de personalización (caracteres):”, g) print(“\n=== Instantánea de memoria actual ===”) para ello en agent.memory.items: print(f”- {it.kind} | {it.content[:60]}…. | puntuación~{ronda(it.score,2)}”)

Finalmente, ejecutamos la demostración completa para ver a nuestro agente en acción. Le proporcionamos entradas de usuario, observamos cómo recomienda acciones personalizadas y verificamos su instantánea de memoria. Asistimos al surgimiento del comportamiento adaptativo, prueba de que la memoria persistente transforma un guión estático en un compañero de aprendizaje.

En conclusión, demostramos cómo añadir memoria y personalización hace que nuestro agente sea más humano, capaz de recordar preferencias, adaptar planes y olvidar detalles obsoletos de forma natural. Observamos que incluso mecanismos simples como la decadencia y la recuperación mejoran significativamente la relevancia del agente y la calidad de la respuesta. Al final, nos damos cuenta de que la memoria persistente es la base de la IA agente de próxima generación, una que aprende continuamente, adapta las experiencias de forma inteligente y mantiene el contexto de forma dinámica en una configuración totalmente local y fuera de línea.

Consulta los CÓDIGOS COMPLETOS aquí. No dude en consultar nuestra página de GitHub para tutoriales, códigos y cuadernos. Además, no dude en seguirnos en Twitter y no olvide unirse a nuestro SubReddit de más de 100.000 ML y suscribirse a nuestro boletín. ¡Esperar! estas en telegrama? Ahora también puedes unirte a nosotros en Telegram.

Asif Razzaq es el director ejecutivo de Marktechpost Media Inc.. Como empresario e ingeniero visionario, Asif está comprometido a aprovechar el potencial de la inteligencia artificial para el bien social. Su esfuerzo más reciente es el lanzamiento de una plataforma de medios de inteligencia artificial, Marktechpost, que se destaca por su cobertura en profundidad del aprendizaje automático y las noticias sobre aprendizaje profundo que es técnicamente sólida y fácilmente comprensible para una amplia audiencia. La plataforma cuenta con más de 2 millones de visitas mensuales, lo que ilustra su popularidad entre el público.

🙌 Siga MARKTECHPOST: agréguenos como fuente preferida en Google.