Skip to main content

Retrieval Tuning

Optimize memory retrieval for your use case.

Relevance Threshold

Control result quality vs. quantity:

{
"context": "user preferences",
"relevance_threshold": 0.7
}
ThresholdResults
0.3-0.5More results, lower precision
0.5-0.7Balanced
0.7-0.9Fewer results, higher precision

Max Memories

Limit the number of results:

{
"context": "...",
"max_memories": 5
}

Use fewer memories for:

  • Quick lookups
  • Specific questions

Use more memories for:

  • Comprehensive answers
  • Context building

Search Depth

Control how thoroughly the system searches for relevant memories:

{
"context": "...",
"search_depth": 0.7
}
DepthSearch CoverageBest For
0.0-0.3Fast (5-15% of memories)Simple queries, large datasets, latency-sensitive apps
0.3-0.7Balanced (15-50% of memories)Most use cases, good accuracy/speed tradeoff
0.7-1.0Thorough (50-100% of memories)Critical queries, high accuracy requirements

Trade-offs:

  • Higher depth = More accurate, slower, higher cost
  • Lower depth = Faster, cheaper, may miss some relevant memories

When to increase search depth:

  • Critical business decisions
  • Complex or nuanced queries
  • When initial results aren't satisfactory
  • Small to medium memory stores (< 10,000 memories)

When to decrease search depth:

  • Simple factual lookups
  • Large memory stores (> 100,000 memories)
  • Latency-sensitive applications
  • High-volume query scenarios

Query Phrasing

How you phrase queries affects results:

Query StyleBest For
Questions"What does the user prefer?"
Keywords"user preferences dark mode"
Statements"Finding information about user preferences"

Metadata Filtering

Pre-filter memories by metadata:

{
"context": "preferences",
"metadata_filter": {
"category": "preference"
}
}

Tips

  1. Be specific - Detailed queries get better results
  2. Use context - Include relevant background information
  3. Test thresholds - Find the right balance for your data
  4. Monitor relevance - Check relevance_score in responses