Skip to content

symfonic.capabilities.tools.results.recall

recall

Recall — bringing an offloaded payload back (T3.1.3).

Offload is only safe because recall exists, and recall is only usable because it never raises. The framework hands the model a tool; the model authors the arguments, including hallucinated ones. Every failure mode here — a bad mem_id, a ledger that is down, a ledger too old to support keyed slices — has to come back as a sentence the model can read and recover from.

Two rules the shape encodes:

  • a keyed slice implies a full fetch. A summary cannot be sliced, so asking for one and then applying a key would return the one-liner and look exactly like a key that matched nothing.
  • the output is capped. Even a misconfigured recall of a 5MB payload cannot blow the next iteration's context window.

RecallService

RecallService(ledger: Any)

Fetch a recorded tool result back from a ledger, defensively.

Source code in src/symfonic/capabilities/tools/results/recall.py
def __init__(self, ledger: Any) -> None:
    self._ledger = ledger