Ana Brainiall

Construye tu primer agente de IA con memoria

intermediario · 12 min · Por Ana Brainiall

Agente vs chatbot: cuál es la diferencia

Un chatbot responde mensajes de forma independiente. Cada conversación es aislada. Si dijiste tu nombre ayer, hoy no lo recuerda.

Un agente tiene 3 características adicionales:

1. Memoria persistente: te recuerda entre sesiones
2. Herramientas: puede llamar APIs externas (buscar en Google, enviar emails, ejecutar código)
3. Planificación: puede descomponer tareas complejas en pasos

En este curso nos enfocamos en (1): memoria persistente. Herramientas y planificación son cursos separados.

ilustração de 2 personagens — à esquerda um chatbot sem memória (balão vazio ao

Arquitectura básica de memoria

Lo que el agente necesita guardar sobre ti:

Estructura de almacenamiento:

`
memoria_usuario = {
"facts": [
{"text": "Pedro trabaja con Python", "pinned": False},
{"text": "prefiere respuestas cortas", "pinned": True}
],
"summary_last_10_sessions": "El usuario aprendió sobre TLS, APIs y autenticación...",
"preferences": {"response_language": "es", "tone": "technical"}
}
`

Cómo lo hace Brainiall

Nuestro backend ya implementa memoria persistente. Puedes:

1. Hacer clic en el ícono 🧠 en la barra lateral del chat
2. Ver la lista de hechos que la IA aprendió sobre ti
3. Fijar los hechos importantes (para que nunca se olviden)
4. Editar o eliminar
5. Desactivar la memoria con el toggle

Internamente usamos:
- PostgreSQL JSONB para almacenar hechos por usuario
- Eviction policy: máximo 50 hechos no fijados, los más antiguos se eliminan primero
- Extraction: cada 10 mensajes, el LLM lee la conversación y sugiere nuevos hechos para aprobación
- Retrieval: antes de responder, busca hechos relevantes y los inyecta en el prompt

Construye tu agente vía API

Ejemplo minimalista en Python:

`python
import httpx

BASE = "https://api.brainiall.com"
KEY = "brnl-xxxxx"

def chat(message, user_memory):
# Inject memory as system prompt context
memory_text = "\n".join(f"- {f}" for f in user_memory["facts"])
system = f"Eres un asistente personal. Sobre el usuario:\n{memory_text}"

r = httpx.post(
f"{BASE}/v1/chat/completions",
json={
"model": "claude-sonnet-4-6",
"messages": [
{"role": "system", "content": system},
{"role": "user", "content": message}
]
},
headers={"Authorization": f"Bearer {KEY}"}
)
return r.json()["choices"][0]["message"]["content"]

# Uso
memory = {"facts": ["Pedro trabaja con Python", "le gusta el café sin azúcar"]}
print(chat("¿Qué tomé esta mañana?", memory))
# → "Probablemente tomaste un café sin azúcar, ¿verdad?"
`

Este es un agente básico. Agregar extraction automática (el LLM lee y extrae nuevos hechos) y retrieval (inyectar solo los hechos relevantes) llevaría el código a ~100 líneas.

Errores comunes

lista visual de 5 armadilhas com ícones e exemplos curtos — caderno inflado, "??

Casos de uso

Pruébalo ahora mismo

En el chat de Brainiall, abre una conversación, cuéntale algo sobre ti, ciérrala y abre otra al día siguiente — el agente lo recuerda. Activa o desactiva la memoria con el ícono 🧠 en la barra lateral. El plan Pro tiene memoria completa; el plan gratuito tiene memoria limitada a 10 hechos.

¿Te gustó el curso?

Desbloquea 17 cursos Pro + 40+ IAs en chat + generación de video, música y Studio completo.

Hazte Pro · US$5.99/mes

Cancela cuando quieras · Sin compromiso