AI-агенты и legacy-код: как они читают миллионы строк
Coding-агенты научились работать не с одним файлом, а с репозиториями на сотни тысяч строк. Разбираем, как устроен их доступ к контексту и где они всё ещё ломаются.

Осенью 2024 — весной 2025 инструменты вроде Claude Code, Cursor с режимом Agent, GitHub Copilot Workspace и OpenAI Codex CLI перестали быть автодополнением по одному файлу. Теперь пользователь ставит задачу словами — «почини падающий тест в модуле биллинга» — и агент сам ищет нужные файлы, читает их, правит, запускает тесты и приходит с готовым диффом. Главный вопрос: как это вообще возможно, если legacy-репозиторий не помещается в контекстное окно даже самой крупной модели.
Почему весь репозиторий в модель не влезает
Контекстное окно1 — это объём текста, который модель удерживает за один запрос. У Claude 3.5 Sonnet и Claude Sonnet 4 это 200 тысяч токенов, у GPT-4o и семейства GPT-4.1 — до 128–1000 тысяч в зависимости от версии, у Gemini 1.5 Pro Google заявляла до 1–2 млн токенов. Звучит много, но токен — это примерно 3–4 символа. Средний enterprise-монолит на Java или C# — это миллионы строк, десятки тысяч файлов и гигабайты текста. Даже двухмиллионное окно вмещает лишь малую часть, а стоимость запроса растёт вместе с числом токенов.
Отсюда простой вывод: агент не читает всё. Он читает выборочно и по требованию. Вся инженерная хитрость — в том, как он решает, что именно прочитать.
Как агент находит нужный кусок кода
На практике коммерческие агенты комбинируют несколько механизмов, а не полагаются на один.
- Инструменты файловой системы. Агенту дают набор функций: прочитать файл, выполнить
grepилиripgrepпо репозиторию, показать дерево каталогов, запустить команду в терминале. Модель сама решает, когда их вызвать. Так работают Claude Code и Codex CLI: агент буквально ходит по проекту, как разработчик по незнакомой кодовой базе. - Семантический поиск через эмбеддинги (RAG2). Репозиторий заранее разбивают на фрагменты, каждый превращают в вектор и складывают в индекс. По запросу агент достаёт фрагменты, близкие по смыслу, а не только по совпадению слов. На этом строятся Cursor и многие корпоративные ассистенты.
- Разбор структуры кода (AST и графы зависимостей). Инструмент парсит синтаксическое дерево, чтобы понять, где объявлена функция, кто её вызывает, какие модули зависят друг от друга. Это помогает не «додумывать» связи, а идти по реальным ссылкам.
В сильных продуктах эти подходы работают вместе: поиск подсказывает точку входа, инструменты дочитывают детали, граф вызовов удерживает агента от галлюцинаций про несуществующие методы.
Агент на большом репозитории силён ровно настолько, насколько хорошо он умеет не читать лишнее. Победа не в размере окна, а в точности выборки.
Чем отличаются основные инструменты
Ниже — сравнение по подходу к работе с большими базами, а не по «уму» модели. Доступность и цены указаны на состояние весны 2025 и меняются, актуальное сверяйте на сайтах продуктов.
| Инструмент | Как достаёт контекст | Запуск тестов и команд | Формат |
|---|---|---|---|
| Claude Code | Инструменты ФС, grep, чтение по требованию | Да, через терминал | CLI |
| Cursor (Agent) | Эмбеддинг-индекс репозитория + чтение файлов | Да, в интегрированном терминале | Форк VS Code |
| GitHub Copilot Workspace | Индекс репозитория GitHub, привязка к задачам | Частично, через окружение | Веб/IDE |
| OpenAI Codex CLI | Инструменты ФС, выполнение команд в песочнице | Да, в изолированной среде | CLI |
Границы между продуктами подвижны: Cursor тоже умеет ходить по файлам напрямую, а Claude Code может опираться на подсказки из файла-инструкции в репозитории. Прямых сравнительных бенчмарков именно по legacy-базам с общепризнанной методикой на сегодня нет, поэтому цифры «кто быстрее чинит миллион строк» приводить нечестно.
Что помогает агенту не заблудиться
На больших базах решают не только алгоритмы, но и гигиена проекта:
- Файл с инструкциями в корне репозитория, где описаны команды сборки, стиль кода и запретные зоны — агент читает его первым.
- Работающие тесты: агент запускает их после правки и видит, сломал ли он что-то. Без тестов он правит вслепую.
- Понятные имена и модульная структура — семантический поиск работает точнее там, где код сам себя объясняет.
Кому это пригодится, а кому нет
Пригодится:
- Команде, которая унаследовала чужой монолит без документации: агент за минуты составит карту «где что лежит» и объяснит логику незнакомого модуля.
- Для точечных задач с чёткой границей: обновить зависимость, добавить логирование, починить конкретный падающий тест, вынести дублированный код в функцию.
- Для миграционной рутины: переписать вызовы устаревшего API по всему проекту, где нужны десятки однотипных правок.
Не стоит рассчитывать:
- На архитектурный рефакторинг «целиком» — агент не удерживает весь замысел системы и легко ломает неявные связи между модулями.
- На код без тестов и без CI: проверить результат будет нечем, а править на глаз в legacy опасно.
- На закрытые базы, где данные нельзя отправлять во внешнее облако — тут нужен локальный или enterprise-контур с гарантиями по данным, читайте условия конкретного вендора.
Сколько это стоит по деньгам и по риску
Стоимость складывается из подписки на инструмент и оплаты токенов модели. Чем больше файлов агент читает и перечитывает, тем дороже сессия — на крупной базе один длинный прогон может обойтись заметно дороже, чем короткий чат. Цены на подписки (Cursor, Copilot, тарифы API OpenAI и Anthropic) меняются каждые несколько месяцев, актуальные смотрите на официальных страницах.
Отдельный риск — не деньги, а доверие. Агент выдаёт правдоподобный дифф, но ответственность за мёрдж на человеке. На legacy-базе, где одна строка может задеть половину системы, ревью каждого изменения обязательно. Агент ускоряет черновую работу, но не снимает с разработчика роль последнего фильтра.
1 Контекстное окно — максимальный объём текста (в токенах), который модель обрабатывает за один запрос: и вопрос пользователя, и приложенный код, и ответ.
2 RAG (retrieval-augmented generation) — подход, при котором модель перед ответом достаёт релевантные фрагменты из внешнего хранилища (здесь — из репозитория) и опирается на них, а не только на память из обучения.
Prompt-инженер: Идеальные запросы для Midjourney, ChatGPT и других моделей.
Спросить за 15 ₽Источники: Anthropic — документация Claude и агентных инструментов, OpenAI — документация по моделям и Codex
Частые вопросы
Может ли агент прочитать весь репозиторий целиком?
Агент сам запускает тесты после правки?
Безопасно ли отправлять корпоративный код во внешний сервис?
Заменит ли агент разработчика на поддержке legacy?
Какой инструмент лучше для больших баз?
Почему одна сессия агента иногда стоит дорого?
Материал носит информационный характер и подготовлен редакцией «Агентуры». Он не является офертой, рекламой или индивидуальной консультацией. Упомянутые продукты, компании и торговые знаки принадлежат их правообладателям. Перед принятием решений, влекущих юридические или финансовые последствия, обратитесь к профильному специалисту.