теория

SRE для недетерминизма

Второй акт научил нас мерить хвосты латентности. Теперь у системы появился компонент, у которого всё — распределение, и это не повод разводить руками, это повод достать тот же инструмент.

Трейс каждого шага. Обычный лог «запрос — ответ» для агента бесполезен: между запросом и ответом — десяток решений. пишет каждый такт цикла: что модель подумала, какой инструмент выбрала, с какими аргументами, что получила. Без трейса разбор инцидента — гадание («почему он предложил возврат на тендерный вопрос?»); с трейсом — три минуты чтения. Это тот же распределённый трейсинг, что нашёл сорок вызовов в восемнадцатом модуле, — просто теперь спаны называются «мысль» и «действие».

Токены — валюта capacity planning. У каждого ответа есть себестоимость в токенах, и у неё есть распределение: p50 — три копейки, p99 — три рубля, потому что агентный цикл на сложном вопросе делает двадцать шагов. Смотри на стоимость как на латентность: перцентили, бюджеты, алёрты на хвост. «Средняя стоимость ответа» врёт ровно так же, как врало «среднее время ответа» во втором модуле.

Качество — тоже перцентиль. «Агент отвечает хорошо» — такое же пустое утверждение, как «система быстрая». У качества есть измеримые компоненты: доля ответов с фактическими ошибками, доля корректных вызовов инструментов, соблюдение тона. По каждому — метрика, распределение, целевой уровень: для ума. Как их мерить — через минуту, это главный инструмент модуля.

Предохранители. Бюджет на сессию, лимит шагов, таймауты, circuit breaker на внешние диалоги, деградация под нагрузкой — «отвечаем только на типовое, сложное в очередь». Предохранители и сброс нагрузки, обещанные ещё во втором модуле, здесь наконец разворачиваем — и сразу внутрь: раньше мы защищали систему от мира, теперь — ещё и от собственного компонента.

Недетерминизм — не оправдание слепоты. Это просто ещё одно распределение, а с распределениями мы работать умеем.

← назад