Создание долгоживущих агентов сводится к искусству управления контекстом: решению того, какая информация попадает в окно контекста и когда. Это означает обобщение старой истории, сжатие результатов работы крупных инструментов и извлечение нужных данных из длинных входных потоков. Каждый из этих шагов — это решение. Исторически мы принимали их с помощью LLM, что медленно и дорого при объемах, необходимых долгоживущему агенту.
Чтобы сделать эти решения быстрее и дешевле, теперь у нас есть интеграция langchain-scaledown и поддержка в LangSmith LLM Gateway для моделей с ограниченным декодированием (CDM) от ScaleDown. В то время как LLM общего назначения записывает любую строку по одному токену за раз, CDM обучается для одной задачи и возвращает только те ответы, которые эта задача допускает, например, метку из вашего списка или фрагменты входных данных. Это позволяет модели быть намного меньше, быстрее и дешевле: ScaleDown сообщает, что их модели в 200 раз быстрее и в 467 раз дешевле, чем передовые модели при выполнении этих узких задач.
Интеграция поставляется с тремя промежуточными программными компонентами (middleware) для LangChain и Deep Agents: один обобщает старую историю, другой сжимает результаты работы крупных инструментов, а третий извлекает структурированные данные из разговора. В этой статье мы расскажем, что представляют собой модели ScaleDown и как использовать их для уменьшения контекста вашего агента.
Какие модели предлагает ScaleDown?
ScaleDown предлагает четыре модели, каждая из которых обучена для одной задачи, поэтому каждая из них может быть гораздо эффективнее, чем LLM общего назначения:
- Summarize пишет краткое резюме длинного текста.
- Compress сокращает блок контекста до частей, относящихся к вопросу.
- Extract извлекает поля, которые вы описываете, из текста, каждое с оценкой достоверности и его позицией в исходном материале.
- Classify оценивает текст по заданным вами меткам и возвращает вероятность для каждой из них. Вы можете решить, нужно ли возвращать обоснование на естественном языке, почему была сделана такая классификация.
Каждая модель принимает до 1 млн токенов на входе, поэтому полный контракт, длинная страница политики или час истории агента помещаются в один вызов без разбиения на части. Они также мультимодальны: Extract, Summarize и Classify принимают изображения и отсканированные PDF-файлы напрямую в дополнение к неструктурированному тексту, поэтому скриншот или отсканированный счет-фактура работают как входные данные.
Согласно собственным бенчмаркам ScaleDown, измеренным по сравнению со средним показателем GPT-5.5, GPT-5.4 Mini и GPT-5.4 Nano на публичных наборах данных, Summarize в 41 раз дешевле и в 2,7 раза быстрее, а Compress в 138 раз дешевле и в 1,8 раза быстрее, при этом показывая более высокую точность для обоих.
Если вы использовали модель принятия решений, такую как Jev, ScaleDown Classify покажется вам знакомой: обе возвращают типизированный ответ с вероятностью. Jev занимает text only, up to 32K tokens состояния на вопрос. Classify принимает до 1 млн токенов, включая изображения, и добавляет обоснование в одно предложение к каждому решению. Когда агент направляет тикет или останавливает выполнение на основе метки, обоснование сообщает вам причину, что упрощает отладку агента.
Обобщение истории сообщений
Долгоживущим агентам требуется обобщение, потому что их история со временем перерастает окно контекста. У агента по написанию кода, который работал час, в истории есть десятки прочитанных файлов и выводов инструментов, большинство из которых ему больше не нужны дословно. Обобщение их с помощью еще одного вызова передовой модели каждый раз, когда история заполняется, увеличивает стоимость и задержку.
ScaledownSummarizationMiddleware заменяет встроенное промежуточное ПО для обобщения в Deep Agents. Оно использует те же параметры триггера и сохранения, чтобы решить, когда обобщать и какие недавние сообщения оставить, а ScaleDown пишет само резюме:
Агент сохраняет свою собственную модель для планирования и написания кода. Только резюме передается в ScaleDown, который по умолчанию возвращает те же разделы, что и подсказка для резюме LangChain (намерение, резюме, артефакты и следующие шаги). Если вызов ScaleDown завершается неудачей, промежуточное ПО оставляет историю как есть, и агент продолжает работать. То же самое промежуточное ПО работает с create_agent в LangChain.
Сжатие результатов работы инструментов
Долгоживущие агенты вызывают много инструментов, и каждый большой результат остается в контексте до конца выполнения. Полученная веб-страница может содержать десятки тысяч символов, когда агенту нужен только один абзац из нее. Каждый последующий шаг снова оплачивает эти токены, и агент хуже справляется с задачей по мере заполнения контекста.
ScaledownToolCompressionMiddleware добавляет необязательный параметр compression_query к вашим инструментам. Когда модели нужна только часть результата, она заполняет compression_query при вызове инструмента, например, "политика возврата для заказов из ЕС". Промежуточное ПО удаляет его перед запуском инструмента, а затем ScaleDown сжимает вывод до соответствующих частей, прежде чем модель увидит его:
Ваши инструменты не меняются, поэтому это работает с любым инструментом, включая инструменты MCP. В этой трассировке ScaleDown сократил длинную страницу документации почти на 90%, прежде чем модель увидела ее. Сжатый результат начинается с примечания, подобного этому, поэтому модель может снова вызвать инструмент без compression_query, если ей нужна полная страница:
Извлечение структурированных данных
Агенты постоянно извлекают конкретные значения из того, что они читают, например, ID, дату или поле, которое нужно для следующего вызова инструмента. Это извлечение находится внутри цикла агента, поэтому оно должно быть достаточно быстрым, чтобы не добавлять задержку на каждом шаге, и достаточно точным, чтобы инструмент мог использовать значение как есть.
Например, прежде чем агент поддержки сможет подать тикет, ему нужны номер заказа, сообщение об ошибке и адрес электронной почты клиента. Основная модель могла бы заполнить их в качестве аргументов инструмента, но она может перефразировать код ошибки или допустить опечатку в адресе электронной почты вместо того, чтобы скопировать его точно.
ScaledownExtractionMiddleware передает этот шаг в ScaleDown. Вы описываете каждое поле на простом языке, а Extract копирует значение из текста. Поле также может быть набором меток, на которые ScaleDown отвечает с помощью Classify, чтобы тикет можно было маршрутизировать по типу проблемы. Перед первым вызовом модели при выполнении промежуточное ПО отправляет сообщения пользователя в Extract и сохраняет поля в состоянии агента под ключом scaledown_extraction, где ваши инструменты могут их прочитать:
Extract читает только сообщения пользователя, никогда не читая ответы агента, поэтому каждое значение — это то, что клиент сказал на самом деле. С помощью контрольных точек (checkpointer) извлечение перезапускается на каждом шаге, поэтому запись заполняется по мере того, как клиент добавляет детали. Для сообщения "Заказ A-1042 не прошел с ERR_PAYMENT_DECLINED. Я уже пробовал другую карту.", поля возвращаются как:
Классификация отклонений
Агент решает свой следующий шаг на основе текущего состояния, например, выполнена ли задача или сработал ли последний вызов инструмента. Классификация этого состояния происходит на каждом шаге, поэтому она должна быть дешевой и быстрой.
Одно из состояний, которое стоит отслеживать в долгоживущих агентах, — это отклонение (дрейф): зацикливание на одном и том же неудачном вызове инструмента или застревание в непродуктивном цикле. Для этого нет готового промежуточного ПО, но вы можете вызвать любую модель ScaleDown из своего собственного пользовательского промежуточного ПО. Вот автоматический выключатель, который запускается после каждого вызова модели, отправляет историю в ScaleDown Classify и останавливает выполнение, когда агент сбивается с пути:
Classify возвращает вероятность для каждой метки, поэтому вы сами выбираете степень уверенности, необходимую для срабатывания прерывателя. Его причина в одну строку отображается в финальном сообщении, позволяя понять, почему выполнение было остановлено. Более мягкий вариант не завершает выполнение при первом срабатывании: он добавляет причину в диалог в качестве подсказки изменить курс и останавливается только в том случае, если агент снова отклоняется от нормы.
Эти четыре раздела демонстрируют лишь некоторые области применения моделей ScaleDown, и этот список не является исчерпывающим. Их можно комбинировать, например, запуская извлечение/суммирование для длинных результатов инструментов или классификацию для маршрутизации моделей во время выполнения. Ознакомьтесь с ScaleDown Cookbooks, чтобы узнать о других способах использования моделей CDM с различными типами данных.
ScaleDown в шлюзе LangSmith LLM
Шлюз LangSmith LLM позволяет вызывать модели разных провайдеров с помощью одного ключа API LangSmith, отслеживает каждый вызов и обеспечивает соблюдение лимитов расходов и частоты запросов. Теперь ScaleDown является одним из прямых провайдеров доступа к моделям по пути /scaledown.
Администратор один раз добавляет ваш ключ ScaleDown в секреты провайдеров рабочей области как SCALEDOWN_API_KEY. Затем укажите langchain-scaledown шлюз и выполните аутентификацию с помощью вашего ключа LangSmith:
После этого каждый вызов ScaleDown отображается в виде трассировки LangSmith и учитывается в тех же лимитах, что и вызовы других моделей.
Когда не стоит использовать ScaleDown
Сохраняйте универсальную LLM для генерации общего назначения, такой как написание кода, составление черновиков ответов и планирование. Это соответствует нашему подходу «дешево по умолчанию, передовые технологии в исключительных случаях» из наших постов о Jev: используйте большую универсальную LLM для сложных задач и специализированные модели для высоконагруженных шагов вокруг них.
ScaleDown работает достаточно быстро и стоит недорого, чтобы запускать его на каждом шаге, поэтому ваш агент может принимать структурированные решения, от которых зависит управление контекстом, не замедляя основной цикл и не оплачивая цены передовых моделей. В долго работающем агенте такие решения принимаются практически на каждом шаге, поэтому экономия накапливается быстро.
Начало работы
Установите интеграцию и задайте свой API-ключ ScaleDown:
Новые учетные записи получают 50 млн бесплатных токенов. В документации по интеграции ScaleDown описаны параметры конфигурации для каждого связующего ПО (middleware). Попробуйте langchain-scaledown и поделитесь своим мнением на форуме LangChain, в X или GitHub.









