Реалистичные способы использования агентов для анализа устаревших кодовых баз

Computing/Software3분 읽기

TuBrief 편집팀 원본 영상을 바탕으로 AI의 도움을 받아 작성했습니다. 원본 영상이 기준입니다. 원본 영상: Я перестал использовать Grep, и мой агент стал в 10 раз быстрее · Better Stack

Инженер, работающий над масштабным legacy-проектом, ежедневно тратит по 2 часа на разбор кучи кода. Метод поиска строк через grep уже достиг своего предела. Даже если вы хотите внедрить AI-агентов, в реальности неясно, как именно интегрировать их в рабочий процесс. Эта статья описывает конкретные технические процедуры, которые помогут сделать агента не просто чат-ботом, а инструментом, повышающим практическую продуктивность.

Сначала уберите шум

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

Примените следующие 3 совета немедленно:

  1. Создайте файл .cursorignore в корне проекта. Обязательно исключите огромные артефакты сборки, такие как /dist, /build, /target, node_modules.
  2. Также исключите заглушки Protobuf или автоматически сгенерированные файлы *.gen.ts. Это предотвратит создание агентом кода, игнорирующего обратную совместимость.
  3. Используйте инструменты синхронизации на основе деревьев Меркла. Не перестраивайте весь индекс каждый раз — обновляйте только хеш-значения измененных файлов, чтобы увеличить скорость индексации более чем в 3 раза.

Отслеживайте зависимости с помощью синтаксического дерева

Текстовый поиск никогда не сможет обнаружить сложные отношения наследования. Необходимо анализировать синтаксическое дерево (AST) кода с помощью инструментов типа ast-grep. Внедрение этого в промпты позволяет делать запросы гораздо точнее, чем при простом поиске.

  1. Определите шаблоны синтаксиса для анализа. Например, напишите на языке ast-grep шаблон асинхронной функции, в которой отсутствует обработка ошибок.
  2. Отправьте агенту инструмент @codebase вместе с этим шаблоном. Добавьте инструкцию, чтобы он игнорировал внешние библиотеки и сузил область поиска только до отношений наследования между внутренними модулями.
  3. Заставьте агента выводить результаты в виде диаграммы Mermaid. Визуализация сложных цепочек вызовов позволяет сократить время на решение проблем примерно на 40%.

Проверяйте исправления с помощью тестов

Исправления, предложенные AI, наполовину ошибочны. Если смерджить их без проверки, накопление технического долга неизбежно. Автоматизируйте цикл проверки, встроив анализ влияния тестов (TIA) в ваш CI-пайплайн.

  1. Напишите скрипт, который запускает только тесты, связанные с измененным кодом, подобно Jest --findRelatedTests.
  2. Дайте указания агенту: установите цикл, при котором, если тест падает, агент анализирует логи ошибок и исправляет код самостоятельно.
  3. Добавьте инструменты типа CodeQL на этап CI. Они автоматически отфильтруют даже те уязвимости безопасности, которые сложно заметить человеку.

Построение такого цикла позволит значительно повысить точность проверки синтаксической корректности. Не нужно выбрасывать существующий инструментарий. ripgrep по-прежнему в 10 раз быстрее любого агента при простом поиске. Настоящая работа синьор-инженера заключается в разделении ролей в соответствии с особенностями инструментов.

관련 영상

Я перестал использовать Grep, и мой агент стал в 10 раз быстрее

Better Stack8:06

커뮤니티의 다른 글

댓글

로그인하고 댓글을 남겨 보세요.

아직 댓글이 없습니다.