Если под разные задачи у вас несколько моделей, хочется поставить между ними роутер: маленькую модель или эвристику, которая на каждом шаге решает, кого звать. Это интуитивно понятный ход, но у него есть фундаментальное ограничение.
В Replit пишут: какую бы продвинутую эвристику или маленькую модель вы ни поставили, роутер всегда будет слабее модели, для которой он выбирает.
Что сделали в Replit Agent
В Replit Agent выбор, какого субагента звать и с каким уровнем усилия, делает сам главный агент, его называют core loop. Он же по ходу задачи меняет и свой режим работы.
В качестве иллюстрации: GPT-6 Astra в этом режиме передаёт рутинную реализацию более дешёвым субагентам, а сама решает, куда тратить свои токены. На бенчмарках DeepSWE и Terminal-Bench Replit Agent оказался Pareto-эффективен относительно Astra самой по себе: ни один опубликованный базовый вариант Astra не был одновременно дешевле и сильнее. Та же схема, но с одним долгоживущим воркером вместо выбора субагентов, проиграла 11 и 16 пунктов.
Почему это работает
Жёстко зашитые эвристики ломаются на каждом релизе модели. В Replit заметили, что модели становятся сильнее в длинных задачах и всё меньше нуждаются в обвязке. Они сами тяготеют к делегированию: используют субагентов ради управления контекстом и параллелизма. Свежие результаты, включая задачу Навье–Стокса, во многом стали результатом координации роёв агентов на передовых моделях.
Но передний край неровный: лучшая модель для кода не обязательно лучшая для интерфейсов или писем. Поэтому в Replit проектируют обвязку так, чтобы каждая модель работала по-своему, с нужными ей ограничителями и целью «качество при минимальной цене».
Как применить
- Найдите в своём агенте место, где сейчас работает роутер: эвристика по длине запроса, по типу задачи, по ключевым словам. Выпишите его правила одной строкой и посмотрите, насколько они грубые.
- Сделайте у субагентов явные уровни: дешёвый для рутины, средний для большинства задач, дорогой для сложных. Опишите каждый уровень и его цену так, чтобы это прочитала модель, а не только человек.
- Дайте core loop инструмент, которым он сам выбирает уровень субагента. Никакой внешней логики сверху: модель сама решает, кого звать.
- Запустите один и тот же сценарий дважды: с роутером-эвристикой и с выбором от core loop. Сравните цену и качество, держите ту же модель на верхнем уровне в обоих вариантах.
- Если модель тратит токены на слишком дорогих субагентов, оставьте это и посмотрите логи. Если расход неоправдан, скорректируйте описания уровней, а не возвращайте роутер.