The reflect endpoint generates a synthesized, grounded response to a query by running an agentic reasoning loop over a memory bank. Unlike recall — which returns raw facts — reflect retrieves memories autonomously using multiple tools, applies the bank’s disposition traits and directives to shape the reasoning style, and produces a final answer written by the LLM. Mental models are checked first during retrieval, followed by observations, then raw facts.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.
To learn about disposition-driven reasoning and the agentic loop in depth, see the Reflect Architecture guide.
Endpoint
Request parameters
Your tenant identifier. Use
default for single-tenant deployments.The memory bank to reason over.
The question or prompt to reflect on. If you have situational context that should influence the answer, include it directly in the query rather than as a separate field.
Controls how thoroughly the agent explores the memory bank before answering. Accepted values:
low (shallow search, optimized for speed), mid (checks multiple sources when the question warrants it), high (deep exploration across all knowledge levels, uses multiple query variations to find indirect connections). Use high for complex questions that require synthesizing information from many sources.Limits the length of the final generated response. Does not affect how much the agent can retrieve during the agentic loop — only the final answer length.
An optional JSON Schema object. When provided, the LLM generates a response conforming to the schema and the response includes a
structured_output field with the result parsed accordingly. The text field will be empty. Use this when you need to process the response programmatically rather than display it as prose.Filters which memories the agent can access during reflection. Works identically to recall tags — only memories matching the specified tags are considered.
Controls tag filtering logic. Accepted values:
any, all, any_strict, all_strict. Same semantics as the recall endpoint.Compound boolean tag filters for advanced tag matching. Same structure as the recall endpoint’s
tag_groups parameter.Optional list of fact types to include during retrieval:
world, experience, observation. When omitted, all types are considered.When
true, excludes all mental models from the agentic loop. The agent falls back to raw recall and observations.Optional list of specific mental model IDs to exclude while allowing other mental models to be used.
Controls optional supplementary data returned alongside the main response.
Response fields
The synthesized answer as a well-formatted markdown string. This is the primary output of reflect. Empty when
response_schema is provided — use structured_output instead.The LLM’s response parsed according to the
response_schema provided in the request. Only present when response_schema was set. null otherwise.The sources the agent used to construct the answer. Only present when
include.facts was enabled.Token usage for all LLM calls made during the agentic loop.
Full execution log of the agentic loop. Only present when
include.tool_calls was enabled.Examples
Basic reflect
Reflect with budget and source attribution
Structured output
Tag-scoped reflect
Error codes
| Status | Code | Description |
|---|---|---|
400 | invalid_request | Malformed request body or missing required fields. |
401 | unauthorized | Missing or invalid API key. |
404 | bank_not_found | The specified bank does not exist. |
422 | validation_error | One or more parameters failed validation. |
429 | rate_limited | Too many requests. Retry with exponential backoff. |
500 | internal_error | Server error during the agentic loop. |
