YouMind
Войти

Магия yetone: как Magpie позволяет ИИ самостоятельно поддерживать проекты

@wquguru
УПРОЩЁННЫЙ КИТАЙСКИЙ12 окт. 2026 г.
192K
826
100
46
1.6K

Суть

Анализ проекта magpie показывает, как ИИ-агенты автономно пишут, проверяют, мержат и выпускают код, используя еженощный «дневник ошибок» для контроля качества и предотвращения регрессий.

Споры о том, должно ли вообще существовать полностью автоматизированное ИИ-создание ПО, наконец-то вылились в открытый конфликт. Поводом стало то, что

@yetone поддерживает magpie, а коллеги раскритиковали проект как «фастфуд» и «слишком рискованный для использования».

Большинство согласно: разработка софта с помощью ИИ — это тренд. Но как именно magpie воплощает его на практике? Я склонировал magpie, проанализировал 2862 коммита за последние десять дней и сравнил результаты с OpenClaw.

https://x.com/wquguru/status/2109458639501271530

1204 версии за 19 дней

magpie — это локальный шлюз для LLM, который подключает кодинг-агентов вроде Claude Code, Codex и Gemini CLI к любой модели или подписке. С момента первого коммита 22 сентября и до сегодняшнего дня он собрал 9474 звезды всего за 19 дней. Из 2862 коммитов 85% приходятся на аккаунт yetone, который смержил 383 PR от сообщества.

Количество тегов (то есть версий) за 19 дней достигло 1204 — в среднем более 60 релизов в день. Такую частоту человек физически не способен поддерживать вручную. Для сравнения: у OpenClaw за первые 19 дней было 1423 коммита, 99% из которых сделал сам Peter Steinberger, и около 10 тегов.

У magpie в два раза больше коммитов, но версий — более чем в сто раз больше.

Меня интересовало одно: как именно ИИ замыкает цикл разработки в этом проекте?

Таблица маршрутизации и тетрадь ошибок

В CLAUDE.md проекта magpie упоминаются только два файла: AGENTS.md и LESSONS.md.

AGENTS.md — это таблица маршрутизации. Она не содержит правил сама по себе, а лишь указывает агентам, какие документы нужно изучить перед началом работы: проверять docs/subsystems/ перед изменением подсистем, следовать docs/code-standards.md при написании и ревью кода, а также заглядывать в docs/contributors.md при проверке PR от сообщества.

Первое же предложение в LESSONS.md отвечает на наш главный вопрос:

Код magpie пишется, проверяется, мержится и выпускается агентами. (код magpie пишется, проверяется, мержится и выпускается агентами)

WquGuru - inline image

Написание, ревью, мерж, релиз — всё делают агенты. Почему без человеческого контроля всё не падает? Ответ кроется в этом файле. Его 479 строк — по сути, тетрадь ошибок, которую агент заполняет каждую ночь.

Каждую ночь агент просматривает все коммиты за день, обращая внимание на три вещи:

  1. Какие исправления пришлось переделывать?
  2. Что вообще не следовало мержить?
  3. Где проверка оказалась слишком халтурной?

Для каждой найденной проблемы он записывает правило, причину и прикладывает номера коммитов и issue в качестве доказательств. Например:

Прежде чем считать баг исправленным, воспроизведи точный кейс автора на том интерфейсе, которым он пользуется.

Issue 834 возвращался 4 раза (v0.1.920 → .925 → .931 → .938). В каждом раунде чинили только того агента, что был на скриншоте. Замечено 1× (2026-10-05).

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

Главное здесь — последняя строка: «Замечено 1×». Если один и тот же урок всплывает при ревью в три разных дня, он переезжает из LESSONS.md в code-standards.md, превращаясь из опыта в железное правило. После этого каждое новое ревью PR обязано сверяться с этими правилами пункт за пунктом.

Таким образом уже повысили восемь правил. Например: похожие баги чинить вместе (замечено по разу 5, 6 и 7 октября); упавшие тесты в main — это критичные баги, требующие немедленного исправления; перед мержем нужно четко указать, что именно протестировано и на каком коммите.

Разумеется, в тетради фиксируются и успехи — они помечаются как Done right. Так агенты читают не только «не делай так», но и «делай вот так».

WquGuru - inline image

Тетрадь ошибок появилась ранним утром 6 октября

Была ли эта система заложена изначально? Если посмотреть историю коммитов LESSONS.md, первая версия (коммит 303819c5) была создана 6 октября в 3:10 ночи.

За день до этого, 5 октября, magpie выпустил 168 версий.

Первая версия LESSONS.md зафиксировала именно тот день. При 220 коммитах и примерно 170 релизах около 40 были исправлениями версий, выпущенных в тот же или предыдущий день. CI почти всегда отменялся следующим пушем. Тест, падавший только на Linux, оставался красным с v0.1.877 по v0.1.892, и никто этого не заметил.

294 тега за 51 час не дали завершиться ни одному прогону. (294 тега за 51 час означали, что ни один прогон CI не мог завершиться)

Поэтому в первой версии появилось правило: перед созданием тега CI для этого коммита должен отработать до конца и стать зеленым. Прогоны, отмененные из-за новых пушей, не считаются.

WquGuru - inline image

168 релизов в первый день, 42 во второй, 15 в третий, а затем стабилизация на уровне 15–26.

Никаких созвонов, никаких уведомлений. Ночные ревью находили проблемы, добавляли правило в тетрадь ошибок, работающие агенты его читали — и частота релизов снижалась.

Так что те двадцать с лишним релизов в день, которые недавно называли проблемой, — это скорость уже после того, как ударили по тормозам.

Критерии приемки PR

Теперь посмотрим на реальные PR:

В code-standards.md перечислены шесть критериев приемки. Все они должны быть соблюдены до мержа или релиза. Если опустить стандартные проверки вроде компиляции на трех платформах и тестирования в песочнице, три из них крайне редко встречаются в обычных проектах:

  1. Регрессионный тест: верните старый код — новые тесты должны явно упасть, указывая, какое именно поведение работает неправильно. Ошибки компиляции или пропущенные тесты не в счет.
  2. Реальное использование: если меняется интеграция с вендором, проверяйте её на реальных аккаунтах, конфигурациях и ответах API. То, что не протестировано, нельзя использовать как базу для других фич или заявлять пользователям о работоспособности.
  3. Непроведенные проверки нужно перечислять:

Проверка, которая не запускалась, указывается как незапущенная, а никогда не просто опускается. (Невыполненные проверки должны быть указаны как невыполненные, их нельзя просто пропускать)

Я случайно выбрал #1339, чтобы посмотреть комментарий, оставленный перед мержем:

WquGuru - inline image

Red check означает регрессионный тест, Break check — намеренную поломку кода, чтобы проверить, поймают ли её тесты, а последняя строка Not run значит, что проверка на реальном железе не проводилась.

Команда мержа включает --match-head-commit <reviewed sha>. Если кто-то сделает пуш во время ревью, мерж не пройдет — непроверенный код не попадет в ветку.

Человек в цикле

Конечно, люди всё равно участвуют в работе, как минимум в следующих аспектах:

  • Продуктовые решения: «Не отменяйте осознанные решения». Такие вещи, как поведение скролла или курсоры на кнопках, нельзя менять через PR.
  • Контроль безопасности: если срабатывают проверки на риски, нужно ждать одобрения мейнтейнера.
  • Предложения сообщества: в названиях 474 коммитов упоминаются авторы репортов из X или Discord, например JonahFu из X или Jeremy.Zhou из Discord.

Короче говоря, люди задают направление и стоят на страже; написание, ревью, мерж и релизы выполняют агенты.

Что-то скрывает yetone?

На этом месте кто-нибудь спросит: а не скрывает ли yetone чего-то? Мне тоже стало любопытно, и я копнул глубже.

Действительно, некоторых вещей в репозитории нет:

  • Как запускаются ночные ревью — не задокументировано. Ни один из 4 workflow не настроен по расписанию.
  • Я вытащил время 7 обновлений LESSONS.md: 03:10, 03:49, 00:23, 23:46, 03:48, 14:24, 05:26. Оно разбросано, что меньше похоже на cron-задачи и больше — на ручной запуск локально или кастомные скрипты.
  • Промптов для ночных ревью там тоже нет. Какой агент используется, сколько параллельных сессий — ничего не указано.

Попутно я обнаружил еще два интересных момента:

Во-первых, методология опирается на вклад сообщества. Документация подсистем и ревью семантических изменений появились благодаря PR #889 от участника сообщества Junjie Zhou. Две таблицы в начале code-standards.md, согласно коммиту 926bcaa3, прямо основаны на шести правилах ревью, предложенных Junjie Zhou в Discord.

Во-вторых, диалоги yetone с агентами сохраняются в коммитах. В 52 названиях коммитов в скобках оставлены оригинальные цитаты yetone:

text
1(владелец: Это выглядит слишком уродливо)
2(владелец: Почему здесь нативный селектор вместо нашего абстрактного ComboBox?)
3(владелец: Почему это снова вернулось? Мы же договорились, что оно должно появляться только при наведении? Постоянно торчать — это ужасно)
4(владелец: Во время pr-preview иногда нет данных для теста. Можешь сгенерировать фейковые?)

В основном это жалобы в одну строку; остальное дописывает агент, из-за чего тело коммита часто разрастается до сотен слов. Просьба о фейковых данных позже превратилась в набор mock-данных, используемый для записей CI.

Люди указывают, что не так; агенты превращают это в проверяемые изменения. Эти несколько десятков названий коммитов объясняют методологию лучше любого документа.

Если захотите повторить

Написать таблицу маршрутизации может каждый. По-настоящему ценно скопировать систему тетради ошибок. Запись в LESSONS выглядит так:

text
1**<Правило в одно предложение>**
2- <Какой коммит/issue вызвал проблему, каковы были последствия>
3- <Коммит с исправлением>
4- Done right: <Пример правильного выполнения>
5- Seen N× (ГГГГ-ММ-ДД, ГГГГ-ММ-ДД).

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

Изучив весь репозиторий, больше всего меня впечатлил порог «Seen 3×». Ошибки записываются, агенты читают их при старте, а троекратное повторение одного и того же промаха возводит его в статус жесткого правила. Идеальная иллюстрация принципа «третий раз — решающий» (или, скорее, три страйка — и ты出局).

И напоследок...

Еще год или даже полгода назад возможностей моделей редко хватало для автоматизации уровня production. Но сейчас, особенно после выхода Opus 5.5, мы видим: будущее уже наступило.

Это напоминает мне Yoyo от @yuanhao — агента, который самостоятельно итерируется уже более 200 дней: https://yoyo-gasp.yolog.dev/, тоже стоит взглянуть.

https://x.com/yuanhao/status/2027933802597634076

Сохранение в один клик

Используйте YouMind для глубокого чтения вирусных статей с помощью ИИ

Сохраняйте источники, задавайте точные вопросы, обобщайте аргументы и превращайте вирусные статьи в полезные заметки в одном рабочем пространстве ИИ.

Исследовать YouMind
Для авторов

Превратите ваш Markdown в аккуратную статью для 𝕏

Когда вы публикуете длинные тексты, изображения, таблицы и блоки кода, форматирование в 𝕏 становится мучением. YouMind превращает полный черновик в Markdown в чистую статью, готовую к публикации в 𝕏.

Попробовать Markdown для 𝕏

Другие паттерны для анализа

Недавние виральные статьи

Смотреть другие виральные статьи