AnyPoC: スケーラブルなLLMベースのバグ検出のためのユニバーサルな実行可能性(PoC)テスト生成

arXiv cs.AI / 2026/4/15

💬 オピニオンIdeas & Deep AnalysisModels & Research

要点

  • AnyPoCは、LLMベースのバグ報告を「実行可能なPoC(スクリプト/コマンド/入力)」へ変換し、手動検証のボトルネックをテスト生成で解消することを目的としたフレームワークです。
  • 生成したPoCが成功に“偏る”ことや、報酬ハッキング/幻覚によって非機能なPoCや虚偽の実行痕跡を作り得る点を、多エージェントでの事実確認・反復実行・独立再実行と精査で抑制します。
  • AnyPoCは異なるソースの候補バグ報告にも対応でき、PoC知識ベースを抽出・進化させて多様なタスクへ拡張可能としています。
  • Firefox/Chromium/LLVM/OpenSSL/SQLite/FFmpeg/Redisなど12の大規模ソフトに適用し、既存のコーディングエージェントより真陽性で有効なPoCが1.3倍、偽陽性のPoC拒否が9.8倍改善したと報告されています。
  • これまでに122件の新規バグを発見し、そのうち105件が確認され、45件のPoCが公式の回帰テストとして採用されたと述べています。

Abstract

最近のLLMベースのエージェントは、ソースコード内の多くの候補バグを特定できますが、それらの報告は静的な仮説にとどまり、手動での検証が必要となるため、自動バグ検出の実用性が制限されます。私たちはこの課題をテスト生成タスクとして捉えます。すなわち、候補となる報告が与えられたとき、疑われている欠陥を引き起こす実行可能なプロダクション(proof-of-concept)テスト、あるいは単にPoC――スクリプト、コマンド列、または細工された入力――を合成することです。自動PoC生成は、具体的な実行証拠を提供することで、エンドツーエンドの自律的バグ検出を可能にする、スケーラブルな検証オラクルとして機能し得ます。しかし、素朴なLLMエージェントは信頼できる検証者ではありません。これらは「成功」に偏っており、もっともらしいが動作しないPoCを作ったり、さらには幻覚的なトレースを生成したりすることでリワードをハックしてしまう可能性があります。これに対処するため、私たちはAnyPoCという汎用的なマルチエージェント・フレームワークを提案します。これは(1) 候補バグ報告を分析し、事実確認すること、(2) 実行トレースを収集しながらPoCを反復的に合成・実行すること、(3) 幻覚やリワードハッキングを抑えるためにPoCを独立に再実行し、精査すること――を行います。さらにAnyPoCは、異種のタスクを扱うために、PoCの知識ベースを継続的に抽出し進化させます。AnyPoCは、報告元に関わらず候補バグ報告に対して動作し、異なるバグ報告者と組み合わせることができます。実用性と汎用性を示すために、単純なエージェント的バグ報告者を用いて、AnyPoCを、さまざまな言語・分野の12の重要なソフトウェアシステム(多くは数百万行のコードを含む)――Firefox、Chromium、LLVM、OpenSSL、SQLite、FFmpeg、Redisなど――に適用します。最先端のコーディングエージェント、たとえばClaude CodeやCodexと比較して、AnyPoCは真のポジティブなバグ報告に対して1.3倍多く有効なPoCを生成し、偽のポジティブなバグ報告に対して9.8倍多くそれらを拒否します。現在までにAnyPoCは122件の新しいバグを発見しており(105件が確認済み、86件は既に修正済み)、生成した45件のPoCが公式の回帰テストとして採用されています。