When to Retrieve, When to Reflect

Hindsight gives an agent two ways to read its memory, and choosing between them is a question of responsibility rather than preference. recall returns ranked evidence; reflect searches memory and uses an LLM to synthesize a conclusion. This distinction helps an application decide when it needs facts, when it needs reasoning, and when an explicit failure is safer than a fluent answer built from incomplete evidence.

Recall returns evidence; reflect produces a conclusion

Recall is the cheaper and more direct path. It runs the retrieval pipeline described earlier—semantic, keyword, graph, and temporal search when enabled—then returns memory units ordered by relevance and packed to a token budget. It does not call an LLM to write an answer. The facts are the result. An application can place them into its own prompt, display them to a user, or pass them to deterministic code that needs to inspect exact dates, tags, or memory identifiers.

Reflect has a different job. It receives a question, decides which memory tools to call, gathers evidence, and asks an LLM to synthesize a response. The output is not simply the top few facts. It may summarize a pattern, compare alternatives, recommend an action, or answer a question that requires several memory layers. That extra reasoning is why reflect costs more and takes longer than a lookup. Project documentation describes recall as a frequent, low-cost operation and reflect as a slower, model-assisted one; the exact latency depends on the bank, provider, hardware, and configuration.

The difference can be made concrete with the retry-policy incident. Recall can return the facts that the policy changed, the service timed out, and a rollback followed. It is the right operation if a user asks for the request identifier, the date of the rollback, or the exact source memories. Reflect can answer a broader question such as whether the policy should be used again, because it can compare the incident with observations and other project evidence before writing a conclusion.

That does not make reflect a replacement for recall. Reflect uses retrieval as its grounding layer. A smooth answer is not evidence by itself; it is a synthesis over evidence that the reflect loop found. A healthy application often uses recall on ordinary turns and reserves reflect for moments when the user or workflow actually needs interpretation. The decision is not “simple versus advanced.” It is “evidence as output versus a conclusion drawn from evidence.”

sequenceDiagram participant A as Application participant R as Recall participant F as Reflect agent participant M as Memory layers participant L as Answer model A->>R: Ask for relevant facts R->>M: Run retrieval and reranking M-->>R: Ranked evidence R-->>A: Facts and optional source chunks A->>F: Ask for a conclusion F->>M: Search models, observations, and raw facts M-->>F: Tool results and evidence IDs F->>L: Synthesize grounded answer L-->>F: Answer, structured fields, and citations F-->>A: Conclusion or explicit failure

The same query can justify either path depending on the application's purpose.