Перейти до вмісту

Ізоляція контексту в AI-код-рев'ю

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

Для щоденних завдань із кодом я використовую Claude Code з плагіном Oh My ClaudeCode. Його оркестраційні воркфлоу змушують AI-агентів рев'юити власний вивід у циклі, автоматично відловлюючи проблеми й перевіряючи виправлення.

Та попрацювавши з цим певний час, я помітив одну проблему, що повторюється.

Коли агенти ділять контекст між ітераціями, вони здебільшого перевіряють, що проблеми з першого проходу виправлено. Нові проблеми вони знаходять рідко. Спільна пам'ять працює проти мене.

Чому спільний контекст змушує агентів пропускати нові проблеми

Коли агент переносить далі все, що знайшов у попередній ітерації, його увага прив'язана до тих знахідок. Він перевіряє, чи виправлення застосовано правильно, й підтверджує, що проблема зникла, але ніколи не дивиться на код з нуля.

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

Побудова агентної системи з чистим контекстом

Близько року тому я побудував AI-агентну систему з нуля для особистого проєкту. Агентні воркфлоу тоді ще не були стандартизовані, і я розбирався з усім, спираючись на власну інтуїцію щодо того, як мають працювати цикли рев'ю.

Ключове проєктне рішення, яке я ухвалив: кожна ітерація рев'ю починається лише з вхідних даних та інструкцій для агента. Жодної пам'яті про те, що знайшли попередні проходи. Жодної історії попередніх проблем чи виправлень.

Це змушує агента щоразу підходити до роботи свіжим поглядом. Після того, як я допрацював персону агента так, щоб уникати повторюваних патернів, він почав відловлювати нові проблеми на кожному проході.

Як я застосовую це вручну в щоденній роботі

Я й досі застосовую цей принцип у щоденних завданнях із кодом, особливо під час код-рев'ю. Я щоразу запускаю оркестрацію рев'ю з нуля з чистим контекстом — лише код та інструкції для рев'ю.

Упродовж кількох ітерацій воно й далі знаходить проблеми, які попередні проходи пропустили геть. Вони спливають лише тоді, коли рев'юер не знає, що вже було позначено.

Тож тепер кожне багатопрохідне рев'ю я запускаю з ізольованим контекстом.

Чого я шукаю

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

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

Поки що такої я не знайшов.

Увімкніть коментарі, прийнявши куки.

Необхідні куки працюють завжди. Куки для статистики та коментарів використовуються лише з вашої згоди. Докладніше