Skip to main content
Recall turns stored context into the right context for a specific query. This page covers what recall is, the endpoints HydraDB exposes, the parameters that matter, and the patterns you’ll reach for in production. For request/response schemas, see the API reference: Full Recall, Memory Recall, Boolean Recall.

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
Reach for something else when:
  • 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 (RecallSearchRequestRetrievalResult). 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 to full_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.
  • graph_context defaults to false - set it to true to receive graph data in the response.
  • recency_bias defaults to 0 - no recency boost is applied unless you set it.

Top-level filter keys should be defined in tenant_metadata_schema with matching enabled. Undeclared filters are ignored, so plan filterable keys before your first ingestion.

See Create Tenant.

Tuning heuristics

  • alpha - Start at 0.8. Lower toward 0.3–0.5 when the query contains literal tokens (error codes, SKUs, product names). Raise toward 0.9 for conceptual questions. Use "auto" when the query shape varies.
  • recency_bias - Leave at 0 for static reference material. Set 0.2–0.4 for mixed content, 0.6–0.8 for changelogs, news, or status updates.
  • max_results - Start at 10. Drop to 5 for tight context windows; raise to 20 if 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 for fast (≤500ms).
  • Degrade gracefully. If memory recall fails or times out, continue with Knowledge only.
  • Pass additional_context with 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.