Memoria semántica (datos vectorizados)
Datos independientes que el agente ha aprendido sobre el usuario o el mundo, almacenados en un índice vectorial.
Memoria semántica (datos vectorizados) es una lección gratuita de AI Agents en CoddyKit. Esta es la lección 2 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de AI Agents, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de AI Agents incluye 4 lecciones en total.
Partes de esta lección aún no han sido traducidas y se muestran en inglés.
¿Qué es la memoria semántica?
La memoria semántica contiene hechos independientes que el agente conoce: sobre el usuario, el mundo o la empresa. A diferencia de la episódica, no hay una marca de tiempo vinculada a un evento concreto.
Ejemplos:
- "El nombre del usuario es Alice".
- "Alice prefiere Celsius".
- "El nivel de precios actual es Pro, a 20 $ al mes".
Formato de almacenamiento
Un almacén vectorial más metadatos estructurados:
CREATE TABLE semantic_facts (
id UUID PRIMARY KEY,
user_id TEXT NOT NULL,
fact TEXT NOT NULL,
embedding vector(1536),
source TEXT, -- 'extracted' / 'user-stated' / 'system'
confidence REAL DEFAULT 1.0,
created_at TIMESTAMPTZ DEFAULT NOW()
);Extraiga hechos de las conversaciones
Después de cada sesión, ejecute un extractor basado en un LLM:
extract_prompt = '''
From the conversation below, list any new facts about the user.
Return JSON: [{"fact": "...", "confidence": 0.0-1.0}]
Conversation:
{transcript}
'''
print(extract_prompt.strip())
Saving Extracted Facts
import uuid
for f in extracted:
vec = embed(f['fact'])
conn.execute('''
INSERT INTO semantic_facts (id, user_id, fact, embedding, confidence, source)
VALUES (%s, %s, %s, %s, %s, 'extracted')
''', (str(uuid.uuid4()), user_id, f['fact'], vec, f['confidence']))Recuperación en el momento de la inferencia
Para cada consulta nueva, recupere los hechos pertinentes e inyéctelos en el prompt del sistema:
def relevant_facts(user_id, query, k=5):
qvec = embed(query)
rows = conn.execute('''
SELECT fact FROM semantic_facts
WHERE user_id = %s
ORDER BY embedding <=> %s LIMIT %s
''', (user_id, qvec, k))
return [r[0] for r in rows]
facts = relevant_facts(user_id, user_question)
system = SYSTEM_PROMPT + '\n\nKnown facts:\n' + '\n'.join(facts)Actualice los hechos
¿Qué ocurre si cambia un hecho? "Alice prefiere Celsius" -> "Alice ahora prefiere Fahrenheit". Hay dos estrategias:
- Marcar el hecho antiguo como obsoleto (añadir updated_at y realizar una eliminación lógica)
- O almacenar las contradicciones y resolverlas durante la recuperación
Conciliación de hechos
Al extraer información, compruebe si existen contradicciones con los hechos existentes:
def reconcile(user_id, new_fact):
similar = relevant_facts(user_id, new_fact, k=3)
response = llm.invoke(f'Is the new fact ({new_fact}) consistent with existing facts ({similar})? If contradicting, return the obsolete one.')
if response.has_contradiction:
mark_obsolete(response.obsolete_id)
save_fact(new_fact)Confidence-Weighted Retrieval
rows = conn.execute('''
SELECT fact FROM semantic_facts
WHERE user_id = %s AND confidence > 0.6
ORDER BY embedding <=> %s LIMIT %s
''', ...)Obsolescencia de los hechos
Algunos hechos quedan obsoletos ("el proyecto actual es X"). Añada un TTL o reduzca la confianza con el tiempo:
UPDATE semantic_facts
SET confidence = confidence * 0.95
WHERE created_at < NOW() - INTERVAL '30 days';Hechos sensibles para la privacidad
Cifre los datos personales antes de almacenarlos. Algunos hechos (como los relativos a la salud o las finanzas) necesitan protección adicional; almacénelos en una tabla separada y con controles de acceso más estrictos.
Hechos editables por el usuario
Muestre a los usuarios los hechos almacenados sobre ellos y permítales editarlos o eliminarlos. Esto genera confianza y reduce los errores inquietantes de la memoria.
La memoria como herramienta
Exponga las operaciones de memoria como herramientas que el propio agente pueda llamar:
tools = [
{'name': 'remember_fact', 'description': 'Save a new fact about the user'},
{'name': 'forget_fact', 'description': 'Remove a stored fact'},
{'name': 'recall_facts', 'description': 'Search relevant facts for a query'}
]
import json
print(json.dumps(tools, indent=2))
Letta y MemGPT
El framework Letta (antes MemGPT) implementa la memoria de agentes a escala, con una memoria "principal" independiente (siempre en el contexto) y una memoria "de archivo" (con búsquedas vectoriales).
Memoria semántica frente a episódica
¿En qué se diferencia la memoria semántica de la episódica?
Repaso
Almacene en un almacén vectorial los hechos sobre el usuario, recupere los K más relevantes en cada turno e inyéctelos en el prompt del sistema. Concilie las contradicciones y reduzca la confianza o haga que los hechos caduquen con el tiempo.
Preguntas frecuentes
¿La lección «Memoria semántica (datos vectorizados)» es gratis?
Sí — el texto completo de «Memoria semántica (datos vectorizados)» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de AI Agents, actualiza a CoddyKit PRO. El curso de AI Agents incluye 4 lecciones en total.
¿Qué aprenderé en «Memoria semántica (datos vectorizados)»?
Datos independientes que el agente ha aprendido sobre el usuario o el mundo, almacenados en un índice vectorial. Practicas AI Agents con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar AI Agents?
No se requiere experiencia previa. AI Agents en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 2 de 4.
¿Cuánto tiempo toma la lección «Memoria semántica (datos vectorizados)»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de AI Agents?
Sí. Cada lección de AI Agents incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Memoria episódica (historial por sesión)
- Memoria semántica (datos vectorizados)
- Memoria procedimental (biblioteca de habilidades)
- Decaimiento de la memoria y recolección de basura