製品

Bugbot が学習ルールで自己改善できるようになりました

Michael Zhao1分で読めます

2025 年 7 月に Bugbot をベータ版から正式リリースした時点では、Bugbot が特定したバグのうち、関連する PR がマージされるまでに解消されたのは 52% で、残りは誤検知であることを示していました。

現在、解消率は 80% に迫っており、次点の AIコードレビュー製品を 15 ポイント上回っています。

AIコードレビュー製品解消率分析した PR 数
Cursor Bugbot78.13%50,310
Greptile63.49%11,419
CodeRabbit48.96%33,487
GitHub Copilot46.69%24,336
Codex45.07%19,384
Gemini Code Assist30.93%21,031

公開リポジトリのみを分析対象としました。AIコードレビュー製品が生成した各コメントについて、 LLM ジャッジを使って、マージされるまでに対応されたかどうかを確認しました。

これまで、改善はもっぱらオフライン実験によって進められてきました。Bugbot を調整し、その変更で解消率が改善するかをテストし、改善が見られればリリースする、という流れです。

Bugbot がより多くのバグを見つけるようになっても、解消率は上昇し続けていますBugbot がより多くのバグを見つけるようになっても、解消率は上昇し続けています

しかし、オフラインに限定したアプローチでは、多くの学習機会を活かしきれません。Bugbot は 1 日に数十万件の PR をレビューしており、それぞれのレビューは、開発者がその報告に対応したかどうかに基づいて Bugbot が自己改善に活用できる自然な実験です。

こうしたリアルタイムのシグナルを活用するため、Bugbot が過去の実行結果から学習し、実際のコードレビュー過程から得られるフィードバックを学習ルールへ変換できるようにしました。ルールは追加の指示として機能し、Bugbot の実行をより柔軟にカスタムできるようにし、Bugbot が特定の Issue やビジネスコンテキストなどに集中できるようにします。

学習ルール をベータ版として公開して以来、110,000 を超えるリポジトリで学習が有効化され、44,000 を超える学習ルールが生成されています。

学習ルールの仕組み

マージされたすべてのPRには、Bugbotが自己改善し、ルールとして取り込むために活用できるさまざまなシグナルが含まれています。特に重要なシグナルは次の3つです。

  1. Bugbotのコメントに対するリアクション。ダウンボートは、その指摘が役に立たなかったことをBugbotに伝えます。
  2. Bugbotのコメントへの返信。開発者は、何が問題だったのか、あるいはその候補をどうすれば改善できたかを説明します。
  3. 人間のレビュアーからのコメント。これにより、Bugbotが見逃したIssueが指摘されます。
Bugbotの学習プロセスBugbotの学習プロセス

Bugbotはこれらのシグナルを候補ルールに変換し、新たに届くPRに対して継続的に評価します。

シグナルが蓄積されると、Bugbotは候補ルールをアクティブな状態に昇格させ、以降のレビューに反映し始めます。同様に、アクティブなルールが継続的に一貫した否定的シグナルを生み出すようになると、Bugbotはそのルールを無効化できます。ルールはUIで直接編集または削除することもできます。

はじめに

Bugbot が実際のバグを漏れなく検出するには、コードベースやパターン、そしてチームの優先事項を深く理解する必要があります。学習ルールは、その実現に向けた大きな一歩であり、Bugbot を継続的に改善していくための取り組み全体の一環でもあります。

Cursor ダッシュボード では Bugbot の学習を管理でき、学習ルールを有効にしたり、最近の PR を対象にバックフィルを実行したりできます。詳しくは ドキュメント をご覧ください。

カテゴリー: 製品

著者: Michael Zhao