Are you an LLM? Read llms.txt for a summary of the docs, or llms-full.txt for the full context.
Skip to content
Build with MuBit

Retrieve data

Use recall for answer-oriented retrieval and getContext for model-ready context assembly, with raw query only for explicit control.

MuBit exposes two default read patterns:

  • recall() when you want MuBit to answer a question from memory
  • getContext() / get_context() when you want a context block to send to your own model

Use raw control.query when you need explicit control over low-level request fields or want to debug wire-level behavior.

Retrieval decision model

NeedRecommended method
Answer a question from stored memoryrecall()
Build a prompt-ready context blockgetContext() / get_context()
Inspect memory quality and gapsdiagnose() and memoryHealth() / memory_health()
Explicit raw control over query payloadclient.query(...)
Compatibility-only direct lanesclient.core.* advanced routes when explicitly enabled

Helper-first retrieval examples

retrieve_helper.py
def retrieve_helper(client, run_id: str, question: str):
    answer = client.recall(
        session_id=run_id,
        query=question,
        entry_types=["fact", "lesson", "rule"],
    )
    context = client.get_context(
        session_id=run_id,
        query=question,
        mode="summary",
        max_token_budget=400,
    )
    return answer, context

What the helper path buys you

  • recall() uses the current control-plane query contract without you assembling the raw payload manually.
  • getContext() / get_context() gives you sectioned, cache-friendly context assembly with optional budget control.
  • diagnose() and memoryHealth() / memory_health() help you understand why retrieval is weak before you start changing prompts blindly.
ℹ️Note

The recall() / query response includes a citations array — 0-based indices into evidence marking which items grounded final_answer (empty when the answer abstains or cites no specific evidence). Use them to render source attributions or audit answer grounding.

Failure modes and troubleshooting

SymptomRoot causeFix
Answer ignores an important lessonEntry types or context budget too broadRestrict entry types and use getContext() budgeting
Retrieval feels noisyYou are mixing compatibility-only direct lanes with routed pathsStandardize one default read path per workflow
You need wire-level parity checksHelper abstracts too muchDrop to raw client.query(...) for that case

Next steps