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

Обзор памяти

CARL предоставляет цепочке три слоя состояния:

  1. Кратковременная память — хранилище ключ/значение с пространствами имён в контексте (context.memory[namespace][key]). Живёт один запуск.
  2. Метаданные сессии — произвольный context.metadata для пользовательских расширений.
  3. Долгосрочная память (LTM) — опциональный бэкенд между сессиями; см. LTM.

Плюс история — плоский список выводов шагов в порядке выполнения.

Внутри цепочки используйте memory-шаг (read / write / append / delete / list). Программно контекст предоставляет те же операции:

context.memory_write("analysis", value, namespace="results")
context.memory_read("analysis", namespace="results", default=None)
context.memory_append("log", entry, namespace="events")
context.memory_delete("analysis", namespace="results")
context.memory_list(namespace="results") # -> list of keys

Все принимают namespace="default", если не передать другое. Читайте память обратно в ссылках на шаги через $memory.namespace.key.

context.history — список выводов шагов; context.get_current_history() возвращает его как единую строку. Для длинных цепочек ограничьте её, чтобы не раздувать контекст:

ПолеТипПо умолчаниюНазначение
max_history_entriesint0Максимальное количество хранимых записей (0 = без ограничений).
trim_strategy"oldest" | "compress""oldest"oldest удаляет самые старые записи (FIFO); compress убирает подробные заголовки шагов, сохраняя содержимое результатов.
context = ReasoningContext(
outer_context=data,
api=client,
max_history_entries=20,
trim_strategy="compress",
)