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. Она делает полномасштабные исследования кодовой базы практически выполнимыми и работает в четыре фазы:
- Plan — Devin изучает репозиторий и формулирует правила, по которым определяется код, релевантный вашей цели.
- Shard — правила применяются ко всей кодовой базе, а совпадения разбиваются на компактные пакеты.
- Map — параллельные агенты Devin исследуют каждый пакет, при необходимости читают окружающий код и сообщают о находках.
- 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.