Tvijo wiki
Каталог

Темы

Лестница исполнителей: сначала дешёвый, наверх — только с причиной

Кто делает задачу, должно следовать из вида задачи, а не из настроения. Начинайте с самого дешёвого уровня, который справится, и разрешайте подъём только по причине из короткого закрытого списка. Записывайте причину, чтобы потом посчитать, изменил ли старший вызов хоть что-то.

🎯 Для Руководитель команды, который распределяет работу между скриптами, дешёвыми и старшими моделями

📚 Вы узнаете
  • Четыре уровня от скрипта до старшего арбитра
  • Почему подъём требует кода причины и как выглядит список
  • Как измерить, окупается ли подъём

🪜 Идея

Без правила работа сама сползает к самому способному исполнителю, потому что ему доверяют. Он же самый дорогой и медленный. Лестница заменяет привычку правилом: у каждого класса задач есть входной уровень и потолок, и выбор делает код, а не модель.

Уровней у нас четыре. Нулевой — вообще без модели: линтер, скрипт, запрос к базе. Первый — недорогая модель для объёма. Второй — модель среднего уровня для более сложных одиночных задач. Третий — старший арбитр для редких решений.

🔑 Подъём требует причины

Шаг выше входного уровня разрешён только с одним из пяти кодов причины: детерминированная проверка не прошла, два младших запуска разошлись, задача — архитектурное решение, задача касается денежного пути или об этом попросил оператор. Любая другая причина отклоняется. «На всякий случай» в списке нет, потому что именно так дорогой исполнитель и оказывается делающим всё.

Две детали важны. Там, где задача — чистая проверка, упавшая проверка — это факт, а не повод звать старшего: скрипт сказал «нет», поэтому устраняйте причину. (Работа младшего, не прошедшая детерминированную проверку, — другой случай, и это одна из пяти причин.) А причина записывается в трассу вызова, чтобы леджер мог сказать не только, сколько стоил подъём, но и почему он случился.

📏 Потолки по измерению

Потолки стоимости вызова — не догадки. Мы взяли наибольшую наблюдённую стоимость вызова из тридцати дней трасс и поставили потолок вдвое выше для первого уровня и вчетверо — для второго и третьего. Потолок — детектор сбега, а не прайс: он ловит цикл задолго до счёта.

🔬 Что показывает леджер

Наш измеряющий транспорт записывает уровень и причину подъёма каждого вызова. На 3 ноября 2026, 21:53 UTC в нём было 10 062 строк первого уровня общей стоимостью $15,76 и 32 строк третьего уровня стоимостью $0,38. У второго уровня строк 0. 54 строк не имеют уровня; все они укладываются в три минуты 22 сентября 2026. Причина подъёма указана лишь у 18 строк, все — «просьба оператора», и стоят они на строках первого уровня. Ни у одной из 32 строк третьего уровня причины нет.

Это пробел в нашей собственной практике, найденный при написании страницы. Правило гласит, что вызов старшего требует кода причины, а леджер показывает вызовы старшего без неё. Мы ещё не выяснили, обошли ли эти вызовы маршрутизатор или были записаны до того, как поле стало обязательным, и гадать здесь не будем. Урок — сверять свой журнал со своим же правилом.

📉 Правило прекращения

Заранее мы решили, что закончит лестницу. Считаем долю вызовов второго и третьего уровня, изменивших результат. Если она остаётся ниже двадцати процентов шестьдесят дней, лестница схлопывается до двух уровней: старшие вызовы себя не окупают. Достаточно эскалаций для применения правила мы пока не собрали и говорим об этом прямо.

🛠️ Практика: напишите свою лестницу

  1. Перечислите классы задач, например: проверить файл, резюмировать тикет, просмотреть дизайн.
  2. Для каждого выберите входной уровень и потолок. Везде, где решить может скрипт, ставьте нулевой уровень первым.
  3. Напишите закрытый список причин подъёма. Не длиннее пяти.
  4. Пусть маршрутизатор отклоняет любой подъём без причины из списка и пишет причину в трассу вызова.
  5. Задайте потолки стоимости вызова по наибольшей реально виденной цене.
  6. Выберите правило прекращения и дату до начала.

✅ Проверьте себя

  • Запросите вызов старшего без причины. Маршрутизатор отказывает.
  • Вы можете перечислить подъёмы прошлой недели и причину каждого. Если у вызова старшего причины нет, вы знаете почему.
  • Упавший прогон линтера не запускает вызов модели.
  • Вы можете назвать долю вызовов старшего, изменивших результат, или сказать, что пока не можете.

🚧 Когда это не работает

  • Слишком мало подъёмов. Правило про «долю, изменившую результат» требует выборки. При таком малом числе записанных причин это лишь тенденция.
  • Причины, ставшие привычкой. Если каждый вызов пишет «архитектурное решение», список — украшение. Пересматривайте причины ежемесячно.
  • Трудные задачи, которые стартуют сложными. Некоторые классы должны входить на высоком уровне. Скажите это в конфигурации.
  • Дешёвый уровень, наносящий вред. Недорогая модель на задаче, требующей суждения, экономит мало и стоит доверия.
  • Лестница без леджера. Если не писать уровень и причину, научиться ничему нельзя.

📊 Доказательства

Что измерено Строки, стоимость, уровень и причина подъёма в леджере нашего измеряющего транспорта
Когда 3 ноября 2026, 21:53 UTC
Артефакт База данных леджера транспорта: 10 062 строк первого уровня, 32 строк третьего, 18 строк с причиной; файл конфигурации лестницы и его тест
Ограничение Леджер охватывает только измеряемую полосу. Правило прекращения ещё не применялось

➡️ Дальше

Посчитайте цену уровней по материалу Расходы, бюджеты и лимиты и посмотрите, что меняет управление маршрутизацией, в Моделях и маршрутизации.

Источники

Связи опубликованных статей. Выберите узел, чтобы открыть статью у заголовка.

100%
→ Связанные статьи← Ссылаются сюда⋯ Та же тема
Связи статей · клавиатура / текст

💬 Комментарии

Комментарии публичны и модерируются. Не публикуйте персональные данные.
  • Комментариев пока нет. Будьте первым!

Следующие шаги

ИИ-агенты и MCP простыми словами

Векторная база — это карта, а не источник: чему нас научил поиск

Векторная база находит фрагменты, близкие по смыслу к вашему вопросу. Она не знает, какие из них верны или актуальны. Считайте каждое попадание указателем: откройте названный файл, сверьте хэш, а числа берите из артефакта, а не из найденного абзаца.

ИИ-агенты и MCP простыми словами

Когда неизвестно, сколько стоил вызов модели: заморозка, затем сверка

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

ИИ-агенты и MCP простыми словами

Как разбить большую задачу для дешёвой модели: урок 24 000 байт

Дешёвая модель хорошо справляется с одной небольшой чёткой задачей и плохо — с большой кучей. Мы ограничиваем задачу 24 000 байт и отклоняем большие до вызова любой модели. Режьте по единицам — один файл или одна страна на задачу — и проверяйте размер до запуска.

ИИ-агенты и MCP простыми словами

Навыки, MCP-инструменты и правила: три способа дать агенту возможности

Агенты получают способности по-разному. Правило ограничивает, что они делают, навык говорит, как делать работу, а MCP-инструмент позволяет вызывать функцию. У каждого свой риск, поэтому объявляйте все три в реестре и проверяйте тестом, что ничего не существует вне списка.