Как превратить GitHub в память для ИИ-агента

Когда LLM научились писать код, вокруг них быстро выросли автономные SWE-агенты: системы, которые умеют открывать репозиторий, запускать тесты, находить место ошибки и готовить патч. Но у таких агентов есть неприятная привычка работать так, будто они впервые видят подобный баг. На практике же разработчики почти никогда не чинят сложные проблемы с нуля: они идут в GitHub, ищут похожие issue и PR, читают обсуждения, смотрят, какие гипотезы проверяли, какие правки сработали и как их валидировали. Это и есть «открытый мир» опыта — огромный, полезный, но крайне неудобный для машинного использования.
Авторы работы MemGovern: Enhancing Code Agents through Learning from Governed Human Experiences предлагают простой ответ: превратить разрозненные следы человеческой разработки в «память», с которой агент умеет работать так же осмысленно, как реальный инженер.

Почему GitHub-опыт так трудно «скормить» агенту
Проблема не в нехватке данных — GitHub переполнен починенными багами. Сложность в том, что этот опыт неструктурирован. В одном треде перемешаны версии библиотек, куски логов, обсуждение сроков релиза, случайные правки «заодно», эмоциональные реплики и уточнения, которые важны людям, но мешают извлечь техническую суть. Плюс разные репозитории описывают одно и то же разными словами, с разными именами модулей и стилем кода. В итоге наивный retrieval часто приносит агенту либо мусор, либо слишком «локальные» детали, которые трудно перенести на текущий проект.
MemGovern начинает именно с этого: не пытаться героически понять весь GitHub, а научиться превращать его в компактные, сопоставимые единицы опыта.
Карточки опыта: как «управляют» человеческими историями
В основе MemGovern — процесс experience governance. Он отбирает подходящие репозитории и конкретные случаи исправления, а затем превращает их в стандартизированные experience cards — карточки опыта. В этих карточках важная идея: разделить то, по чему мы ищем, и то, что мы применяем.
Слой индекса фиксирует нормализованное описание проблемы и диагностические сигналы: тип исключения, характерный фрагмент ошибки, общие теги компонента. То есть такие признаки, которые можно сопоставлять между проектами. А слой решения хранит «переносимую» логику: первопричину, стратегию исправления и краткий конспект патча. Так агенту легче не копировать кусок кода, а перенести смысл: что именно было сломано и что исправило ситуацию.
Чтобы карточки не превратились в очередной источник галлюцинаций, авторы добавляют контроль качества чеклистом и цикл уточнений: если в карточке мутно описана причина или стратегия, она отправляется на доработку. В результате они собирают 135 тысяч карточек.

Не просто RAG: агент учится искать как инженер
Второй ключевой элемент — agentic experience search. Обычный RAG работает так: сформировали запрос, достали top-k фрагментов, вставили в контекст. Но отладка так не работает. Когда разработчик ищет похожий баг, он делает несколько заходов: уточняет симптомы, отбрасывает нерелевантные ветки, открывает пару перспективных обсуждений и только потом выносит из них рабочую стратегию.
MemGovern повторяет этот стиль через две операции. Сначала агент делает поиск по индексному слою (симптомы и сигналы), затем выборочно «просматривает» карточки, поднимая слой решения. Если кандидаты слабые, он переформулирует запрос и пробует снова. Такой режим помогает вытаскивать не поверхностное совпадение слов, а именно логически подходящий прецедент.

Что это даёт на практике
Авторы подключают MemGovern как plug-in к SWE-Agent и проверяют на SWE-bench Verified — одном из самых заметных тестов для автоматического исправления багов в реальных репозиториях. Итог — +4.65% к доле решённых задач в среднем. Для таких бенчмарков это заметный прирост, потому что каждые несколько процентов обычно требуют либо более сильной LLM, либо сложного тюнинга пайплайна.
Визуально эффект хорошо виден в разборе поведения агента: без опыта он может выбрать «защитный обход», который ломает контракт API, лишь бы тесты прошли. С MemGovern агент чаще опирается на уже встречавшуюся человеческую логику и делает семантически корректную правку.

Интересная деталь: качество памяти важнее её «сырого объёма». Авторы отдельно показывают, что просто скормить агенту необработанные обсуждения хуже, чем дать меньше, но структурировано. Сырые треды легко уводят в сторону — например, из‑за несвязанных изменений в PR агент делает неполный патч. «Управляемый» опыт, наоборот, подчёркивает ключевую логику.

Наконец, авторы исследуют, как влияет размер памяти и глубина извлечения top-k: это важная инженерная часть, потому что контекст в LLM не резиновый, а «слишком много карточек» может ухудшить фокус.

Что важно вынести из MemGovern
Работа хорошо подсвечивает сдвиг в мышлении: прогресс агентов для программирования упирается не только в боле умнее LLM, но и в то, как мы упаковываем внешний опыт. MemGovern показывает, что GitHub можно превратить в слой памяти. А ещё — что поиск должен быть процессом, а не одиночным запросом.
Да, это не волшебная кнопка, которая сможет починить все баги. Но эта идея работает: дать агентам доступ к коллективной инженерной памяти так, чтобы она помогала думать, а не засоряла контекст.

ИИ-обзоры статей
Каждый день читаем свежие статьи по ИИ и пересказываем главное человеческим языком — без хайпа и воды. Если хотите понимать, куда движутся ИИ-агенты раньше остальных, — подписывайтесь.
Новые обзоры — каждый день.
В Telegram