hindsight is an agent memory system that focuses on making agents learn over time rather than just recalling conversation history. It provides retain, recall and reflect operations over isolated memory banks and can be installed via pip and run in-process.
Project overview
Unlike typical agent memory approaches, it targets learning rather than mere recall and claims to eliminate shortcomings of alternative techniques such as RAG and knowledge graphs while delivering state-of-the-art performance on long-term memory tasks.
Project type
AI Agent · RAG
Use cases
Knowledge Q&A · Automation
Deployment
Refer to project documentation
License
MIT
Best for
Developers building AI agents that should learn over time and need structured long-term memory rather than pure conversation recall.
Teams wanting per-user, per-agent or per-project memory isolation through isolated banks.
Key capabilities
Push new memories into a bank with retain, retrieve them with recall, and perform deeper analysis over existing memories with reflect.
Banks are isolated memory stores, one per user, agent or project.
Install via pip and run HindsightServer in-process with retain/recall clients.
Limitations and risks
Server setup requires an LLM provider API key; an OpenAI key is shown, and local providers such as ollama are supported. It works with 25+ LLM providers via HINDSIGHT_API_LLM_PROVIDER, including fully local options (ollama, lmstudio, llamacpp), so a paid service is optional but an external LLM provider may be involved.
Getting started
Install via pip and run HindsightServer in-process with retain/recall clients; overall setup difficulty is medium and coding is required.
Evidence and sources
README: ghcr.io/vectorize-io/hindsight:latest
README: Hindsight™ is an agent memory system built to create smarter agents that learn over time.
README: Hindsight is being used in production at Fortune 500 enterprises and by a growing number of AI startups.
README: client.retain(bank_id="my-bank", content="Alice works at Google as a software engineer")
README: client.recall(bank_id="my-bank", query="What does Alice do?")