OpenAI Codexによる自動コードレビュー

OpenAI・サムアルトマン
この記事は約8分で読めます。

OpenAIが開発したCodexのコードレビュー機能についての解説動画である。GPT-5とGP5 Codexは、エンジニアリングチームにとって最も重要なワークフローの一つであるコードレビューを自動化するために、特にバグの発見と問題の調査に特化してトレーニングされている。このモデルは単なる静的解析ではなく、リポジトリ全体にアクセスし、依存関係を追跡し、仮説を立ててPythonコードを書いてテストするなど、ツールを活用できる点が特徴である。OpenAI内部でも既に活用されており、重要なトレーニング実行のバグを防ぎ、馴染みのないコードベースへの貢献をより自信を持って行えるようになっている。GitHub上でのプルリクエストレビューだけでなく、CLI経由でローカルでのレビューも可能であり、変更を提出する前にバグをチェックできる。agents.mdという形式を通じてカスタム指示を与えることもでき、コードベースの理解やレビューの焦点を調整できる。

Automatic code reviews with OpenAI Codex
Maja Trębacz and Romain Huet show you how to set up Codex to automatically review new pull requests in GitHub and in the...

OpenAI Codexによる自動コードレビューの紹介

2つのコメントマークのコードレビューです。皆さんこんにちは、私はRomaです、そして私はMayaです。Codexが効果的なコーディングチームメイトになるためには、2つのことを本当にうまくやる必要があります。まず、あなたのすべてのツールと連携する必要があり、次に、あなたのチームのすべてのワークフローにも組み込まれる必要があります。コードレビューはどのエンジニアリングチームにとっても最も重要なワークフローの1つであり、私たちはそこでも支援したいと考えています。

GPT-5、そして現在はGP5 Codexを使って、これらのモデルをバグを見つけ、いくつかの問題を調査するために特別にトレーニングしました。Maya、もっと詳しく教えてもらえますか。もちろんです。私はOpenAIリサーチ内のアライメントチームで働いており、コードレビューは私たちにとって非常に重要な研究プロジェクトです。AI能力が成長し、より強力なコーディングエージェントが増えるにつれて、私たちは多くのコードを生産しており、人間による検証がボトルネックになっています。

そのため、人間の検証を支援する強力なモデルもトレーニングしていることを確認する必要があり、私たちの検証能力がAI能力と同じ速さでスケールしていることを確認する必要があります。だからこそ、私たちはコードレビューモデルをトレーニングしたのです。そして、これを単に内部の研究演習として行うこともできましたが、実際にはOpenAIのコードベースと相互作用させ、外部にもリリースする方がはるかに有用です。

これは、反復的な展開や、テクノロジーが現実と接触していることを確認するというOpenAIの哲学と非常に一致しています。では、コードレビューを有効にしたいのですが、どうやってやるか見せてもらえますか。もちろんです。最初にやらなければならないことは、Codexのウェブ設定に行って、それを有効にするだけです。

それだけで済むのですね。そして今後、そのリポジトリに提出されたすべてのPRは、Codexによって自動的にレビューされることになるということですね。その通りです。例えば、ここで私は簡単にシンプルな拡張機能をコーディングしました。プルリクエストを作成し、レビューの準備ができているとマークされています。コードレビューエージェントがそれを拾い上げて、レビューを開始します。

その間、ここに目の絵文字が少し表示されています。その通りです。それでは、Codexが既にレビューを完了したものを見せてもらえますか。では、こちらがもう1つです。これは少し違って見えます。なぜなら、ここでは私がPRがまだドラフト段階にあるときに既にレビューをトリガーしており、まだ実際の人間に見てもらいたくなかったからです。

Codexへの手動指示とツールの活用

それは興味深いテクニックですね。つまり、メッセージでCodexを手動で追加するということで、この場合は特定の指示も与えたかったようですね。そうです。いつでも「at codex review this PR」とコメントでき、例えばエージェントがPRを理解するのに役立つ情報や、ここで特定の領域に焦点を当てるよう指示するなど、追加情報を加えることができます。Codexのコードレビューについて私が気に入っていることで、人々に理解してもらいたいのは、これは単なる静的解析ではないということです。モデルはツールにアクセスでき、自分の作業をチェックしたり、テストやコマンドを実行したりできます。このPRで舞台裏で何が起こったか見せてもらえますか。

そうですね、注意すべき重要なことの1つは、モデルが差分だけを見るのではないということです。リポジトリ全体にアクセスできます。依存関係を追跡できます。より広いコードベースの中でそれを理解しようとすることができ、これは唯一の貢献者ではなく、全体を理解していない非常に複雑なコードで作業している場合に非常に重要です。

そして、ここでは、その特定のレビューに至ったすべてのログをレビューすることもできるようですね。そうです。ここでモデルはコードベースを閲覧するだけでなく、実際にいくつかの仮説を立て、その仮説をテストするためのPythonコードを書き、それが実際に正しいかどうかをチェックし、いくつかの例で示すことを決定しました。

それは本当に素晴らしいですね。そして、このモデルがどのようにトレーニングされたのか気になります。バグを見つけるのにこれほど優れたものにするために、何か特別なことをしたのでしょうか。そうですね、これはCodexトレーニングの一部ですが、私たちは実際に重要なバグを捕捉し、人々が実際に修正したいと思うようなバグを本当に優先したい特定のタスクを追加しました。

また、非常に高い精度率を目指すことを確認しました。前世代のモデルに対して評価したとき、誤ったコメント率がはるかに低いことを示しました。しかし、公平に言えば、最も重要な評価は、人々が実際にそれを使用し、実際のバグを見つけ、同時にあまりにも多くのコメントを出力することで迷惑にならないことです。

OpenAI内部での活用事例

そうですね。GPT-5でいくつかの例を見せてもらいましたが、今度はOpenAI内部でどのように使用しているかについてもっと触れたいと思います。そうですね、私たちは既にしばらく使用しており、重要な問題から私たちを救ってくれた多くの例を得ています。重要なトレーニング実行のバグから私たちを救ってくれました。これは潜在的にいくつかの重要なモデルリリースを遅らせる可能性があったり、通常は差分だけからは見えない構成などです。

また、完全には精通していないコードベースにより自信を持って貢献することができます。例えば、ここではCodexのPMであるAlexがVS Code拡張機能に貢献し、変更を実装しています。コードレビューモデルは、それが実装する正しい方法ではないと判断しました。そうですね。CSSでReactプロパティを削除するという点でバグを捕捉したようですね。

そうです、より広いコードを理解せずにこのバグを見つけることは本当に不可能でした。しかし、その後のAlexのフォローアップも気に入っています。「at Codex, it’s fair enough. Fix it up」と言っています。なぜなら、この会話を続けて、Codexに引き継ぐよう依頼できるからです。そうです。コードレビューボットが発見を生成した後、いつでもCodexに新しいタスクをトリガーして実際に修正するよう依頼できます。これは非常に良いワークフローです。

そうですね、それは本当に素晴らしいです。そして、あなたのために作業できるチームメイトとして、いつでもどの場面でもCodexを持つというビジョンです。そして、この場合のCodexコードレビューについて私が気に入っているのは、チームに素晴らしいエンジニアがいるかもしれませんが、彼らは差分を見るだけでなく、頭の中であらゆる可能なシナリオを実行するために多くの時間を費やすことができないかもしれないということです。

そして、ここにはそれを自分の時間で行うことができるCodexがあります。そして、私が触れたかったもう1つのことは、現在、agents.mdがあるということです。これはCodexを含むコーディングエージェント用のオープンフォーマットで、いくつかの特定の指示に従うためのものです。あなたの場合、Codexコードレビューに追加の指示を与えるためにagents MDのようなものを使用したことはありますか。

agents.mdによるカスタマイズと設定

私たちは実際に、カスタムユーザー指示やコードベース内のagents MDを探すことで、操縦可能であるようにモデルを特別にトレーニングしました。そのため、パッケージにカスタムコードレビューガイドラインを追加すると、モデルがコード方法を理解するのに役立ちますが、コードレビューで特に注意を払うべきことや、おそらく無視すべき問題の種類、開発者を悩ませないようにすることについての潜在的な要件もあります。

それは素晴らしいですね。応答するスタイルについてのカスタム特別指示を求めることさえできます。例えば、私はもう少し検証が必要だったので、バグを作るたびに、私がまだ素晴らしいプログラマーであるとCodexに伝えてもらいたかったのです。それは素晴らしいですね。そしてあなたはその通りです。ここまで見てきたのはCodexがクラウドでコードをレビューしていることですが、つい最近、Codex CLIでのレビューも導入しました。ターミナルでもレビューができるようになりました。

非常に多くの場合、GitHubに入る前に既にコードをレビューしたいと考えます。その目的のためには、CLIが完璧であり、コンピューター上でローカルにより多くのことを実行することもできます。モデルに現在の変更をレビューするよう指示するために、単にスラッシュレビューを実行できます。そして、今後数週間でこの機能を大幅に改善する予定です。

つまり、基本的には、PRに提出する前に、ローカルで導入しているすべての変更にバグがないことを確認するということですね。その通りです。素晴らしい。さて、これで全てです。Codexコードレビューです。Codexを使えば、ローカルのターミナルやコードエディタでペアリングするための素晴らしいコーディングエージェントが手に入ります。

いつでもクラウドでタスクを送信できる素晴らしいチームメイトです。また、同僚が見る前に、ローカルでの変更やGitHub上のPRをCodexにレビューしてもらう能力もあります。プロダクションに到達する前にバグを捕捉するのに役立ちます。そして、それがあなたのチームを加速し、最終的により良く、より安全な製品を出荷するのにどのように役立つかを見るのが待ちきれません。ご視聴ありがとうございました。

仕事に戻りましょう。その通りです。

コメント

タイトルとURLをコピーしました