
AIによるコードレビューを手がけるCodeRabbitは、開発支援エージェントCodexの活用により、エンジニアを増やさずに直近6カ月のソフトウェア出荷量が約20倍になったとしています。同社はリリース工程や人間の承認を見直すとともに、AIが生成した変更の検証と脆弱性の検出・修正にも利用範囲を広げています。
出荷量の拡大に合わせて承認とリリース工程を再設計
CodeRabbitは、AIが生成したコードを理解・レビューし、リリースできるか判断するためのプラットフォームです。2万を超える組織と15万以上のオープンソースプロジェクトで利用されています。
共同創業者兼CEOのHarjot Gill氏は、取材前の30日間に自身が送ったプルリクエストを2500〜3000件と見積もっています。プルリクエストとは、コードの変更をレビューし、取り込むための依頼です。
複数のエージェントを動かす過程では、パソコンのメモリーや計算能力、テスト、ソフトウェアをビルド・パッケージ化するツール、依存関係が制約になりました。チームはリリース手順を効率化し、人間の承認を置く箇所を再検討しています。人の介入を必要としない低リスクの変更には、CodeRabbitによる自動リリースを使っています。
業務用チャットSlackには、Codexを使って本番障害やメッセージ、サポート依頼を分類・整理するボットも導入しました。ボットは変更案をプルリクエストとして返し、チームがレビューして取り込めます。
レビューでは変更箇所の外にある依存関係も調べる
CodeRabbitは最初の製品にGPT-3.5 Turboを使い、その後、GPT-4、OpenAI o1、OpenAI o3を採用しました。レビューはクラウド上で非同期に実行するため、分析能力を重視して推論時間の長いモデルを使える構成です。
新しいモデルは、既知の問題を集めた独自の評価用データで検証しています。Gill氏は、取材時点でGPT-6 Astraがそのデータ内の問題の50%を検出し、比較したモデルの中で最上位だったと見積もっています。評価用データは、エージェントが生むミスや修正後に見つかった問題に合わせて更新されます。
モデルの使い分けも進めています。当初はコード内の関連箇所を探す補助エージェントが1〜2個でしたが、現在は低コストのGPT-6 Lunaなどを補助処理に、GPT-6 Astraなどを計画立案や処理全体の調整に使っています。CodeRabbitは、価格とキャッシュの改善によって、より多くのエージェントを製品に組み込めるようになったとしています。
レビューで参照する対象には、コード全体に加え、関連する作業チケット、過去のプルリクエスト、チームの意思決定も含まれます。コードコンテキストとは、こうした変更行の外側にあるコードや規約、履歴などの情報です。CodeRabbitのコンテキストエンジンは、これらを検索できるよう整理し、レビューに利用します。
依存関係を調べる具体例として、同社の公開デモ「Outside-Diff Impact Slicing」があります。変更した関数・クラスを特定し、そのコードが呼び出す処理と、逆にそのコードを呼び出す側を探して、差分とともにモデルへ渡す仕組みです。
このデモは、関数の引数を変更した際に呼び出し側の修正が漏れる問題や、引数の個数の不一致、変更箇所と依存先の間での仕様上の不整合を検出対象としています。CodeRabbitのレビューでも、複数ファイルにまたがるデータの流れを追い、信頼できない入力が重要な処理に到達する経路を検査します。
CodeRabbit Secureで顧客コードの脆弱性を検出・修正
CodeRabbitは2023年から、外部への影響を制限したサンドボックス環境でエージェントを動かし、コードを取得・変更しながらレビューを行ってきました。その後、OpenAIのセキュリティ向けモデルCyberをDaybreak経由で使い、自社プラットフォームへの侵入経路を探すペネトレーションテストを実施しました。Gill氏は、この検証で複数の脆弱性が見つかったと述べています。
顧客向けの新製品「CodeRabbit Secure」では、DaybreakとCodexモデルを使うセキュリティエージェントが脆弱性を検出・修正します。CodeRabbitの集計では、直近2週間に100万ドル(約1億6,000万円)分の詳細スキャンを無償提供する施策を行い、1万3000回のスキャンで4万3000件を超える脆弱性を検出しました。このうち数千件は顧客によって修正済みです。
同社が行うコードの検査と侵入テストでは、調べる対象や必要な環境が異なります。静的アプリケーションセキュリティテスト(SAST)は、アプリを実行せずにコードを解析し、安全でない関数やデータの流れなどを調べます。動的テストは稼働中のアプリへ外部から攻撃を模した操作を行い、認証や設定、実行時の挙動を検査します。
静的解析はソースコードがあれば開発中に実施できます。一方、外部からの攻撃を模擬する動的テストや手動のセキュリティ診断は、実行中のアプリが対象です。侵入テストでは、コード上で見つかった問題を実行環境で悪用できるか、設定やコンポーネント間の連携に問題があるかを検証できます。
出荷工程の評価には速度や安定性、開発者の体験も使う
CodeRabbitが見直したテストや承認、リリースの工程は、開発生産性を測る枠組みでも評価対象になります。DORAの「Four Keys」は、本番環境へ変更を展開する頻度、コード確定から展開までの時間、展開後に修正が必要となった変更の割合、障害からの復旧時間という4つの指標で構成されます。
より広く開発の状態を捉えるSPACEは、満足度と健康、成果、活動量、コミュニケーションと協働、効率とフローの5つの観点を扱います。個人・チーム・システムという複数の階層で評価する枠組みです。
SPACEの共著者Brian Houck氏は、一定期間に処理するプルリクエストの量が、システムの健全性やコードの流れにある摩擦を見つけるために有用だと評価しています。また、開発者の満足度などと組み合わせて活用することを重視しています。
広告運用にもCodexを使い、コード検証の対象を拡大
CodeRabbitは開発以外にもCodexを使っています。Google Adsの広告はプルリクエストを通じて管理し、変更を取り込むことで配信します。コンテンツ制作用のコードリポジトリでは、Codexがスライドや顧客向け文書を作成しています。
今後は、エージェントが生成した変更の検証、優先順位付け、説明、セキュリティ確認を大規模に扱う方向へ事業を広げます。Gill氏は、人が毎回作業を開始しなくてもエージェントが警告や障害に対応するようになるにつれ、どの変更を完了まで進めるか判断する支援の必要性が高まると見込んでいます。











