В инженерии агентов есть две разные «надёжности», которые вайб-кодеры постоянно путают. pass@k — хотя бы один успех из k попыток. pass^k (часто читают «pass to the k» / «pass caret k») — успех k раз подряд без провала. Один зелёный прогон агента в Claude Code или Codex ближе к pass@1 и почти ничего не говорит о втором. Хук угла идёт из рамки Agent Engineering (Decomposition / Data / Evaluation; материалы в духе CS329Z, старт курса около 23 сентября — здесь только контекст, не обзор программы). Ниже — как встроить обе метрики в приёмку вайб-спринта, без рекламы университета и без академического syllabus-дампа.

Соседи: JIT-Agent harness, исследователь руководит агентами, DeepSeek harness и кэш, Mind Viruses. Продукт касаний в Telegram — TG Lead Finder.

Две формулы без культа бенчмарков

pass@k отвечает на вопрос: «если дать агенту k независимых попыток, какова вероятность, что хотя бы одна пройдёт критерий?» Это метрика исследователя и арены: модель «умеет» задачу, если иногда попадает.

pass^k отвечает на другой вопрос: «если прогнать критерий k раз подряд, какова вероятность, что все прогоны зелёные?» Это метрика продакшена и клиента: система «держит» задачу, если не врёт на повторе.

Для вайб-кодера перевод на быт:

Один зелёный прогон после трёх ретраев — это слабый сигнал pass@k, замаскированный под «готово». Клиент и ты завтра утром живёте в мире pass^k.

Почему «один зелёный» врёт в агентном спринте

Агентный прогон — не чистая функция. На результат влияют:

  1. температура / семя / недетерминизм модели;
  2. порядок tool-call и гонки в репо;
  3. кэш префикса и «память» сессии;
  4. плавающий интернет, флаки тестов, тайминги;
  5. заражение контекста предыдущими идеями агента (см. Mind Viruses).

Поэтому «у меня один раз собралось» — плохая приёмка. Ты измерил удачу, не надёжность. Особенно опасен multi-agent контур: один агент «успел», второй тихо сломал контракт, третий написал зелёный тест мимо бага. Рамка «Don't Sleep on Single-agent Systems» здесь практическая: иногда один хорошо обвязанный агент стабильнее цирка из пяти ролей без eval.

Как ставить критерий до запуска агента

Без критерия нет ни pass@k, ни pass^k — есть ощущения. Минимальный контракт вайб-спринта:

Пример: «pass@3 на черновик миграции OK для ветки experiment; pass^2 на тот же критерий обязателен перед merge в main». Разные k под разные стадии — норма, не бюрократия.

Практика pass@k для вайб-кодера

Когда pass@k уместен:

Как мерить честно:

  1. фиксируй критерий до попыток;
  2. не подглядывай и не «допиливай руками» посередине серии, если хочешь цифру, а не ощущение;
  3. считай попытку целиком: промпт → агент → проверка;
  4. записывай провалы — иначе pass@k превращается в маркетинг себе.

Harness меняет pass@k сильнее, чем смена модели на соседнюю: см. JIT-Agent и DeepSeek harness. Сначала обвязка, потом культ Elo.

Практика pass^k: приёмка перед merge

Когда pass^k обязателен:

Минимальный ритуал:

  1. Закрой задачу агентом до зелёного критерия (это ещё не победа).
  2. Сбрось сессию / новый чистый прогон с тем же критерием (или перезапуск harness с нуля).
  3. Повтори k раз (часто k=2 или k=3 достаточно для indie).
  4. Если второй прогон красный — у тебя был pass@1, не «готовая фича».
  5. Только после серии — merge / деплой / отдача клиенту.

Да, это дороже по квоте. Именно поэтому бюджет попыток пишется в контракт спринта до старта, а не после «ой, Astra кончилась».

Decomposition / Data / Evaluation без syllabus

Три оси Agent Engineering переводятся на вайб-быт так:

Материалы курсов вроде CS329Z (ориентир старта около 23.09) полезны как карта терминов. Для блога vibe-studio.uk ценность не в «прошёл курс», а в том, что ты перестал принимать один зелёный прогон за надёжность. Не разворачиваем программу, домашки и учебники — только рабочий угол.

Multi-agent: где падает надёжность

Типичный провал: агент-исследователь нашёл подход (pass@1), агент-кодер «успел» один раз, агент-ревьюер кивнул по тому же грязному контексту. Снаружи — «команда агентов справилась». Внутри — один удачный семпл.

Что делать:

Мини-таблица для спринта

Цифры k — твоя политика риска, не закон физики. Запиши их в README команды. Иначе каждый вайб-кодер изобретает свою религию «готово».

Связка с квотой и продуктом

Eval жрёт попытки — значит, жрёт лимиты. Планируй k вместе с weekly Astra/Claude, не после. Цена токена вторична цене ложного «готово»: токены Claude и GPT. Если после стабильного кода нужен трафик в Telegram — это другой контур: TG Lead Finder, гайды на /guides.html. Агент, который «иногда» пишет рабочий парсер, не заменяет приёмку модуля.

Короткий вывод

pass@k говорит «модель/агент умеет попасть». pass^k говорит «система держит попадание». Вайб-кодер, который сливает в main после одного зелёного прогона, оптимизирует удачу. Поставь критерий, выбери k под стадию, режь multi-agent там, где нет машинной проверки, вкладывайся в harness. Курсы и бумаги дают словарь; спринт требует ритуала повтора. Один зелёный — гипотеза. Серия зелёных — повод мержить.