📄 Hindsight — README
Fuente: README del repo GitHub vectorize-io/hindsight (clipping del 2026-11-02)
Tipo: README de proyecto / sistema de memoria para agentes
Licencia: MIT
Paper: arXiv 2512.12818
Resumen
Hindsight es un sistema de memoria para agentes cuyo objetivo declarado no es recordar el historial de conversación sino hacer que el agente aprenda con el tiempo. Se presenta como alternativa a RAG y a los grafos de conocimiento: en vez de indexar documentos y recuperar trozos, organiza las memorias con estructuras “biomiméticas” (hechos del mundo, experiencias, observaciones y modelos mentales) dentro de bancos aislados, y expone tres operaciones: retain, recall y reflect.
Se distribuye como servidor propio (Docker, pip, Helm), como librería embebida en Python (hindsight-all, sin servidor), o como servicio gestionado (Hindsight Cloud). Trae 60+ integraciones y un endpoint MCP por banco.
Takeaways clave
- Cuatro tipos de memoria, no un vector store: world facts (hechos del mundo), experiences (vivencias del propio agente), observations (creencias consolidadas, con evidencias) y mental models (comprensión aprendida, sintetizada de las anteriores).
retainno guarda texto, extrae estructura: al ingerir, un LLM extrae hechos, datos temporales, entidades y relaciones; después se normalizan a entidades canónicas, series temporales e índices. Es decir: escribir cuesta una llamada al LLM, no es un INSERT.recallcombina cuatro recuperaciones en paralelo: semántica (vectores), keyword (BM25), grafo (entidades, tiempo, causalidad) y temporal (rango de fechas); fusiona con reciprocal rank fusion, reordena con un cross-encoder y recorta al límite de tokens.reflectrazona en vez de buscar: pensado para preguntas que necesitan síntesis (“¿qué riesgos hay en este proyecto?”), no para lookup. Los bancos llevan disposition traits (escepticismo, literalidad, empatía) que modulan ese razonamiento.- La memoria se consolida sola: en segundo plano agrupa hechos relacionados en observations deduplicadas, cada una con citas de evidencia y contador de pruebas, que se refinan (no se sobrescriben) cuando llega evidencia nueva. Los mental models son respuestas permanentes a una pregunta (“¿qué prefiere este usuario?”), reescritas en background y leídas como un read de base de datos, sin llamada al LLM.
- Bancos aislados y multiidioma por defecto: un banco = un cerebro (usuario, agente o proyecto), sin fugas entre bancos; el idioma de entrada se detecta y se preserva (los hechos no se traducen ni los nombres se transliteran).
- Tres vías de integración: wrapper del cliente LLM (
hindsight-litellm, 2 líneas, recall antes / retain después de cada llamada), SDK/REST para control explícito, o el paquete para agentes de código que crea un banco por repo a partir del historial de git.
Datos relevantes
- Arranque Docker:
docker run -p 8888:8888 -p 9999:9999 ghcr.io/vectorize-io/hindsight:latestconHINDSIGHT_API_LLM_API_KEYy volumenhindsight-data:/home/hindsight/.pg0. API en:8888, UI en:9999. - Proveedores LLM: 25+ vía
HINDSIGHT_API_LLM_PROVIDER— hosted (openai,anthropic,gemini,groq,bedrock,vertexai,minimax,deepseek,meta…), locales (ollama,lmstudio,llamacpp), cualquier endpoint OpenAI-compatible y gateways (litellm). También suscripciones sin API key:openai-codex,claude-code,cursor,github-copilot. - Clientes:
pip install hindsight-client,npm i @vectorize-io/hindsight-client, Go, CLI (get-cli) y REST. - Embebido:
pip install hindsight-all+HindsightServer(...)en proceso (en Macs Intel,hindsight-all-slim). Hay equivalente Node y un CLI daemon. - MCP: endpoint integrado por banco, activo por defecto:
http://localhost:8888/mcp/{bank_id}/. - Agentes de código:
npx @vectorize-io/hindsight-coding-agents install all(Claude Code, Codex CLI, Cursor CLI, Copilot CLI, opencode, Cline, Kilo, Antigravity, Devin, pi…). Banco por repo construido desde git e historial de sesiones; la ingesta es automática, sin comando de setup. - Producción: PostgreSQL + pgvector u Oracle AI Database 23ai; configuración jerárquica (global → tenant → banco); métricas Prometheus; admin CLI; webhooks; puntos de extensión.
- Multilingual y Memory Defense: detección de idioma por defecto; defensa opcional por banco que escanea cada
retaincontra 45 patrones de secretos/PII y redacta ([REDACTED:github_token]) o bloquea.
Limitaciones y escepticismo
- ⚠️ Benchmark autopublicado, con reproducción parcial: el README afirma SOTA en LongMemEval y que los resultados fueron reproducidos por el Sanghani Center (Virginia Tech) y The Washington Post; el resto de puntuaciones de la comparativa son autodeclaradas por cada vendor. No hay una evaluación independiente de todas las filas.
- Coste en escritura: cada
retainimplica extracción con LLM (y la consolidación en background, más llamadas). No es comparable en precio a un índice vectorial puro. - Complejidad operativa: para producción pide Postgres/pgvector, migraciones y CLI de administración; el modo
pg0embebido es la vía simple. - El propio README advierte que para flujos simples (n8n y similares) puede ser excesivo.
- Las cifras de rendimiento y latencia no se dan en el clipping: remiten a
benchmarks.hindsight.vectorize.io.