Skip to content
Docs menu

Tool reference · Save & recall

memory_recall_iterative

Answers multi-step questions by splitting them into sub-questions, searching for each, and letting an LLM planner decide when enough evidence has been found.

local stdio server read-only
Caution. Needs an LLM provider for decomposition and planning; each iteration adds at least one LLM call, so it is much slower than memory_recall.

When to use

  • The question needs facts from several records chained together ("which service did the person who wrote the auth module move to?").
  • A single memory_recall returns only part of what you need.
  • You want to see which sub-queries were run and what each one found.

Parameters

NameTypeDefaultDescription
queryrequired string — —
project string — —
max_iters integer 4 (min 1, max 12)
k_per_iter integer 10 (min 1, max 50)
llm_model string "configured" —

Example

Arguments

{
  "query": "Why did we move the billing job off Redis, and what replaced it?",
  "project": "my-api",
  "max_iters": 3,
  "k_per_iter": 5
}

Result shape

{
  "query": "Why did we move the billing job off Redis, and what replaced it?",
  "iterations_used": 2,
  "terminated_reason": "converged",
  "sub_queries": [
    "billing job Redis lock problem",
    "billing job lock replacement"
  ],
  "partial_answers": [
    "The Redis lock expired mid-run twice."
  ],
  "evidence_count": 2,
  "evidence": [
    {
      "id": 1842,
      "type": "decision",
      "project": "my-api",
      "content": "Use PostgreSQL advisory locks for the nightly billing job…",
      "score": 0.91
    }
  ],
  "provenance": {
    "iters": [],
    "elapsed_ms": 1840.2,
    "evidence_count": 2
  }
}

terminated_reason is one of converged, max_iters, no_progress, decomposer_empty, search_error or planner_error.

Values are illustrative; the keys follow the server's handler. MCP clients receive the result as JSON text content.

Server description

The description the server sends to your agent in tools/list, captured from the v14.7.0 source:

IRCoT-style iterative retrieval. Decomposes the query into sub-questions, retrieves per sub-question, and asks a planner LLM whether more retrieval is needed. Best for multi-hop questions. Returns unified evidence + provenance per iteration.

Found a mistake? Open an issue on GitHub.

Search