Hindsight

Diagram: an agent linked by retain, recall and reflect arrows to four memory networks (world facts, experiences, observations, opinions).

Retain, recall and reflect against isolated memory banks

Hindsight is a memory server for AI agents, released under the MIT license by Vectorize. An agent writes what it learns with retain, searches it with recall, and asks reflect for a reasoned answer over everything it knows. Every call targets a bank, an isolated store for one user, agent or project. On write, an LLM pulls facts, entities, relationships and dates out of the text, so recall works on that structure rather than on raw chat history. The server speaks REST, has Python, Node.js and Go clients, and exposes an MCP endpoint per bank.

Four retrievers, one ranking, beliefs revised in the background

  • Four searches per recall: vector similarity, BM25 keywords, entity-graph links and a date filter run in parallel, then reciprocal rank fusion and a cross-encoder rank the merged results. "What did Alice do last spring?" becomes a March-to-May range.
  • Observations: a background job folds related facts into deduplicated observations that keep their supporting quotes. New evidence strengthens, weakens or extends an observation instead of overwriting it.
  • Mental models: define a question once ("What are this user's preferences?") and Hindsight rewrites the answer as the bank grows. Reading it is a database read, with no LLM call.
  • Wrapper around the LLM client: wrap_openai() or wrap_anthropic() wraps the existing client, which then recalls memories before each call and retains the exchange afterwards.
  • 25+ LLM providers, with Ollama and LM Studio for local models.

Per-user chat memory, per-repo coding memory, Hermes plugin

  • Personalizing a chatbot: metadata set at retain time keeps each user's memories apart.
  • Giving coding agents one bank per repository, which hindsight-coding-agents builds from git history and past sessions.
  • Adding long-term memory to Hermes Agent, whose plugin catalog lists Hindsight as a memory provider, or to agents run from Paperclip.

Every write calls an LLM, and the API ships without auth

retain needs an LLM. Fact extraction and reflect both depend on one. With the none provider, retain stores plain text chunks, reflect returns HTTP 400 and observations are switched off. Neither Docker image bundles an LLM.

PostgreSQL 14+ with a vector extension, and a 9 GB image. The embedded Postgres started by default (pg0) is not recommended for production. The full Docker image is about 9 GB on AMD64 (3.7 GB on ARM64) because it carries the embedding and reranking models, and the API then needs at least 1.5 GB of RAM. The slim image is around 500 MB if both jobs go to an external provider.

No authentication by default. Requiring an API key on every request means turning on ApiKeyTenantExtension. The LLM wrapper writes to Hindsight Cloud, Vectorize's hosted service, unless hindsight_api_url points it at another server.

SSO and Memlake are Enterprise-only. SSO, enforced MFA, private networking and Memlake, which keeps memories in object storage, are available only in Hindsight Enterprise. Vectorize considers PostgreSQL a good fit up to roughly 50,000 memories per bank.

Aimed at agents that learn from their work. The README targets agents that handle open-ended tasks and change behavior based on feedback, and says Hindsight may be overkill for a simple n8n workflow.

LongMemEval scores reproduced outside Vectorize. The vendor claims state-of-the-art results on this benchmark. According to the README, its numbers were reproduced by Virginia Tech's Sanghani Center and The Washington Post, while competitors' scores are self-reported.

Version 1.0 since October 13, 2026. Version 1.1.0 followed on October 21, and ten releases shipped between July 29 and that date.