Перейти к содержимому
Экосистема AI Vibe

Новости

Context rot в длинных агентах: пять приёмов Deep Agents от LangChain

Редакция 14 октября 2026 г.

Длинная агентская сессия отбрасывает тяжёлые ответы tools в файловое хранилище, оставляя в окне модели только превью и путь.

На длинном прогоне агент тащит в каждый вызов модели инструкции, ответы tools и промежуточные черновики — так накапливается context rot, и рассуждение размывается. Открытый harness Deep Agents от LangChain встраивает middleware в цикл «модель → tool → результат» и убирает лишнее из активного окна в файлы и сводки, не выкидывая данные насовсем.

Память там — обычные текстовые файлы в хранилище, которым управляете вы: сменить модель или провайдера можно, не теряя выученные правила. Техники вешаются на middleware в точках цикла — до старта, вокруг вызова модели и вокруг tool call; базовый набор уже в каркасе, пороги при необходимости настраиваются.

Пять приёмов

  • Offloading — крупные ответы tools и длинные сообщения пользователя сохраняются на диск; модель видит короткое превью и путь к файлу.
  • Summarization — когда история подбирается к лимиту окна, старые сообщения сжимаются в summary, свежие ходы остаются дословно.
  • Skills — знания по задаче лежат в папках с SKILL.md; полный текст подгружается только если модель решает, что skill нужен (progressive disclosure).
  • Subagents — шумная работа идёт в отдельном окне, родитель получает только итог — например три буллета вместо сырого отчёта по рынку.
  • Long-term memory — предпочтения и правила пишутся в markdown и переживают следующий запуск.

Как срабатывают пороги

FilesystemMiddleware срабатывает на каждом tool call: результат больше примерно 20 000 токенов уходит в /large_tool_results/{tool_call_id}, в контекст попадают первые и последние строки плюс путь — дальше агент дочитывает через read_file. Очень длинные сообщения пользователя (порог около 50 000 токенов) сохраняются в /conversation_history/.

SummarizationMiddleware перед вызовом модели смотрит заполнение окна: при 85% по умолчанию отдельный проход LLM сжимает старые сообщения, а сырые версии пишутся в /conversation_history/{session_id}.md — деталь с раннего шага можно восстановить. Память между сессиями — тот же файл в вашем store: create_deep_agent вызывают с memory=["/memories/AGENTS.md"] и другим провайдером модели, не сбрасывая накопленное вроде «сводку списком, не абзацами».

Источник: Context Engineering with Deep Agents: How To Remember Without Keeping Everything In Context.