Sakhanda Wire
NVDA $214.72 -0.98% MSFT $483.24 +0.43% GOOGL $344.82 +1.22% META $549.90 +0.75% AMZN $258.63 -0.57%
← К новостям

Курс Decoding AI с открытым исходным кодом описывает три способа запуска цикла агента и экономику провайдеров каждого из них

Большинство команд считают важным решением выбор модели. Однако литература по разработке обвязки указывает в другом направлении. В эксперименте LangChain с Terminal-Bench изменение только обвязки — при использовании одной и той же модели на всём протяжении — подняло кодингового агента примерно с 30-го места в топ-5.

Этот результат меняет постановку вопроса. Если качество определяет обвязка, то то, как вы запускаете цикл, становится архитектурным решением, а не деталью развёртывания. В рамках курса Пола Иусзтина с открытым исходным кодом Создание кодингового агента с нуля разрабатывается Python-агент под названием Decode. Курс опубликован на платформе Decoding AI и разделяет три режима работы. Каждый режим характеризуется своим профилем задержки. Поэтому каждому из них нужен свой провайдер инференса.

Одно безголовое ядро, три формы

В центре системы находится безголовая обвязка, не имеющая собственного интерфейса. Внутри неё выполняется общий для всех обвязок цикл агента: LLM выбирает действие, инструмент его выполняет, а результат наблюдения передаётся обратно. Всё читается из контекстного окна и записывается в него.

Сам агент невелик. В Decode это определение Pydantic AI примерно на 20 строк, объединяющее модель, инструменты и тип выходных данных. В утёкшем исходном коде Claude Code основной цикл занимает примерно 150 строк. Всё остальное — память, навыки, песочница, разрешения, обратная связь LSP и компактизация — это обвязка.

Затем к этому ядру подключаются интерфейсы. Именно здесь появляются три режима:

Режим 1: интерактивный, онлайн

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

Главная сложность здесь — управление. Если ввести текст, пока выполняется вызов инструмента, немедленная инъекция сообщения нарушит текущий ход. Решение Decode — это очередь управления плюс приоритетный шлюз. Ввод буферизуется при поступлении и добавляется только на безопасной границе. Цикл предоставляет две такие границы: MODEL_REQUEST — перед следующим вызовом модели — и WOULD_STOP — когда выполнение хода должно завершиться.

Этим границам соответствуют три режима ввода. Обычный Enter позволяет управлять текущим ходом. Alt+Enter ставит последующее сообщение в очередь до остановки текущего хода. Esc запускает совместную отмену на следующей границе, очищая обе очереди, чтобы история оставалась целостной.

Человек читает каждый токен. Этот режим ограничен задержкой, поэтому для него подходит размещённый API с низкой задержкой.

Режим 2: удалённый, офлайн

Удалённый режим сохраняет безголовую обвязку и запускает её на сервере через среду выполнения агента. Decode использует Kitaru, среду выполнения агентов ZenML, развёрнутую в GCP, а сами агенты выполняются на Modal.

Никто не наблюдает за процессом. Очередь тикетов распределяется между N обвязками параллельно, и каждая создаёт свой PR. Поскольку среда выполнения записывает прогресс пошагово, песочница, завершившая работу в середине задачи, продолжает выполнение с последнего записанного шага, а не начинает заново. Если выполнение приостанавливается в ожидании ввода человека, оно останавливается и не потребляет вычислительные ресурсы.

Инструменты удалённо выполняются внутри песочниц Modal, а локально — в Docker. Важна не скорость получения первого токена, а производительность на доллар.

Режим 3: асинхронный, онлайн

Третья форма находится между двумя предыдущими. Активная сессия передаёт работу в очередь задач и немедленно возвращает управление. Фоновые рабочие процессы распределяют вызовы LLM и позднее отправляют результаты обратно.

Пользователь находится онлайн, но не наблюдает за каждым шагом. Работой управляет очередь, поэтому выполнение продолжается и после завершения работы клиента, который его запустил. Именно по такой схеме работают агенты, запускаемые через Slack, и фоновая проверка PR; оплачивается она как пакетная обработка, а не как чат.

Интерактивное объяснение

Почему провайдер меняется в зависимости от режима

Модель затрат определяется требованиями к задержке, и разница здесь велика.

Рассмотрим 1 000 документов по 30 000 входных токенов каждый и примерно 500 выходных токенов на документ. При тарифах передовых API — $3 за миллион входных и $15 за миллион выходных токенов — расчёт из урока даёт около $97. Кэширование промптов не спасает ситуацию, поскольку у каждого документа свой префикс. При пакетной обработке на бессерверном GPU со скоростью около 3 000 токенов в секунду та же работа занимает менее трёх часов машинного времени — примерно $13.

Обратный пример столь же показателен. Модель Decode по умолчанию для тестов, Qwen3.6 35B, работает на одном H200. В опубликованных тарифах Modal для H200 SXM указана цена $0,001261 в секунду, или около $4,54 в час. Если оставить интерактивного агента бездействовать на ночь в ожидании подтверждения y, десять часов простоя добавят к счёту примерно $45.

В этом и заключается весь аргумент. Интерактивная работа оплачивается за токены, поскольку человек ждёт результата. Офлайн- и асинхронная работа оплачивается за GPU-часы, поскольку целью является производительность, а простой — главный враг.

Есть и вторая ось: бессерверные ресурсы против зарезервированных мощностей. Анализ тарифов Modal сводит её к одному сравнению. При резервировании пиковая ставка взимается за весь срок контракта; бессерверная модель следует кривой спроса. Когда отношение пикового спроса к среднему превышает скидку за резервирование, бессерверная модель обходится дешевле. Modal сообщает о типичных скидках в 2–5 раз при отношении пикового спроса к среднему в 5–10 раз для инференса, обучения и разработки агентов. Согласно приводимым компанией отраслевым исследованиям, загрузка зарезервированных мощностей составляет менее 30%, а часто — менее 10%.

Основные выводы

  • Обвязка важнее модели: замена только обвязки подняла агента примерно с 30-го места в топ-5 на Terminal-Bench.
  • Интерактивный режим ограничен задержкой и управляется через очередь, опустошаемую на границах MODEL_REQUEST и WOULD_STOP.
  • Удалённый и асинхронный режимы ограничены производительностью, поэтому при больших объёмах оплата за GPU-часы выгоднее оплаты за токены.
  • 1 000 документов стоят около $97 по тарифам передовых API против примерно $13 за пакетное время работы GPU.
  • Бессерверная модель выигрывает, когда пиковый спрос превышает средний больше, чем скидка за резервирование: обычно это 5–10 раз против 2–5 раз.

Источники:

Переведено автоматически с английского. Оригинал статьи — по ссылке ниже.

Впервые опубликовано изданием MarkTechPost

Читать оригинал на MarkTechPost ↗

Текст и изображения принадлежат MarkTechPost и приводятся здесь с указанием авторства и ссылкой на оригинальную публикацию.

← К новостям

Ещё новости

Все последние новости