recall()when you want MuBit to answer a question from memorygetContext()/get_context()when you want a context block to send to your own model
control.query when you need explicit control over low-level request fields or want to debug wire-level behavior.
Retrieval decision model
| Need | Recommended method |
|---|---|
| Answer a question from stored memory | recall() |
| Build a prompt-ready context block | getContext() / get_context() |
| Inspect memory quality and gaps | diagnose() and memoryHealth() / memory_health() |
| Explicit raw control over query payload | client.control.query(...) |
| Compatibility-only direct lanes | client.core.* advanced routes when explicitly enabled |
Helper-first retrieval examples
- Python
- Node / TS
- Rust
retrieve_helper.py
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()andmemoryHealth()/memory_health()help you understand why retrieval is weak before you start changing prompts blindly.
Failure modes and troubleshooting
| Symptom | Root cause | Fix |
|---|---|---|
| Answer ignores an important lesson | Entry types or context budget too broad | Restrict entry types and use getContext() budgeting |
| Retrieval feels noisy | You are mixing compatibility-only direct lanes with routed paths | Standardize one default read path per workflow |
| You need wire-level parity checks | Helper abstracts too much | Drop to raw client.control.query(...) for that case |
Next steps
- Inspect the helper and raw surface split at SDK methods.
- Review the full public control surface at Control HTTP reference.