1. What is Recall
Recall returns the chunks most likely to help your agent succeed on a query - not just the chunks most textually similar to it. Pure vector search gives you similarity; recall gives you usefulness. HydraDB stores two kinds of context in separate vector stores:
A single recall call hits one store. To use both in one prompt, call the matching endpoint for each and merge the results.
When
graph_context is enabled, recall also traverses the context graph - a graph of relationships between stored context that HydraDB derives automatically from your data - so related material that pure similarity would miss can come back with the result.
2. When to use Recall
Use recall when you need:- Grounded answers from documents or app sources
- Personalized responses for a specific user
- Context-aware retrieval across multiple sources
- Deterministic metadata filtering combined with semantic search
- You need the full document, not ranked chunks → use
/fetch/content.
3. Types of Recall
HydraDB exposes three endpoints under/recall/*. Pick one based on what you need back.
full_recall and recall_preferences share the same request and response shape (RecallSearchRequest → RetrievalResult). boolean_recall accepts a smaller set of parameters and runs deterministic lexical matching - no graph traversal, no metadata filters.
To deliver a personalized answer, the canonical pattern is two parallel calls - full_recall for shared Knowledge, recall_preferences for the user’s Memories - merged into a single LLM prompt. See Minimal Working Example.
4. How Recall Works
The semantic recall endpoints (full_recall, recall_preferences) accept a mode:
thinking produces higher-quality results by expanding the query into sub-queries and reranking candidates. It also surfaces forceful-relation extras (extra_context_ids and the additional_context map on the response) when matching sources have them. fast skips both steps.
boolean_recall has no mode parameter - it always runs deterministic term matching.
Rule of thumb. If a human will read the result, use thinking. If a machine will filter it further or low latency is the priority, use fast.
5. Key Parameters
These apply tofull_recall and recall_preferences (RecallSearchRequest):
boolean_recall (FullTextSearchRequest) is intentionally narrower:
It does not accept
mode, alpha, recency_bias, graph_context, metadata_filters, or additional_context. If you need any of those, use a semantic endpoint.
Tuning heuristics
alpha- Start at0.8. Lower toward0.3–0.5when the query contains literal tokens (error codes, SKUs, product names). Raise toward0.9for conceptual questions. Use"auto"when the query shape varies.recency_bias- Leave at0for static reference material. Set0.2–0.4for mixed content,0.6–0.8for changelogs, news, or status updates.max_results- Start at10. Drop to5for tight context windows; raise to20if you rerank downstream.additional_context- Use it when the query alone is ambiguous. Keep it short and factual.
6. Minimal Working Example
The canonical personalized-answer flow: recall Knowledge, recall the user’s Memories in parallel, merge into one LLM prompt.Setup
Recall - Knowledge and Memories in parallel
Merge into the LLM prompt
Both calls return the same shape:chunks[], sources[], and (when applicable) graph_context and additional_context. Format each into a context string - the helper in How to Use API Results does this - and feed both into your prompt:
Production checklist
- Parallelize the two recall calls - they’re independent.
- Set per-call timeouts. Generous for
thinking(3–5s), tight forfast(≤500ms). - Degrade gracefully. If memory recall fails or times out, continue with Knowledge only.
- Pass
additional_contextwith known session state (page, feature, role). It can sharpen retrieval without requiring additional calls.
7. Common Mistakes
8. Advanced Patterns
Hybrid:boolean_recall + full_recall. When a query mixes a literal token (error code, SKU, function name) with natural-language intent, run both, dedupe by chunk_uuid, and treat boolean hits as a “must include” floor.
Recall-then-rerank. Request more chunks than you need (max_results: 20), then apply your own reranker - recency windows, compliance filters, business rules - before picking the final top-k for the prompt.
Related
- Memories - user-scoped dynamic context
- Knowledge - shared document context
- Metadata - designing filterable fields
- Context Graphs - how graph traversal enriches recall
- How to Use API Results - turning
RetrievalResultinto an LLM prompt