When you callDocumentation 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.
reflect(), Hindsight does more than retrieve facts — it runs an agentic loop that autonomously gathers evidence, reasons through it using the bank’s disposition, and generates a synthesized response with citations. Where recall() returns a ranked list of memories for your code to act on, reflect() produces a finished answer shaped by the bank’s identity and hard rules.
How reflect differs from recall
Use recall() when… | Use reflect() when… |
|---|---|
| You need raw facts to process yourself | You need a reasoned, written response |
| You are building your own reasoning layer | You want the bank to reason independently |
| You need maximum control over output | You want disposition-consistent character |
| Simple fact lookup or context injection | Forming recommendations or interpretations |
recall("Alice") returns all facts and observations about Alice, scored by relevance. reflect("Should we hire Alice?") returns a written recommendation grounded in those facts, shaped by the bank’s skepticism level and any directives like “Always cite sources.”
The agentic loop
reflect() runs an agent with access to four tools. The agent calls them autonomously until it has enough evidence to answer, then calls done with the final response.
| Tool | Purpose |
|---|---|
search_mental_models | Check user-curated summaries first |
search_observations | Query consolidated knowledge |
recall | Retrieve raw facts as ground truth |
expand | Get additional context for a specific memory |
Mental Models
User-curated summaries you have pre-computed for common queries. Checked first — if a mental model exists, it represents explicitly managed knowledge and takes priority.
Observations
Automatically consolidated beliefs built from multiple facts. Each observation carries a freshness trend. If an observation is marked stale, the agent automatically verifies it against current raw facts before using it.
Mission, disposition, and directives
Three bank-level settings shape howreflect() reasons and responds. All three only affect reflect() — they have no effect on retain() or recall().
Mission
A first-person narrative that gives the agent its identity and reasoning context. It is injected at the start of every reflect call to ground the agent’s perspective.Disposition traits
Three numeric traits (scale 1–5) that shape how the agent interprets information and frames its response.| Trait | Low (1) | Default (3) | High (5) |
|---|---|---|---|
| Skepticism | Trusting — accepts claims at face value | Balanced | Skeptical — questions and doubts claims |
| Literalism | Flexible — reads between the lines | Balanced | Literal — takes things exactly as stated |
| Empathy | Detached — focuses on facts and logic | Balanced | Empathetic — weighs emotional context |
- Low skepticism, high empathy: “Remote work enables flexibility and work-life balance. The team seems happier and more productive when they can choose their environment.”
- High skepticism, low empathy: “Remote work claims need verification. What are the actual productivity metrics? The anecdotal benefits may not translate to measurable outcomes.”
Directives
Hard rules injected into every reflect prompt that the agent must follow. Unlike disposition traits, which influence tone and interpretation, directives are enforced strictly. Use directives for compliance guardrails that must never be violated:- “Never recommend specific stocks or financial products”
- “Always respond in formal English”
- “Never share personal data with third parties”
- “Always cite sources when making factual claims”
Parameters
The question or prompt the agent should answer.
When
true, the response includes a based_on field listing the memories, mental models, and directives the agent actually used. Useful for transparency and citation tracking.JSON Schema for structured output. When provided, the agent produces a response that conforms to the schema and it is returned in
structured_output.Code examples
Response structure
reflect_mission, disposition traits, and directives only affect reflect(). To steer what gets extracted during retain(), set retain_mission on the bank. To control what gets synthesized into observations, set observations_mission. See Memory banks for all configuration options.