Devin Code Scans: от широкой инженерной цели — до готовых pull request

· 1 мин чтения
devin ai-agents code-quality code-review tools
Devin Code Scans: от широкой инженерной цели — до готовых pull request

Многие инженерные задачи начинаются не с конкретного изменения, а с желаемого результата: улучшить SEO, снизить затраты на поддержку, ускорить компиляцию приложения. Такие цели обычно вечно живут в бэклоге, потому что уже первый шаг — выяснить, с чего вообще начинать, — сам по себе превращается в отдельный проект. К тому же найти проблемные места — только половина работы: потом кто-то должен внести все исправления, и их обычно много. Cognition представила Code Scans — новый режим Devin, который закрывает обе части задачи: агент сам исследует кодовую базу, оценивает находки и открывает по ним pull request.

Что такое Code Scans

Code Scans — это способ превратить широкую инженерную цель в конкретные улучшения кодовой базы. Вы описываете, чего хотите достичь, а Devin помогает решить, что именно нужно проверить, исследует код, собирает находки в отчёт с приоритетами и превращает их в готовые к ревью pull request.

Запустить сканирование можно командой /scan в веб-приложении Devin; детали описаны в документации.

Команды, тестировавшие функцию до релиза, делятся заметными результатами. Так, команда Digital Computational Pathology и Enterprise Informatics в Philips сообщает о 96-процентной доле слитых pull request и более 700 сэкономленных инженерных часов за короткий период тестирования.

Как это работает: Agentic MapReduce

В основе Code Scans лежит архитектура Agentic MapReduce, которую Cognition изначально построила для Devin Security Swarm. Она делает полномасштабные исследования кодовой базы практически выполнимыми и работает в четыре фазы:

  1. Plan — Devin изучает репозиторий и формулирует правила, по которым определяется код, релевантный вашей цели.
  2. Shard — правила применяются ко всей кодовой базе, а совпадения разбиваются на компактные пакеты.
  3. Map — параллельные агенты Devin исследуют каждый пакет, при необходимости читают окружающий код и сообщают о находках.
  4. Reduce — финальный агент объединяет результаты, убирает дубликаты и выстраивает единый отчёт по приоритетам.

Такой подход удерживает контекст каждого агента сфокусированным: бюджет рассуждений тратится на релевантный код, а не на повторный поиск. Архитектура гарантирует и полноту — каждый выбранный пакет обязан быть обработан.

Начать с цели, а не с файла

Перед запуском сканирования не нужно знать, какие файлы смотреть. Вместо этого вы формулируете, что ищете, а Devin вместе с вами превращает цель в конкретное исследование кодовой базы. Например:

Найди неиспользуемый код в нашем веб-приложении. Исключи сгенерированные файлы и тестовые фикстуры, и перед тем как рекомендовать удаление, проверь косвенные ссылки.

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

После подтверждения объёма и настроек Devin выполняет исследование и возвращает список находок, упорядоченный по приоритетам. Дальше вы изучаете доказательства, обсуждаете результаты с агентом и просите открыть pull request по тем проблемам, которые хотите устранить.

Пример: ускорение компиляции Rust

Cognition попросила Code Scans ускорить компиляцию репозитория Dioxus. Devin нашла возможности упростить зависимости и конфигурацию сборки — в том числе сделать тяжёлые возможности CLI опциональными вместо компиляции их по умолчанию. После применения изменений локально время чистой debug-сборки упало с 58,6 до 21,0 секунды — сокращение на 64% по 22 крейтам рабочего пространства.

Среди находок сканирования:

  • включённая по умолчанию возможность mounted притягивает тяжеловесные web-sys, js-sys и wasm-bindgen к каждому рендереру, не работающему с вебом;
  • фундаментальный крейт dioxus-html несёт огромные сгенерированные таблицы элементов и атрибутов вместе с изменчивой логикой, что вызывает полную ре-экспансию и перекомпиляцию зависимых пакетов;
  • разворот макроса builder_constructors! — доминирующая стоимость компиляции html-крейта: около 112 элементов с индивидуальными вызовами proc-macro;
  • cargo-generate компилируется безусловно в dioxus-cli, хотя нужен только для команды scaffolding-а;
  • dioxus-ssr подключает tokio с набором возможностей full, но использует лишь fs и io-util.

Пример: SEO-оптимизация

На сайтах devin.ai и cognition.com сканирование по SEO выявило 44 находки, исправления по которым вышли в течение нескольких дней. Сравнение краулов Ahrefs до и после:

  • оценка здоровья devin.ai выросла с 87 до 92;
  • количество медленных страниц на devin.ai сократилось на 73%;
  • отсутствующий alt-текст у изображений на cognition.com полностью устранён.

Примеры типичных находок: страницы кейсов отдают относительные адреса og:image и twitter:image вместо абсолютных, требуемых спецификацией; цепочки редиректов добавляют лишний переход; og:url главной страницы не совпадает с каноническим адресом; часть индексируемых продуктовых страниц не отдаёт JSON-LD; страница завершившегося мероприятия остаётся индексируемой и всё ещё рекламирует регистрацию.

Что можно сканировать

Code Scans умеет исследовать широкий круг инженерных вопросов, опираясь на конвенции кодовой базы и заданные вами критерии:

Тип сканирования Цель
Производительность Медленные пути, избыточные вычисления, упущенные возможности кэширования
Запросы к базе N+1, лишние обращения, неограниченные выборки и другие неэффективные паттерны доступа к данным
Покрытие тестами Важные сценарии, краевые случаи и пути отказов без тестов
Мёртвый код Неиспользуемые функции, модули, зависимости и устаревшие фичефлаги — с доказательствами безопасности удаления
Качество кода Дублирование логики, лишняя сложность, нарушения стандартов команды
Очистка Избыточные абстракции и boilerplate, упрощение без изменения поведения
Телеметрия Пробелы в логировании, метриках и трассировке, мешающие диагностике отказов
Доступность Отсутствующие подписи, сломанная навигация с клавиатуры, пробелы относительно заданных критериев WCAG
Комплаенс Работа с чувствительными данными, журналы аудита и удержание данных согласно требованиям регуляторов
Планирование миграции Трассировка зависимостей, сквозных потоков и бизнес-логики для плана миграции
SEO Отсутствующие или дублирующиеся метаданные, некорректные канонические адреса, директивы индексации, пробелы в sitemap и структурированных данных
Своё Любой паттерн, который нужно найти по всей кодовой базе

Самое полезное сканирование может вырастать из вопроса, который команда давно откладывала, потому что ответ на него требовал просмотреть всё. Чтобы попробовать, введите /scan в сессии Devin, опишите, что хотите исследовать, вместе с агентом определите объём — и начните улучшать кодовую базу. Продукт доступен на devin.ai, подробности — в документации Code Scans.

Источник: https://devin.ai/blog/introducing-code-scans