Перейти к содержимому

Кэширование

Прикрепите StepCache к полю cache любого шага для мемоизации его результата. Перед выполнением шага DAG-исполнитель проверяет кэш в памяти; при попадании сохранённый результат возвращается без вызова LLM или инструмента.

Кэш находится на экземпляре DAGExecutor, поэтому он общий для всех батчей в рамках одного chain.execute() (полезно для циклов, повторно обходящих одни и те же входные данные) и сбрасывается при каждом новом запуске.

ПолеТипПо умолчаниюНазначение
ttlint | NoneNoneВремя жизни в секундах. None = не истекает в рамках запуска.
key_fnCallable[[ReasoningContext], str] | NoneNoneПользовательская функция ключа кэша. Ключ по умолчанию = номер шага + первые 256 символов outer_context.
from mmar_carl import LLMStepDescription, StepCache
LLMStepDescription(
number=2,
title="Classify intent",
aim="Classify the user intent.",
cache=StepCache(
ttl=300,
key_fn=lambda ctx: ctx.outer_context[:512],
),
)

Шаг является попаданием в кэш, когда для вычисленного ключа существует запись и она не истекла.