11

Строгая приёмка и механизм наследования истории

AI999第6课:系统级持续演化:Genesis 与软件世界的沉淀
00:00

Когда вычислительные мощности открыли возможность массовой генерации кандидатов, возникла новая проблема:на каком основании изменения, автоматически созданные агентом, могут попасть в основную ветвь проекта?Строгая приёмка и механизм наследования истории полностью разводятгенерациюипринятие— любой код, предложенный агентом, является лишькандидатным изменением (candidate patch)и должен пройти ряд контрольных шлюзов, прежде чем может быть признан частью истории проекта.

Кандидатные изменения → четыре уровня контрольных шлюзов → основная ветвь / отклонениеГенерация и принятие разведены: непроверенные изменения не попадают в основную ветвьОчередь кандидатных измененийПредставлено агентом · по умолчанию недоверенноеКандидат AОжидает проверкиКандидат BОжидает проверкиКандидат CОжидает проверкиКандидат DОжидает проверкиПринцип кандидатности по умолчаниюСтрогая изоляция от основной ветвиИсключить «попадание в репозиторий сразу после генерации»Четыре уровня контрольных шлюзов · стоимость от низкой к высокой · ранний отсев1Шлюз компиляцииСинтаксис и интерфейсы допускают сборку · самая низкая стоимость, самый быстрый отсевСтоимость2Шлюз тестированияМодульные / интеграционные тесты пройдены · покрытие существующих контрактовСтоимость3Шлюз проверки поведенияСемантическая согласованность · допуски, эквивалентность и регрессионное сравнениеСтоимость4Верхнеуровневая приёмкаПроизводительность · ускорение · сопровождаемостьСтоимостьВсе четыре уровня пройдены → запись в основную ветвь✕Отклонение · архив неудачНепрохождение любого шлюза направляет сюда· Сохраняется как негативный пример и материал для диагностики· Хранится изолированно, не загрязняя основную ветвь· Само отклонение — это фильтрация шума· Предотвращает повторное исследование тупикового пути✓История версий основной ветвиМонотонно накапливаемая цепочка эволюцииБазовая версия v3 · отправная точка для следующих агентовБазовая версия v2 · закрепленаБазовая версия v1 · закрепленаНаследование истории: принятая базовая версия становится отправной точкой для следующих агентов

Принцип кандидатности по умолчанию

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

Четырёхуровневая последовательная фильтрация: рост стоимости, ранний отсев

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

Шлюзы упорядочены по стоимости от низкой к высокой, что позволяет отсеивать подавляющее большинство неэффективных изменений на дешёвых этапах и оставлять дорогостоящую верхнеуровневую экспертизу лишь для небольшого числа качественных кандидатов — в этом и заключается экономика «раннего отсева».

Ценность отклонения и наследование истории

Неудачные попытки не попадают в основную ветвь, но могут сохраняться какархив неудач / негативные примерыдля диагностики, дедупликации и предотвращения повторного исследования тупиков — само отклонение является фильтрацией шума. Изменения, прошедшие приёмку, становятся новойбазовой версией, и последующие исполнители продолжают эволюцию на её основе, формируя монотонно накапливаемую цепочку эволюции, а не начиная каждый раз с нуля. Как правило слияния и контракт качества для многоагентного сотрудничества и рекурсивной декомпозиции задач, шлюз приёмки определяет, «кто может записывать в историю», тем самым определяя, будет ли результат сотрудничества сходиться или нарастать энтропийно. В сценариях с жёсткими требованиями к корректности — таких как рефакторинг компиляторов и модернизация научного ПО — этот механизм демонстрирует исключительную надёжность и обеспечивает значительное ускорение выполнения.

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