Ворота, которые не считают деньги, ничего не охраняют
Мой пайплайн умел сказать, хороша ли работа. Он не умел сказать, что этот ответ стоил четырёх часов и восьми провалившихся попыток.
В моём пайплайне стояли ворота, которыми я гордился. Критерии, пороги, рецензент, который не автор, вердикт, умеющий отказать.
А потом я задал им вопрос, на который они не ответили: во что это обошлось?
Что артефакт достаточно хорош — это они знали. Сорок минут ушло на этот вердикт или четыре часа, двенадцать долларов или двести — понятия не имели. Чистое одобрение с первого захода они не отличали от прогона, который дополз до финиша на десятой попытке с той же нерешённой проблемой.
Это разные результаты. Работающая система — только один из них.
Лимит, который ограничивает не то
Лимиты итераций у меня были — не больше десяти циклов на фазу. Выглядело как контроль. Это не контроль. Лимит итераций ограничивает, сколько раз крутится цикл, а не сколько стоит один оборот, а у меня один раунд ревью разлетается на восемь верификаторов, работающих параллельно. Один этот шаг может стоить больше, чем все предыдущие фазы вместе, и ни один лимит этого не замечает.
Поэтому я завёл книгу расходов. Бюджет объявляется до старта. Проверяется на переходе между фазами и при каждом возврате назад, но никогда посреди работы. Пересечёшь границу, уже превысив потолок, — прогон встаёт с явным вердиктом, вместо того чтобы тихо доехать до конца и выставить вам счёт.
Сильнее всего я недооценил анализ маршрута. Он считает расход, который не продвинул прогон вперёд — всё, что ушло на попытки, закончившиеся возвратом, — и вылавливает повторяющиеся причины. Вот эта последняя цифра неприятная. Прогон, прошедший ворота с десятой одинаковой попытки, — это провалившийся прогон со значком «зачтено». В моих старых отчётах этого не было видно вообще.
Почему это стоит больше, чем выглядит
Есть мартовское исследование, из-за которого я заново передумал, что вообще стоит докладывать агенту.
Агенту, пишущему код, дали одну лишнюю вещь: карту того, какие тесты покрывают какой код, обычным текстовым файлом, который он мог прочитать. Регрессии — тесты, которые раньше проходили и перестали, — упали с 6,08% до 1,82%. Минус 70% от одного файла.
В том же исследовании была вторая ветка. Вместо карты агенту дали процедурные инструкции: работай от тестов, держись этой дисциплины. Регрессии выросли до 9,94%. Хуже, чем не делать ничего.
Давайте агенту контекст, а не процедуру. Указания, как себя вести, измеримо ухудшили дело. Сведения о том, как всё устроено на самом деле, улучшили его на 70%. Каждую инструкцию, которую хочется написать, я теперь сначала прогоняю через этот тест.
Поэтому бюджет и лежит в файле состояния, а не в промпте, просящем агента поаккуратнее с деньгами. Никто не бережёт цифру, которой не видит.
Если вы гоняете агентов и не можете сказать, во что вам обошлась прошлая неделя, у вас не автономная система — у вас растущий счёт. Я строю ту часть, которая умеет отказать. Напишите, что у вас за система и какой срок.