LeanREA — навык для анализа программ без MCP

LeanREA — навык для ИИ-агентов, который использует команды терминала вместо MCP при анализе программ. Сравниваем с REA и объясняем ограничения.

LeanREA — небольшой навык для ИИ-агентов, которые исследуют программы, приложения и бинарные файлы. Вместо отдельного MCP-сервера он подсказывает агенту, какие обычные команды терминала использовать и на какие особенности обратить внимание. Файл навыка занимает около 8 КБ; проект распространяется по лицензии MIT.

Автор проекта сравнивает LeanREA с REA — набором инструментов для обратного анализа программ. В тесте на Claude Code LeanREA затратил меньше времени и денег, однако получил на один балл меньше. Это результат небольшого авторского эксперимента, а не гарантия ускорения в каждом проекте.

Чем LeanREA отличается от REA

REA подключает к агенту специализированные команды через MCP — протокол для связи ИИ-модели с внешними инструментами. В версии REA 6.5.0, использованной для сравнения, такой подход добавлял MCP-сервер и 207 описаний команд. Это удобно, когда агенту нужен готовый набор структурированных операций для разных типов программ.

LeanREA устроен проще: это файл с инструкциями и командами для терминала. CLI (командная строка) остаётся единственным интерфейсом к установленным утилитам. Навык не добавляет агенту отдельные инструменты и не запускает собственный сервер. Навык направляет агента к уже установленным программам — например, к утилитам для изучения файлов приложения, анализа исполняемого кода или просмотра сетевых данных. Агент сам запускает команды и разбирает их вывод.

Поэтому сравнение не означает, что LeanREA полностью повторяет все возможности REA. Он предлагает более лёгкий рабочий процесс для задач, которые можно решить через доступные CLI-инструменты; REA остаётся отдельным проектом с собственной инфраструктурой. Создатель LeanREA отмечает, что проект не связан с командой REA.

Какие задачи описаны в навыке

LeanREA содержит подсказки по выбору команд и начальные последовательности проверки для разных форматов:

  • приложения Electron и архивы ASAR, веб-сборки JavaScript и карты исходного кода;
  • программы для macOS, Linux и Windows, включая форматы Mach-O, ELF и PE;
  • сборки на Go и Rust, приложения .NET, Android APK и Flutter;
  • WebAssembly, SQLite, сетевые записи PCAP и HAR, прошивки и исследование сайтов во время работы.

Навык советует сначала определить тип файла по его содержимому, а затем выбирать минимальный набор подходящих проверок. Для анализа больших минифицированных файлов он предлагает извлекать нужные фрагменты, а не передавать агенту весь файл. Для поиска по извлечённым каталогам используются обычные средства командной строки, включая ripgrep.

Как LeanREA старается сделать выводы проверяемыми

Инструкции предлагают работать с копией исследуемого файла и помечать выводы как непосредственно найденные, выведенные из наблюдений или пока неизвестные. Это помогает отделить строку, найденную в бинарном файле, от предположения о том, что она означает. Но навык не подтверждает правильность ответа автоматически: качество результата зависит от установленного ПО, версии исследуемого приложения и того, как агент интерпретировал данные.

Что показало сравнение с REA

В опубликованном тесте Claude Code запускали без интерфейса на macOS с процессором Apple Silicon и моделью Sonnet 5.5. Сравнивали четыре задачи обратного анализа: изучение Electron-приложения, проверку нативного расширения, определение сведений о сборке Go-бинарного файла и разбор протокола по дизассемблированному коду. Каждую задачу повторили три раза для трёх вариантов: LeanREA, REA и работа без дополнительного навыка.

LeanREA завершил задачи за 388 секунд и потратил 2,17 доллара; REA — за 627 секунд и 3,36 доллара. Так получаются заявленные автором 38% меньшего времени и 35% меньших расходов. При этом LeanREA набрал 74 балла из 75, а REA — 75 из 75. В одном ответе LeanREA указал прежний IPC-канал (канал межпроцессного взаимодействия) вместо версии 2; автор теста отмечает, что оба канала существуют.

В тех же запусках LeanREA использовал 2,40 млн токенов и 55 обращений к агенту, REA — 5,93 млн токенов и 124 обращения. Однако цифры зависят от способа загрузки команд: автор отдельно приводит оценку объёма, когда описания всех инструментов REA загружены сразу, и уточняет, что Claude Code умеет искать нужные инструменты по запросу. В тесте также сравнивались конкретные версии приложения и бинарного файла, поэтому воспроизведение с другими версиями может дать иные результаты.

Без навыка базовая модель набрала 67 из 75 баллов за 479 секунд и 2,21 доллара. По оценке автора, выигрыш LeanREA относительно этого варианта скромнее, чем при сравнении с REA. Все замеры выполнены одним автором на одной машине, по три раза на сценарий; их стоит рассматривать как ориентир, а не независимый бенчмарк.

Что потребуется для работы

LeanREA не устанавливает Ghidra, Hopper, JADX и другие анализаторы. Он даёт инструкции для агента, а нужные программы и системные утилиты должны быть доступны в окружении самостоятельно. В исходном тесте Ghidra, Hopper и JADX не были установлены, поэтому нативные задачи выполнялись средствами Xcode. Это ограничивает то, какие выводы можно сделать о поведении LeanREA на специализированных инструментах.

Навык можно добавить через команду npx skills add aicodeking/leanrea. Установщик skills поддерживает Claude Code, Codex, Cursor, Gemini CLI, OpenCode и другие совместимые среды. Если агент не умеет устанавливать навыки, автор предлагает вручную скопировать каталог проекта в папку навыков Claude Code либо передать файл инструкций в правила агента.

Когда LeanREA может пригодиться

LeanREA стоит рассмотреть, если ИИ-агент уже умеет запускать команды в терминале, а отдельный MCP-сервер кажется лишним для конкретного исследования. Он может сократить количество инструментальных описаний, загружаемых в контекст, и дать агенту короткий маршрут по проверкам. Для задач, где нужны операции, которых нет в системе, одного файла инструкций недостаточно: потребуется установить нужные утилиты или воспользоваться специализированным набором вроде REA.

Репозиторий LeanREA: github.com/aicodeking/leanrea. Подробности эксперимента, таблицы и ограничения автор опубликовал в описании бенчмарка.

Открыть репозиторий LeanREA