memory-recall
Original:🇺🇸 English
Translated
Search and recall relevant memories from past sessions via memsearch. Use when the user's question could benefit from historical context, past decisions, debugging notes, previous conversations, or project knowledge -- especially questions like 'what did I decide about X', 'why did we do Y', or 'have I seen this before'. Also use when you see `[memsearch] Memory available` hints injected via SessionStart or UserPromptSubmit. Typical flow: search for 3-5 chunks, expand the most relevant, optionally deep-drill into original transcripts via the anchor format. Skip when the question is purely about current code state (use Read/Grep), ephemeral (today's task only), or the user has explicitly asked to ignore memory.
2installs
Sourcezilliztech/memsearch
Added on
NPX Install
npx skill4agent add zilliztech/memsearch memory-recallTags
Translated version includes tags in frontmatterSKILL.md Content
View Translation Comparison →You are performing memory retrieval for memsearch. Search past memories and return the most relevant context to the current conversation.
Project Collection
Determine the collection name by running:
bash -c 'if [ -n "${MEMSEARCH_DIR:-}" ]; then bash __INSTALL_DIR__/scripts/derive-collection.sh "$MEMSEARCH_DIR"; else root=$(git rev-parse --show-toplevel 2>/dev/null || true); if [ -n "$root" ]; then bash __INSTALL_DIR__/scripts/derive-collection.sh "$root"; else bash __INSTALL_DIR__/scripts/derive-collection.sh; fi; fi'Steps
-
Search: Runto find relevant chunks.
memsearch search "<query>" --top-k 5 --json-output --collection <collection name from above>- If is not found, try
memsearchinstead.uvx memsearch - Choose a search query that captures the core intent of the user's question.
- If
-
Evaluate: Look at the search results. Skip chunks that are clearly irrelevant or too generic.
-
Expand: For each relevant result, get the full context using one of these methods:
- Primary: Run to get the full markdown section.
memsearch expand <chunk_hash> --collection <collection name from above> - Fallback (if expand fails with a lock/permission error due to sandbox): Read the source file directly. The search results include (file path) and
source/start_line— useend_lineor read the relevant line range to get the full context. This avoids the Milvus lock file issue.cat <source_file>
- Primary: Run
-
Deep drill (optional): If an expanded chunk contains transcript anchors (HTML comments with session/rollout info), and the original conversation seems critical:
- Run to retrieve the original conversation turns.
bash __INSTALL_DIR__/scripts/parse-rollout.sh <rollout_path> - If the anchor format is unfamiliar (e.g. +
transcript:,turn:instead ofdb:), try reading the referenced file directly to explore its structure and locate the relevant conversation by the session or turn identifiers in the anchor.rollout:
- Run
-
Return results: Output a curated summary of the most relevant memories. Be concise — only include information that is genuinely useful for the user's current question.
When unsure what to search
If the user's question is vague or you can't form a concrete search query, explore the raw markdown first — it is the source of truth for memory:
- — recent daily logs
MDIR="${MEMSEARCH_DIR:-$(git rev-parse --show-toplevel 2>/dev/null || pwd)/.memsearch}"; ls -t "$MDIR/memory/" | head -10 - — session headings across all days
MDIR="${MEMSEARCH_DIR:-$(git rev-parse --show-toplevel 2>/dev/null || pwd)/.memsearch}"; grep -h "^## " "$MDIR/memory/"*.md | sort -u | tail -40 - — read a specific day
MDIR="${MEMSEARCH_DIR:-$(git rev-parse --show-toplevel 2>/dev/null || pwd)/.memsearch}"; cat "$MDIR/memory/<YYYY-MM-DD>.md"
Once a concrete topic jumps out, go back to with a specific query.
memsearch searchOutput Format
Organize by relevance. For each memory include:
- The key information (decisions, patterns, solutions, context)
- Source reference (file name, date) for traceability
If nothing relevant is found, simply say "No relevant memories found."