Сигнал из хука LLMScience: Microsoft выпустила CABRA — инструмент для оценки ИИ-агентов в программировании. Он генерирует синтетические задачи на основе графов вызовов функций и постепенно наращивает сложность, чтобы найти момент, где агент начинает спотыкаться. Главный вывод из поста: обычные модели резко теряют точность на сложных задачах, а агенты почти не замечают разницы — пишут скрипт с grep или разбором AST и идут дальше. Ниже — что именно меряет CABRA по репозиторию проекта и что из этого стоит забрать себе. Витрина — vibe-studio.uk.

Соседи: pass@k и надёжность агентов, уборка AGENTS.md, структура репозитория ИИ-приложения, Auto-review в Codex.

Что такое CABRA

Расшифровка — Coding Ability Blueprint for Rigorous Agent evaluation. Работа называется «Code Understanding is a Bottleneck for Coding Agents», то есть «понимание кода — узкое место кодовых агентов». Авторы — Nishant Balepur, Kiran Tomlinson и Tobias Schnabel.

Механика простая. CABRA берёт граф вызовов функций без циклов, превращает его в исполняемую программу и даёт агенту задачу на правку. Типы правок взяты из каталога рефакторингов Мартина Фаулера:

  1. удалить мёртвый код;
  2. добавить входной параметр;
  3. добавить возвращаемое значение;
  4. закешировать вызов функции;
  5. убрать повторы (Don't Repeat Yourself).

Четыре оси сложности

Каждую задачу можно усложнять по одной оси, чтобы понять, что именно ломает агента:

Отдельно есть стресс-тест Merge Codebases — слить две кодовые базы, где похожая по смыслу логика написана по-разному.

Что показали результаты

В репозитории заявлено 6 840 задач, восемь моделей и шесть конфигураций агента Copilot. Выводы авторов:

Чем это не является

Что это значит для вайб-кодера

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

  1. Делайте код находимым. Говорящие имена функций и файлов, одно понятие — одно слово. Если оплата у вас называется то payment, то billing, то charge, grep найдёт треть, и агент поправит треть.
  2. Не плодите дубли логики. Ровно на «похожая логика, написанная по-разному» агенты и ломаются. Две функции расчёта цены в разных местах — гарантированный баг после правки одной из них.
  3. Короткие цепочки вызовов. Чем через большее число функций протягивается правка, тем больше шансов что-то упустить. Плоская структура дешевле в токенах и надёжнее.
  4. Одна задача — одно требование. Ось «следование инструкциям» говорит прямо: пачка ограничений в одном промпте повышает риск. Лучше три коротких прохода, чем один длинный.
  5. Тесты как проверка смысла. Агент может сделать правку, которая выглядит верно. Тест на поведение ловит то, что не ловит чтение кода.

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

Если вы делаете продукт с трафиком

Лендинг, бот и панель вроде TG Lead Finder со временем обрастают модулями. Каждый новый модуль, собранный агентом «по аналогии», — потенциальный дубль логики: лимиты, тайминги, обработка ошибок. Вынесите общее в одно место сразу, пока модулей три, а не тридцать. Тогда следующий агент поправит лимит один раз, а не будет искать его копии.

Коротко

CABRA от Microsoft проверяет кодовых агентов на синтетических правках по четырём осям сложности. Голые модели проседают, агенты держатся за счёт grep и скриптов, но ломаются, когда нужно понять смысл кода, а не найти строку. Вывод для вайб-кодера: находимые имена, никаких дублей логики, короткие цепочки, одно требование за проход и тесты на поведение. Источник — github.com/microsoft/CABRA.