REA(Reverse Engineering for Agents)は、コーディングエージェントにソフトウェアの動作を検査・説明する能力を与えるミドルウェアツールです。プロジェクトのウェブサイトによると、「REAはエージェントにプログラムを検査し、何をするかを説明するツールを提供します」とあり、機能を十分に理解して説明、変更、または再構築できることを目的としています。このツールは、ネイティブバイナリ、JavaScript/Electronアプリケーション、ウェブサイトなど複数のドメインでの分析をサポートしており、GitHubリポジトリでは「バイナリ、アプリケーション、ランタイム動作全般にわたる逆エンジニアリングのための1つのMCP」と説明されています。
この図は、モデルコンテキストプロトコル接続を通じてREAがどのように動作するかを示し、エージェントがソフトウェアを検査し、その挙動についての証拠に基づく発見を受け取れることを説明しています
REAはモデルコンテキストプロトコル接続を通じて動作し、エージェントはプレーンランゲージでリクエストを行い、証拠に基づく発見を受け取ります。Windows Calculatorが200 + 10%に対して220を返す理由を調べた際、REAはCalculator DLLを調査し、パーセンテージハンドラーが現在の操作に基づいて分岐していることを示しました:乗算または除算の場合、パーセンテージ値を単純な分数(current / 100)として扱い、加算または減算の場合、最初のオペランドのパーセンテージ(current × previous / 100)を計算します。これにより結果が説明されます:200の10%は20なので、200 + 20 = 220となります。もう一つの例として、REAはChromiumベースの恐竜ゲームを調査し、更新ロジック `if (this.currentSpeed < this.config.MAX_SPEED) { this.currentSpeed += this.config.ACCELERATION; }` を抽出しました。これにより、ゲームが6ユニットから始まり、フレームごとに0.001ずつ加速し、13で上限に達することが明らかになり、エージェントは速度を調整可能なレプリカを再構築することができました。

この画像は、REAがHopperなどの逆エンジニアリングツールと統合してネイティブバイナリを分析する技術的実装を示しており、Windows Calculator DLLの調査と同様の方法です
REAを起動するには、エージェントは `npx rea-agents setup` を実行し、これによりMCPサーバーが登録され、ユーザーの承認後に必要な解析バックエンドがインストールされます。このセットアップは、Claude Code、Codex、Cursor、Gemini CLI、Grok Buildなどのさまざまなエージェントをサポートします。設定後、エージェントはプレーンランゲージの質問を行うことであらゆる対象を調査でき、REAはコードスニペットだけでなく、特定のアセンブリ命令、関数トレース、定数値などの結論の裏付けとなる証拠も返します。この証拠に基づくアプローチにより、エージェントは理解を検証し、正確な再構築を構築することができ、ソースコードにアクセスせずに既存のソフトウェアとやり取りし、学習するAIエージェントの方法における大きな進歩を表しています。

これらのショーケースは、記事で説明されたWindows Calculatorおよび恐竜ゲームの例と同様に、REAの機能の実際の例を示しています