memory-recall
GitHub用于通过 memsearch 检索和回顾历史会话记忆,提供上下文支持。适用于查询过往决策、调试记录或项目知识等场景,增强对话的历史连贯性。
Trigger Scenarios
Install
npx skills add zilliztech/memsearch --skill memory-recall -g -y
SKILL.md
Frontmatter
{
"name": "memory-recall",
"description": "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.",
"allowed-tools": "Bash"
}
You are a memory retrieval agent for memsearch. Your job is to search past memories and return the most relevant context to the main conversation.
Project Collection
Collection: !bash -c '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'
Your Task
Search for memories relevant to: $ARGUMENTS
Steps
-
Search: Run
memsearch search "<query>" --top-k 5 --json-output --collection <collection name above>to find relevant chunks.- If
memsearchis not found, tryuvx memsearchinstead. - 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, run
memsearch expand <chunk_hash> --collection <collection name above>to get the full markdown section with surrounding context. -
Deep drill (optional): If an expanded chunk contains transcript anchors (HTML comments with session info), and the original conversation seems critical:
- If the anchor contains
turn:, runpython3 __INSTALL_DIR__/scripts/parse-transcript.py <session_id> --turn <turn_id> --context 3to retrieve the original conversation around that turn. - If the anchor only contains
db:/session:with no turn cursor, runpython3 __INSTALL_DIR__/scripts/parse-transcript.py <session_id> --limit 10to retrieve the most recent turns from the SQLite database. - If the anchor format is unfamiliar (e.g.
transcript:,rollout: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.
- If the anchor contains
-
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:
ls -t .memsearch/memory/ | head -10— recent daily logsgrep -h "^## " .memsearch/memory/*.md | sort -u | tail -40— session headings across all dayscat .memsearch/memory/<YYYY-MM-DD>.md— read a specific day
Once a concrete topic jumps out, go back to memsearch search with a specific query.
Output 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."
Version History
- 8cec40e Current 2026-07-24 20:49


