Mental models are saved reflect responses that you curate for your memory bank. When you create a mental model, Hindsight runs a reflect operation with your source query and stores the result. During future reflect calls, these pre-computed summaries are checked first — before observations and raw facts — providing faster, more consistent answers for common queries. During reflect, the agent checks sources in this priority order:Documentation Index
Fetch the complete documentation index at: https://mintlify.com/vectorize-io/hindsight/llms.txt
Use this file to discover all available pages before exploring further.
- Mental models — user-curated summaries (highest priority)
- Observations — consolidated knowledge synthesized over time
- Raw facts — ground truth memories
Create a mental model
Request parameters
Your tenant identifier. Use
default for single-tenant deployments.The memory bank to create the mental model in.
Human-readable name for the mental model (e.g.
"Team communication norms" or "Q4 project status").The query to run to generate the mental model’s content. This same query is used again on refresh.
Custom ID for the mental model. Must be lowercase alphanumeric with optional hyphens (e.g.
"team-policies", "q4-status"). Auto-generated UUID if omitted. If a mental model with that ID already exists, the request is rejected.Tags that scope the model during reflect and filter source memories during refresh. During refresh, uses
all_strict matching — only memories carrying every listed tag are read. During reflect, the model is visible only if the reflect request’s tags overlap with these tags.Maximum tokens for the mental model’s generated content.
Settings that control automatic refresh behavior.
Response fields
ID of the background reflect operation generating the mental model’s content. Poll
GET /operations/{operation_id} to check completion status.The mental model’s ID (auto-generated or the custom ID you provided).
Example
Create with custom ID and tags
List mental models
Query parameters
Controls how much data is returned.
"metadata" — only id, bank_id, name, tags, last_refreshed_at, created_at. "content" — all metadata fields plus source_query, content, max_tokens, trigger. "full" — all fields including reflect_response.Filter mental models by tag.
Example
Get a mental model
Response fields
Unique mental model ID.
Memory bank ID.
Human-readable name.
The query used to generate content.
The generated mental model text.
Tags for filtering.
Maximum tokens for the content.
Trigger settings for automatic refresh.
Full reflect response including
based_on provenance facts. Only present at detail=full.ISO 8601 timestamp of the last refresh.
ISO 8601 creation timestamp.
Example
Refresh a mental model
Example
Update a mental model
New human-readable name.
New source query. A
source_query change causes the next refresh to fall back to full mode (delta mode requires an existing structure to anchor edits on).New tag list. Replaces the existing tags entirely.
New maximum token limit for content.
New trigger settings.
Example
Delete a mental model
Example
Mental model history
Response fields
List of history entries.
Example
History tracking is enabled by default. Set
HINDSIGHT_API_ENABLE_MENTAL_MODEL_HISTORY=false to disable it.