Перейти к содержимому

Изоляция контекста при рецензировании кода с использованием ИИ

Очистка контекста между итерациями ревью позволяет обнаруживать ошибки, которые циклы с общим контекстом пропускают

Машинный перевод

Для повседневных задач с кодом я использую Claude Code с плагином Oh My ClaudeCode. Его оркестрационные рабочие процессы заставляют ИИ-агентов циклически пересматривать собственные выводы, автоматически выявляя проблемы и проверяя исправления.

Но, поработав с этим некоторое время, я заметил одну повторяющуюся проблему.

Когда агенты передают контекст между итерациями, они в основном проверяют, исправлены ли проблемы, обнаруженные при первом проходе. Новые проблемы они находят редко. Общая память работает против меня.

Почему общий контекст заставляет агентов упускать новые проблемы

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

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

Создание агентной системы с чистым контекстом

Около года назад я построил AI-агентную систему с нуля для личного проекта. Агентные рабочие процессы тогда ещё не были стандартизированы, и я разбирался во всём, опираясь на собственную интуицию относительно того, как должны работать циклы ревью.

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

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

Как я применяю это вручную в повседневной работе

Я до сих пор применяю этот принцип в повседневных задачах с кодом, особенно во время код-ревью. Каждый раз я запускаю оркестрацию ревью с нуля с чистым контекстом — только код и инструкции для ревью.

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

Поэтому теперь каждый многопроходный ревью я запускаю с изолированным контекстом.

Что я ищу

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

В идеале какой-то инструмент автоматизировал бы этот паттерн — повторяющуюся независимую оценку с чистым контекстом при каждом проходе. Мне нужны системы, которые изначально поддерживают изоляцию контекста между циклами ревью, а не просто оркестрацию с участием человека в цикле.

Пока что такой я не нашёл.

Включите комментарии, приняв куки.

Необходимые куки работают всегда. Куки для статистики и комментариев используются только с вашего согласия. Подробнее