Кэширование
Прикрепите StepCache к полю cache любого шага для мемоизации его результата. Перед
выполнением шага DAG-исполнитель проверяет кэш в памяти; при попадании сохранённый
результат возвращается без вызова LLM или инструмента.
Кэш находится на экземпляре DAGExecutor, поэтому он общий для всех батчей
в рамках одного chain.execute() (полезно для циклов,
повторно обходящих одни и те же входные данные) и сбрасывается при каждом новом запуске.
StepCache
Заголовок раздела «StepCache»| Поле | Тип | По умолчанию | Назначение |
|---|---|---|---|
ttl | int | None | None | Время жизни в секундах. None = не истекает в рамках запуска. |
key_fn | Callable[[ReasoningContext], str] | None | None | Пользовательская функция ключа кэша. Ключ по умолчанию = номер шага + первые 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], ),)Шаг является попаданием в кэш, когда для вычисленного ключа существует запись и она не истекла.