Anthropic's Fable — блестящая модель: ищет недочёты в горах кода, создаёт тикеты, вносит правки. Но вчера она дважды закоммитила директорию build/ в проект. Разработчик Beagle SCM описывает это как парадокс LLM: они становятся всё умнее, но не перестают быть неуклюжими. Неточность и недетерминированность — их врождённые свойства, и прогресс тут не поможет.
Сравнение с генератором парсеров Ragel: тот мгновенно и детерминированно пишет формально корректный парсер на 10 000 строк кода. А Claude? Инструкции разработчика гласят заглавными: НИКОГДА НЕ ПАРСИТЬ НИЧЕГО ВРУЧНУЮ. Это было бы мучительно и ошибочно. Но Claude всё равно пытается, поэтому приходится периодически просить его просканировать код и удалить такие попытки.
Решение — поместить дорогой, медленный, неуклюжий, но блестящий LLM между быстрыми детерминированными инструментами снизу и формальным workflow сверху. Дать ему мощные средства, показывать нужные данные вовремя, уменьшить неуклюжесть, добавить самокоррекцию. А если инструменты и процессы сделать гибкими, можно автоматизировать часто повторяемые действия и верификацию повторяющихся ошибок. По сути — позволить LLM автоматизировать самого себя, заменяя себя простыми надёжными детерминированными инструментами. Как говорил Андрей Карпати, исследователи OpenAI «автоматизируют сами себя», улучшая свой ИИ.
Именно это делает Beagle SCM. Он позволяет LLM писать себе скрипты на JavaScript. Вся тяжёлая работа на C — её почти не трогают. А инструментальный слой (нижняя часть «сэндвича») и слой workflow (верхняя) — это JavaScript, код подгружается из файловой системы, в стиле node_modules. Представьте git hooks, которые могут токенизировать исходники почти на любом языке, просматривать историю файлов и коммитов, перекрёстно проверять ссылки и получать любые данные, к которым git имеет внутренний доступ. Это Beagle.