Featured image of post OpenAI Core Experimentationチームに学ぶ、AIを活用した「使われていないコード」削除の現実と手法

OpenAI Core Experimentationチームに学ぶ、AIを活用した「使われていないコード」削除の現実と手法

AIアシスタントを活用したコード生成や機能開発が高速化する一方で、プロジェクト内に残される古い実験コード、不要になった機能フラグ、不安定なテスト(flaky test)などの保守コストやコードベースの肥大化が課題となっています。

OpenAIのCore Experimentationチームが公開した事例報告『Maintaining software with the GPT-6 family』では、GPT-6 Astra(Codex上で利用されたモデル)を用いて大規模なコードクリーンアップを実施したプロセスと、運用上のリスクを回避するためのアプローチが紹介されています。

本記事では、この公式報告で示された調査プロセスや人間によるコードレビューの重要性、個人開発者でも応用できる「安全なデッドコード削除」の考え方を解説します。

AI単独では完結しない「使われていないように見えるコード」の危険性

単純な静的解析ツールでは、「参照されていないように見えるコード」が本当に削除可能かどうかを判断できないケースが多々あります。特に以下のような要素が絡む場合、コード上は未使用に見えても本番環境で動作している可能性があります。

  • 動的なクラス・メソッドの呼び出しや間接参照

  • 設定ファイルや文字列リフレクションによる定数・Enum値の利用

  • 他サービスや外部システムからのAPI経由での参照

  • 障害発生時に安全に処理を遮断するためのキルスイッチ(Killswitch)やフォールバック処理

OpenAIの事例でも、Astraにリポジトリ全体の調査を依頼する際には、上記のような定数・ラッパー・エイリアス・動的名称・他サービスの利用状況を確認し、最終的に本番環境の設定やテレメトリ(計測情報)で実態を裏付ける条件が設定されています。また、調査段階では本番設定やサービスを変更しないことが徹底されています。

根拠を集める:多角的な情報照会と人間のレビュー

削除の可否を判断するために、Astraはコードそのものだけでなく、複数の情報源をクロスチェックして削除理由を導き出しました。

調査対象となった主なリソース

  • コードおよびリポジトリの履歴: Gitの変更履歴、過去のPR(Pull Request)、重複PRの確認

  • コミュニケーション・タスク管理: 社内Tracker、Slackでの過去の議論

  • 本番環境の動的情報: ライブ状態のStatsig(機能フラグ)設定、本番環境のプロファイリング表

人間による判断が必要な例:「Permanent」フラグの扱い

調査の中で、機能フラグ管理コンソール上で「Permanent」と指定されている1行のフラグが、広範なCPU処理を呼び出していることが発見されました。

このフラグは「Permanent」という指定がなされていたため、運用上の恒久的な役割が残されている可能性がありました。そのためAstraは自律的に削除せず、人間のエンジニアによるレビューへ回しました。その後の人間による確認を経て安全に削除された結果、主な対象サービスにおいて推定0.42%のCPU使用量削減が確認されました。

AIがどれだけ高度な推論を行っても、運用上の意図や文脈を持つ人間が最終判断を下すプロセスが不可欠であることを示す象徴的な例です。

OpenAI社内チームの実績とプロセスの現実

OpenAIの報告によると、エンジニア5名が主業務と並行して約2週間、複数のリポジトリでプロンプトの変形を実行しながらクリーンアップを行いました。

  • PRの作成とマージ: 1,400件を超えるPRがマージされました。

  • コード削減: 80万行以上の不要なコードが削除されました。

  • コンテナサイズの削減: ある1つのサービスのコンテナイメージサイズが3.31GBから1.72GBへと削減(約48%減)されました(※全社の全イメージが48%削減されたわけではありません)。

ここで重要なのは、これらはすべてAIが単独で完結させたものではなく、文脈を理解している各チームのエンジニアが慎重にコードレビューを行った結果であるという点です。また、新たな提案の中には便益に比べて複雑さが増してしまうものもあり、優先順位付けと効果測定が必要であることも示されています。

小さく始める:個人開発にも取り入れられるクリーンアップ手順

同記事では、AIを活用したコード保守を安全に開始・継続するための具体的な手順が推奨されています。

  1. 小さく対象を特定する: 未使用コード、古い機能フラグ、不安定なテストなど、まずは小さな保守課題を1件特定する。

  2. 証拠を集める: 設定、Git履歴、関連ドキュメントなどを確認し、削除しても問題ない根拠を揃える。

  3. 小さなDraft PRを作成する: 変更範囲を小さく抑えたDraft PRを作成し、影響範囲を明確にする。

  4. レビュー結果をプロンプトにフィードバックする: 人間によるレビューやテスト結果で得られた知見を次のプロンプトに反映し、精度を高める。

  5. 段階的に範囲を広げる: 手法が安定してから、徐々に調査・削除の対象範囲を拡大する。

まとめ

AIアシスタントを活用したデッドコード削減は、単にコードを自動削除させる仕組みではありません。「AIが多角的な情報源から証拠を集めて小さな改善案(Draft PR)を作成し、人間が運用上の文脈に基づいてレビューする」という協調作業のプロセスです。

自身のプロジェクトで保守を行う際も、数字や自動化だけに頼るのではなく、本番設定・履歴・運用上の役割を慎重に確認しながら、小さな単位で安全に進めていくことが推奨されます。

参考

OpenAI Blog: Maintaining software with the GPT-6 family(2026年10月14日表示)

この記事は Gemini Web(モデル未確認)が執筆しました。

Next Action

おすすめリンク

この記事に合わせて、関連アイテムを探しやすいリンクをまとめています。

Affiliate Links

AIエージェント設計を深掘りする

AIエージェントや開発まわりを、もう少し詳しく学びたい人向けです。

AIエージェント設計の本を探す Claude、LLM、エージェント設計を深掘りしたい時向け
AI開発・Python本を探す API連携や実装まで踏み込みたい時向け
生成AIの本を探す 入門書、活用本、プロンプト本向け

外部ストアへのアフィリエイトリンクです。気になるものだけ開けば十分です。

この記事にお便りを送る

送信した内容は、その場ではページに出ません。届いたメールを管理人が読んで、 載せてよいものだけをこの欄に手で掲載し、そのとき返事も添えます。 時間差のあるコメント欄だと思ってください。 掲載しないこともありますし、返信をお約束するものでもありません。

B!