Espejo comentado · Vectorize · licencia MIT

Memoria para agentes que aprende

El agente guarda lo que vivió, busca de cuatro maneras y reúne lo que aprendió en creencias con respaldo. Corre en tu máquina.

Banner: Hindsight, memoria que aprende
En resumen

Hindsight es un sistema de memoria de largo plazo para agentes de IA, creado por Vectorize y abierto bajo licencia MIT. Sirve para quien arma agentes, bots o asistentes que necesitan recordar conversaciones y decisiones de una sesión a otra. En lugar de solo guardar el historial, extrae hechos, junta los repetidos y forma creencias con respaldo, y así el agente aprende con el tiempo. Para usarlo, necesitas Python 3.11 o Docker y un modelo de lenguaje, que puede ser tu suscripción de Claude, de Codex o un modelo local.

Qué es

Tres operaciones y una memoria que se organiza sola

Solo llamas a tres cosas: guardar, buscar y reflexionar. El resto (hechos, entidades, fechas, consolidación) ocurre por debajo.

Banner: las seis piezas de Hindsight

📥 Guardar, buscar, reflexionar

retain extrae hechos con un modelo de lenguaje; recall busca por sentido, palabra exacta, grafo de entidades y período; reflect analiza lo que está guardado y responde preguntas que requieren razonamiento.

🔁 Observaciones y modelos mentales

Hechos parecidos se vuelven observaciones, con cita del respaldo y conteo de confirmaciones. Los modelos mentales son respuestas fijas ("¿cuáles son las preferencias del usuario?") que él reescribe solo a medida que aprende.

🗂️ Un banco por agente

Cada banco es una memoria aislada: uno por usuario, cliente, agente o proyecto, sin filtraciones entre ellos. Opcionalmente bloquea claves y datos personales antes de guardar.

Cómo funciona

Del texto suelto a la creencia con respaldo

Cada retain pasa por un modelo de lenguaje. Después, en segundo plano, el banco se consolida.

Conversación o documento→ retain: hechos, entidades, fechas→ Hechos del mundo y experiencias→ Observaciones (consolidación)→ Modelos mentales

Hechos del mundo

"La estufa calienta." Lo que es verdad sobre el mundo del agente.

Experiencias

"Toqué la estufa y me quemé." Lo que vivió el propio agente.

Observaciones

Creencias consolidadas a partir de muchos hechos, refinadas (no sobrescritas) cuando llega evidencia nueva.

Modelos mentales

Páginas de conocimiento que el banco escribe sobre sí mismo y mantiene actualizadas. Leer una es solo una consulta a la base de datos, sin llamar al modelo.

Búsqueda en cuatro frentes. El recall ejecuta al mismo tiempo búsqueda semántica (vectores), por palabra exacta (BM25), por grafo (entidades, tiempo, causa) y por período, junta todo y reordena con un modelo de reordenamiento antes de ajustarlo al límite de tokens.

Requisitos previos

Lo que debe estar en la máquina

La base de datos viene integrada (PostgreSQL pg0) y los vectores se calculan localmente. El único recurso externo es el modelo de lenguaje.

Python 3.11+ o Docker

El modo integrado se instala con pip o corre sin instalar con uvx.

python3 --version
uvx hindsight-embed --help

Un modelo de lenguaje

Sin clave de API: claude-code (suscripción Claude Pro/Max), openai-codex (ChatGPT Plus/Pro) u ollama local. También acepta más de 25 proveedores por clave.

claude auth status   # ¿ya iniciaste sesión?

Memoria y disco

En la primera ejecución descarga los modelos de vectores y de reordenamiento (1 a 3 minutos). En un servidor compartido, ejecútalo con tope de memoria.

systemd-run --user --scope -p MemoryMax=8G \
  hindsight-embed daemon start
Guía de uso · paso a paso

De cero a la primera memoria

Camino local, sin servidor y sin clave de API, usando la suscripción de Claude. Comandos tomados del README de hindsight-embed y de la documentación de modelos.

1

Instala el modo integrado

Un proceso en segundo plano arranca solo en el puerto 8888 y se apaga tras 5 minutos inactivo.

pip install hindsight-embed   # o: uvx hindsight-embed ...
2

Configura el modelo y los vectores multilingües

El modelo de vectores por defecto (bge-small-en) es solo en inglés. Para portugués y español, la propia documentación recomienda BAAI/bge-m3.

hindsight-embed configure \
  --env HINDSIGHT_API_LLM_PROVIDER=claude-code \
  --env HINDSIGHT_API_EMBEDDINGS_LOCAL_MODEL=BAAI/bge-m3
3

Guarda y busca

El primer argumento es el banco. Usa un banco por proyecto, cliente o agente.

hindsight-embed memory retain default "El usuario prefiere respuestas cortas y en español"
hindsight-embed memory recall default "¿Cómo le gustan las respuestas al usuario?"
4

Pide una reflexión

Para preguntas que requieren análisis, no solo búsqueda.

hindsight-embed memory reflect default "¿Qué patrones aparecen en las preferencias del usuario?"
hindsight-embed bank list          # bancos existentes
hindsight-embed daemon logs -n 100   # lo que hizo el proceso
5

Conéctalo a Claude Code (opcional)

El plugin busca memorias en cada prompt y guarda la conversación después de cada respuesta, mediante ganchos (hooks). También trae herramientas MCP para páginas de conocimiento.

claude plugin marketplace add vectorize-io/hindsight
claude plugin install hindsight-memory
export HINDSIGHT_LLM_PROVIDER=claude-code
6

O en Codex CLI (opcional)

Tres ganchos: calienta el servidor al abrir, busca memorias en cada pedido y guarda al terminar. Requiere Codex 0.116 o más reciente. Lee el script antes de ejecutarlo.

curl -fsSL https://hindsight.vectorize.io/get-codex -o get-codex.sh
less get-codex.sh && bash get-codex.sh
7

Úsalo en tu código

Cliente Python (también hay Node.js, Go y CLI) apuntando al servidor local.

from hindsight_client import Hindsight
client = Hindsight(base_url="http://localhost:8888")
client.retain(bank_id="cliente-42", content="Pidió presupuesto de 3 salas")
client.recall(bank_id="cliente-42", query="¿Qué pidió el cliente?")
client.reflect(bank_id="cliente-42", query="¿Cuál es el próximo paso con él?")

Antes de conectarlo a todo. Cada retain es una llamada al modelo: guardar cada respuesta de cada sesión consume la cuota de la suscripción. La documentación advierte que el proveedor claude-code es para uso personal y local (usa el Claude Agent SDK oficial con tu inicio de sesión); para equipo o producción, recomiendan clave de API.

En el ecosistema INEMA

Lo que aporta a lo que ya tenemos

Análisis hecho el 15/10/2026 leyendo el código. Nada de esto se instaló todavía: es el mapa de la adaptación.

HoyLímite actualLo que agrega Hindsight
Memoria en archivos (MEMORY.md + un archivo por hecho)Manual; el índice crece, los hechos repetidos y viejos se acumulanConsolida solo, refina creencias con evidencia nueva, entiende fechas
Lecciones, FALHAS.md y LIMITES.mdSolo crecen; nadie extrae el patrónreflect extrae el patrón de los errores repetidos
Búsqueda en el historial de sesionesSolo palabra exactaBúsqueda por sentido, entidad y período
Plugin de memoria actual de Claude CodeA veces falla la conexiónPlugin listo para Claude Code y para Codex
Bots y kits de atenciónSin memoria por clienteUn banco aislado por cliente, con bloqueo de datos sensibles
Tema "segundo cerebro"ConceptualBase real para guía, curso y demostración
Próximos pasos

Plan de adaptación

En orden, cada etapa solo empieza si la anterior demuestra valor.

Piloto
Un banco con lo que ya escribimosLevantar el modo integrado local (suscripción Claude, vectores bge-m3, tope de memoria) y alimentarlo con lecciones, fallas, límites y traspasos de sesión.
Medir
Preguntas realesComparar recall/reflect con la búsqueda actual en preguntas como "¿qué errores repito en video?". Medir el consumo de cuota por retain.
Sesiones
Plugin en Claude Code y en CodexSi el piloto sale bien, probar el plugin en lugar del actual, con retain cada N turnos para ahorrar cuota.
Clientes
Memoria por cliente en los botsUn banco por cliente en los kits de atención, con la defensa de datos sensibles activada.