Дата публикации
ai_products

LangChain научил агентов сами сжимать контекст, когда это действительно нужно

Что появилось / что изменилось

LangChain обновил Deep Agents SDK на Python и CLI: теперь LLM-агенты могут сами решать, когда пора сжать контекст диалога.

Главные изменения:

  • В SDK появился отдельный middleware-инструмент create_summarization_tool_middleware, который агент может вызывать как обычный тул.
  • В Deep Agents CLI этот же механизм уже включён: пользователь по‑прежнему может вызвать /compact вручную, но теперь агент умеет запускать сжатие сам.
  • При сжатии Deep Agents сохраняет примерно 10% доступного контекста как «свежие» сообщения, а всё, что старше, сворачивает в краткое резюме.
  • Система по‑прежнему ориентируется на лимит контекста конкретной модели и начинает обычную автоматическую компрессию примерно на 85% этого лимита. Новая функция добавляет к этому ещё и «осознанные» вызовы от самого агента.

Разработчики протестировали функцию на:

  • собственной оценочной выборке с LangSmith-трейсами, где подмешивали дополнительные запросы после диалогов;
  • бенчмарке terminal-bench-2, где не зафиксировали ни одного случая самовольной компрессии;
  • реальных задачах программирования через Deep Agents CLI.

По их опыту агенты вызывают сжатие редко и в основном в удачные моменты — когда это помогает не упираться в лимит контекста позже.

Как это работает

Идея простая: вместо жёсткого триггера «на 85% токенов всё ужимаем» агент получает ещё один инструмент, который может вызвать по своему решению.

Под капотом это выглядит так:

  1. В create_deep_agent вы добавляете middleware:
    from deepagents import create_deep_agent
    from deepagents.backends import StateBackend
    from deepagents.middleware.summarization import (
        create_summarization_tool_middleware,
    )
    
    backend = StateBackend  # стандартное хранилище состояния
    model = "openai:gpt-5.4"
    
    agent = create_deep_agent(
        model=model,
        middleware=[
            create_summarization_tool_middleware(model, backend),
        ],
    )
    
  2. В системном промпте агент получает инструкцию, в каких ситуациях стоит запускать этот тул.
  3. Когда агент решает сжать контекст, он делает «вызов инструмента».
  4. Middleware берёт историю диалога, оставляет последние 10% доступного контекста как есть, а остальное сворачивает в суммаризацию прогресса по задаче.
  5. Виртуальная файловая система Deep Agents хранит полную историю, так что при необходимости можно восстановить детали, потерянные при сжатии.

В CLI всё ещё проще: вы можете вручную вызвать /compact, а агент — использовать тот же механизм сам.

Что это значит для вас

Если вы используете Deep Agents для кода, ресёрча или длинных сессий, эта функция решает две типичные проблемы:

  1. Контекст забивается мусором. Длинные обсуждения, неудачные подходы и старые требования висят в истории и мешают модели. Автономная компрессия превращает это в аккуратное резюме.

  2. Сжатие «не вовремя». Жёсткий порог по токенам часто срабатывает в худший момент — например, посреди сложного рефакторинга. Теперь агент может дождаться логической точки: завершение плана, конец большой выборки документов, переход к новой задаче.

Когда инструмент особенно полезен:

  • вы заканчиваете одну задачу и переходите к следующей в том же чате;
  • агент прогнал через себя большой объём контента (документация, логи, ресёрч) и получил итоговый вывод;
  • вы собираетесь запускать длинную операцию: рефакторинг, миграцию, многофайловое редактирование;
  • появились новые требования, которые делают старый контекст менее важным.

Когда лучше не полагаться только на него:

  • если вы решаете юридические, финансовые или другие чувствительные задачи, где важна каждая деталь истории — лучше контролировать компрессию руками и хранить оригинальные данные отдельно;
  • если вы только тестируете Deep Agents и не уверены в поведении агента, можно сначала поработать только с ручным /compact.

Deep Agents и LangChain официально доступны через открытый интернет. Для пользователей в России может понадобиться VPN, как и для работы с большинством API OpenAI.

Место на рынке

Подход LangChain отличается от привычной схемы «фиксированный порог + агрессивное сжатие истории» в большинстве IDE-плагинов и чат‑ботов для кода.

Здесь важно другое:

  • Deep Agents уже умел автоматически сжимать контекст на уровне middleware при достижении ~85% лимита модели.
  • Новая функция добавляет поверх этого управляемое самим агентом сжатие на логических границах задач.

Разработчики прямо показывают, что в terminal-bench-2 агенты вообще не вызывали автономную компрессию. Это значит, что система настроена осторожно и не стремится «экономить токены любой ценой».

Напрямую сравнивать скорость или стоимость с GPT-4o, Claude 3.5 или другими агентными фреймворками здесь некорректно: речь идёт не о новой модели, а о способе работы с её контекстом. Функция интересна тем, кто уже строит агентные системы на базе LangChain и хочет меньше ручной настройки порогов и хаков вокруг контекстного окна.


Читайте также

LangChain научил агентов сами сжимать контекст, когда это действительно нужно — VogueTech | VogueTech