4.8 KiB
| sidebar_position | slug |
|---|---|
| 1 | / |
Overview
Why Hindsight?
AI agents forget everything between sessions. Every conversation starts from zero—no context about who you are, what you've discussed, or what the assistant has learned. This isn't just an implementation detail; it fundamentally limits what AI Agents can do.
The problem is harder than it looks:
- Simple vector search isn't enough — "What did Alice do last spring?" requires temporal reasoning, not just semantic similarity
- Facts get disconnected — Knowing "Alice works at Google" and "Google is in Mountain View" should let you answer "Where does Alice work?" even if you never stored that directly
- AI Agents need to consolidate knowledge — A coding assistant that remembers "the user prefers functional programming" should consolidate this into a mental model and weigh it when making recommendations
- Context matters — The same information means different things to different memory banks with different personalities
Hindsight solves these problems with a memory system designed specifically for AI agents.
What Hindsight Does
graph LR
subgraph app["<b>Your Application</b>"]
Agent[AI Agent]
end
subgraph hindsight["<b>Hindsight</b>"]
API[API Server]
subgraph bank["<b>Memory Bank</b>"]
direction TB
MentalModels[Mental Models]
MemEnt[Memories & Entities]
Chunks[Chunks]
Documents[Documents]
MentalModels --> MemEnt --> Chunks --> Documents
end
end
Agent -->|retain| API
Agent -->|recall| API
Agent -->|reflect| API
API --> bank
Your AI agent stores information via retain(), searches with recall(), and reasons with reflect() — all interactions with its dedicated memory bank
Key Components
Memory Types
Hindsight organizes knowledge into facts and consolidated mental models:
| Type | What it stores | Example |
|---|---|---|
| World | Objective facts received | "Alice works at Google" |
| Experience | Bank's own actions and interactions | "I recommended Python to Bob" |
| Mental Model | Consolidated knowledge from facts | "The user prefers functional programming patterns" |
Multi-Strategy Retrieval (TEMPR)
Four search strategies run in parallel:
graph LR
Q[Query] --> S[Semantic]
Q --> K[Keyword]
Q --> G[Graph]
Q --> T[Temporal]
S --> RRF[RRF Fusion]
K --> RRF
G --> RRF
T --> RRF
RRF --> CE[Cross-Encoder]
CE --> R[Results]
| Strategy | Best for |
|---|---|
| Semantic | Conceptual similarity, paraphrasing |
| Keyword (BM25) | Names, technical terms, exact matches |
| Graph | Related entities, indirect connections |
| Temporal | "last spring", "in June", time ranges |
Mental Model Consolidation
After memories are retained, Hindsight automatically consolidates related facts into mental models — synthesized knowledge representations that capture patterns and learnings:
- Automatic synthesis: New facts are analyzed and consolidated into existing or new mental models
- Evidence tracking: Each mental model tracks which facts support it
- Continuous refinement: Mental models evolve as new evidence arrives
Disposition Traits
Memory banks have disposition traits that influence reasoning during Reflect:
| Trait | Scale | Low (1) | High (5) |
|---|---|---|---|
| Skepticism | 1-5 | Trusting | Skeptical |
| Literalism | 1-5 | Flexible interpretation | Literal interpretation |
| Empathy | 1-5 | Detached | Empathetic |
These traits only affect the reflect operation, not recall.
Next Steps
Getting Started
- Quick Start — Install and get up and running in 60 seconds
- RAG vs Hindsight — See how Hindsight differs from traditional RAG with real examples
Core Concepts
- Retain — How memories are stored with multi-dimensional facts
- Recall — How TEMPR's 4-way search retrieves memories
- Reflect — How disposition influences reasoning
API Methods
- Retain — Store information in memory banks
- Recall — Search and retrieve memories
- Reflect — Reason with disposition
- Memory Banks — Configure disposition and mission
- Documents — Manage document sources
- Operations — Monitor async tasks
Deployment
- Server Setup — Deploy with Docker Compose, Helm, or pip