What it does
Performs a comprehensive semantic search across all memory stores and categories for a given topic, returning all matching memories ranked by strength and relevance. Use this when you want an overview of everything known about a subject, without pre-filtering by store, category, or recency.Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| topic | string | Yes | — | The topic to scan. Minimum 3 characters. |
| stores | string[] | No | — | Filter by memory store(s): sensory, episodic, semantic, procedural, prospective. If omitted, searches all stores. |
| tags | string[] | No | — | Filter by tag(s). Only memories with at least one matching tag are returned. |
| limit | number | No | 20 | Maximum number of memories to return. Range: 1-20. |
Returns
summary— Concatenation of the top 3 memory titles, separated by semicolonsmemoryCount— Total number of matching memoriestopMemories— Top 5 memories ranked by strength, with full detailsstrength— Numeric score (0–1) indicating how relevant the memory is to the topicconfidence— AI confidence score from when the memory was extracted (0–1)
Examples
Basic usage
Advanced usage
When to use this vs alternatives
crystal_what_do_i_know— When you want a complete overview of a topic across all stores/categoriescrystal_recall— When you need fast, ranked retrieval of relevant memories before respondingcrystal_search_messages— When you want to search message content by keyword, not semantic topiccrystal_recent— When you need recent messages only, not full-memory topic scanscrystal_why_did_we— When you want to understand reasoning behind a specific decision, not a general topic overview
Error handling
| Error | Cause | Resolution |
|---|---|---|
| topic is required | Missing or empty topic string | Provide a topic with at least 3 characters |
| topic too short | Less than 3 characters | Expand the topic (e.g., “DB design” → “Database design for session storage”) |
| Invalid store value | Not one of the 5 allowed stores | Use: sensory, episodic, semantic, procedural, or prospective |
| tags is not an array | Malformed tag input | Pass tags as ["tag1", "tag2"] |
| limit out of range | Not a number or outside 1-20 | Use a number between 1 and 20 (default 20) |
| Embedding service unavailable | OpenAI or vector database offline | Retry; check network and OPENAI_API_KEY |
| No matches found | Topic returns zero results | Not an error — returns empty array. Try a broader topic. |
| Authentication failed | Invalid Convex JWT or API key | Verify auth configuration in Convex client setup |
Notes
- The tool performs full-text semantic search, so results are ranked by relevance, not exact keyword match.
storesandtagsfilters are AND-combined with the semantic search (both must match if provided).topMemoriesincludes the top 5, but the full count is reported inmemoryCount.- The formatted output includes a defense header to prevent accidental instruction injection.
- Memory strength values are relative to the query; different queries will produce different strength scores for the same memory.
- If multiple memories have identical titles, the top one by strength is included; duplicates are filtered.
