Обзор памяти
CARL предоставляет цепочке три слоя состояния:
- Кратковременная память — хранилище ключ/значение с пространствами имён в контексте
(
context.memory[namespace][key]). Живёт один запуск. - Метаданные сессии — произвольный
context.metadataдля пользовательских расширений. - Долгосрочная память (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_entries | int | 0 | Максимальное количество хранимых записей (0 = без ограничений). |
trim_strategy | "oldest" | "compress" | "oldest" | oldest удаляет самые старые записи (FIFO); compress убирает подробные заголовки шагов, сохраняя содержимое результатов. |
context = ReasoningContext( outer_context=data, api=client, max_history_entries=20, trim_strategy="compress",)