.agents/skills/recall/SKILL.md

3.5 KiB

name description user_invocable arg_hint builtin
recall Query persistent memory using hybrid search (vector + keyword). NOTE: Relevant memories are automatically injected at session start. Use /recall for targeted searches beyond current context. true search query true

/recall

Query persistent memory shared between all agents (claude-code, opencode, clawdbot) using hybrid search: 70% semantic vector similarity + 30% BM25 keyword matching.

When You Need This (And When You Don't)

At session start, Signet automatically injects relevant memories into your context — scored by importance, recency, and relevance to the current conversation. MEMORY.md is also regenerated periodically from the full database using decay-weighted scoring. For most interactions, the right memories are already present without any manual searching.

Use /recall when you need to:

  • Search for something specific that isn't in current context
  • Look up old decisions or past conversations
  • Debug whether a memory was actually captured
  • Find memories by type, tag, or date range
  • Explore what the system knows about a topic

You do NOT need /recall to:

  • Access recent memories (they're already injected)
  • Check if the system "remembers" something (it does, automatically)
  • Build session-start rituals (injection handles this)

syntax

/recall <search>

examples

/recall voice
/recall signet architecture
/recall preferences
/recall bun vs npm
/recall what did we decide about the API

implementation

Use the Signet CLI (requires running daemon):

signet recall "<search>" -l 10

Options:

  • -l, --limit <n> — max results (default: 10)
  • -t, --type <type> — filter by type (preference, decision, rule, etc.)
  • --tags <tags> — filter by tags (comma-separated)
  • --who <who> — filter by who saved it
  • --json — output as JSON for parsing

Example with filters:

signet recall "signet" --type preference --tags architecture -l 5

daemon required

The daemon must be running for recall to work. Check status:

signet status
curl -s http://localhost:3850/health

If the daemon is down, start it with signet start.

response format

The daemon returns:

{
  "results": [
    {
      "content": "agent profile lives at ~/.agents/",
      "score": 0.92,
      "source": "hybrid",
      "type": "fact",
      "tags": "signet,architecture",
      "pinned": true,
      "importance": 1.0,
      "who": "claude-code",
      "project": "/home/nicholai/signet",
      "created_at": "2026-02-15T20:38:00.000Z"
    }
  ],
  "query": "signet architecture",
  "method": "hybrid"
}

display format

After getting results, show them like this:

[0.92|hybrid] agent profile lives at ~/.agents/ [signet,architecture] [pinned]
       type: fact | who: claude-code | Feb 15

[0.78|hybrid] Signet uses SQLite for memory storage
       type: fact | who: opencode | Feb 14

[0.65|vector] Memory system supports hybrid search
       type: fact | who: claude-code | Feb 12

Score format: [score|source] where source is hybrid/vector/keyword.

configuration

Edit ~/.agents/config.yaml or ~/.agents/AGENT.yaml to adjust:

  • search.alpha: Vector weight (default 0.7)
  • search.top_k: Candidates per source (default 20)
  • search.min_score: Minimum score threshold (default 0.3)

follow-up

After showing results, offer to:

  • search with different terms
  • show memories by type: add "type": "preference" to the request
  • filter by date range or project