---
name: memory-deep-recall
version: 1.0.0
description: >
  LLM-callable tool that searches Chroma user_facts and session memories (semantic
  + recent recency list), optionally synthesises a brief via the Plugin LLM API.
  Operators tune limits and similarity from the dashboard (settings_schema).
author: furoshiki
active: false
hooks:
  - type: callable
    name: memory_deep_recall
    description: >
      Returns consolidated hits from learned user_facts, semantic search over the
      memories collection, optional recent memory summaries, and an optional LLM dossier.
    when_to_use: >
      When the user asks what was said or decided before, wants to recall past
      conversations, family or life events mentioned earlier, or needs a grounded
      recap from long-term memory. Call with a focused natural-language query.
    args_schema:
      type: object
      properties:
        query:
          type: string
          description: What to search for (people, topics, events).
      required:
        - query
    entry: scripts/recall.py
    timeout: 90
permissions:
  read_user_facts: true
  read_memories: true
  llm: true
  output_mind_queue: false
  network: false
  openrouter_web: false
settings_schema:
  - key: user_facts_n
    type: integer
    label: User facts — max hits
    description: Semantic search result cap for the user_facts collection (dashboard-tunable).
    default: 10
    min: 4
    max: 20
  - key: memory_semantic_n
    type: integer
    label: Memories — semantic max hits
    description: Max rows from GET /memories-search (Chroma memories collection).
    default: 10
    min: 4
    max: 20
  - key: recent_memories_limit
    type: integer
    label: Recent memory summaries
    description: How many newest session summaries to include (0 = skip recency list).
    default: 8
    min: 0
    max: 20
  - key: min_similarity
    type: string
    label: Minimum similarity
    description: Cosine similarity floor for semantic searches (e.g. 0.18 or 0.25).
    default: "0.18"
  - key: memory_max_text_chars
    type: integer
    label: Memory snippet max chars
    description: Truncation cap per memories-search hit (API max_text_chars).
    default: 600
    min: 200
    max: 2000
  - key: synthesize_dossier
    type: boolean
    label: Synthesise LLM dossier
    description: When enabled, runs a fast model to merge hits into a short brief (uses llm permission).
    default: true
  - key: dossier_max_tokens
    type: integer
    label: Dossier max tokens
    description: Output cap for the optional synthesis step.
    default: 512
    min: 128
    max: 2048
---

# Memory deep recall

Install under `$FUROSHIKI_DATA/plugins/memory-deep-recall/`, set `active: true`, run
`furoshiki plugins reload`, then ask recall-style questions in chat so the model can
invoke the **`memory_deep_recall`** tool.

**Permissions:** `read_user_facts` and `read_memories` gate the semantic HTTP endpoints;
`llm` is only needed when **Synthesise LLM dossier** is on.

**Tuning:** Dashboard → Work & extensions → Plugins → **Configure** on this plugin
(settings persist to `plugins/memory-deep-recall/settings.json`).

```bash
cp -r examples/plugins/memory-deep-recall "${FUROSHIKI_DATA:-$HOME/.furoshiki}/plugins/"
furoshiki plugins enable memory-deep-recall
furoshiki plugins reload
```
