OpenAIのChatGPT、Codexのアップグレード:初期印象

OpenAIの最新の革新であるCodex AIエージェントは、コーディングへの新しいアプローチ、ChatGPTのようなインターフェースによって駆動される「vibe-coding(雰囲気コーディング)」環境を導入します。そのコンセプトは最初は見かけ倒しのように見えるかもしれませんが、新しいCodexエージェントの能力は非常に印象的です。

OpenAIはCodexを研究プレビューとしてラベル付けしており、まだ活発な開発中であることを示しています。現在、ChatGPT Pro、Enterprise、およびTeamティアの加入者がアクセスでき、近い将来PlusおよびEduユーザーにも可用性を拡張する予定です。

OpenAIの発表によると、Codexという名前は2021年から進化し続けるコーディングツールと関連付けられてきました。このディスカッションでは、「Codex」は新たに発表されたバージョンを指します。

CodexはOpenAIのサーバー上に存在し、GitHubリポジトリと統合されています。デモンストレーションは、Codexがチーム内の追加のプログラマーとして機能することを示唆しています。

一連のバグを解決するように指示し、それに応じてタスクを実行できます。また、コードの変更に関する承認を求めますが、自律的にコードを変更する能力があるようです。

Codexは、コードの分析と変更、特定の問題の特定、改善すべき領域の特定、およびその他のコーディングおよびメンテナンスタスクを実行できます。各タスクは新しい仮想環境を開始し、AIがコンセプトと設計からユニットテストまで、すべてを処理できるようにします。

コーディングにおけるパラダイムシフト

これは、コーディングパラダイムにおける真の変化を意味します。以前のAIコーディング支援は、主にオートコンプリート機能を含み、既存のコードに基づいてコードの行またはブロックを自動的に生成していました。

テクノロジーは、AIが小さなコードセグメントを作成またはデバッグできるレベルまで進歩しました。これは、ZDNETのプログラミングテストに関して私が特に関心を持っている側面です。

AIのもう1つの役割は、システム全体の分析です。最近、コードベース全体を分解し、コードレビューと推奨事項を提供する新しいDeep Researchツールを調査しました。

Codexは現在、チームの他のプログラマーまたはコードメンテナンスを学習しているジュニアプログラマーにタスクを委任するのと同様に、プログラミングタスク全体をクラウドのAIに委ねることができる地点に到達しています。

OpenAIはこれを「エージェントネイティブソフトウェア開発。AIは作業を支援するだけでなく、独立して作業を引き受ける」と説明しています。

公開されたビデオでは、Codexが複数のタスクを同時に管理する能力が示されており、それぞれが別々の、隔離された仮想環境で動作しています。

プログラマーはタスクをエージェントに割り当て、エージェントは独立して作業を実行しました。完了すると、エージェントはテスト結果を提供し、コードの変更を提案しました。

デモではcodexが、バグの修正、typoのスキャン、タスクの提案、プロジェクト全体のrefactoring(動作を変更せずに構造を改善するためのコードの変更)を実行している様子を紹介がされました。

シニア開発者とデザイナーは、要件を明確にし、他の人の作業をレビューすることに慣れています。Codexを使用しても、彼らにとって大きな変化は生じません。ただし、要件の明確化とレビューのスキルが低い開発者は、Codexの管理が少し難しいと感じるかもしれません。

それにもかかわらず、ツールがデモンストレーションどおりに機能する場合、Codexは小規模なチームと個々の開発者がより多くのことを達成し、反復的なタスクを削減し、問題レポートにより効果的に対応できるようにします。

潜在的な落とし穴と緩和戦略

ChatGPTのコーディング機能の初期の経験から、集中力を失ったり、意図した方向から逸脱したりする傾向があることが明らかになりました。これは個々のコードブロックにとっては壊滅的なことではありませんが、コーディングエージェントが制限された監督下で動作することを許可された場合、意図しない問題のある結果につながる可能性があります。

これに対処するために、OpenAIはCodexをAGENTS.mdファイルに記述された指示を遵守するようにトレーニングしました。このファイルはリポジトリにあり、プログラマーとチームがCodexの動作をガイドできます。これには、命名規則、フォーマットルール、およびコーディングプロセス全体で必要なその他の一貫したガイドラインに関する指示を含めることができます。これは、ChatGPTのパーソナライズ設定をリポジトリ中心のチーム環境に拡張するものです。

さらに、OpenAIは、開発者のマシンでローカルに実行されるCodex CLIと呼ばれるCodexのバージョンを導入しました。非同期的に動作し、完了時にレポートを提供するクラウドベースのCodexとは異なり、ローカルバージョンはプログラマーのコマンドラインを介して動作し、同期的に機能します。

基本的に、プログラマーは指示を入力して、Codex CLIプロセスが結果を返すのを待ちます。これにより、プログラマーはオフラインで作業し、アクティブな開発マシンのローカルコンテキストを活用できます。

将来性のある研究プロトタイプ

デモは印象的でしたが、開発者は、彼らが見せてリリースしているものが研究プロトタイプであることを強調しました。「魔法のような瞬間」を提供する一方で、まだ大幅な開発が必要です。

私は、このテクノロジーが開発の将来と私自身の開発プロセスに与える具体的な影響を理解しようとしてきました。 私の主な製品は、オープンソースのWordPressプラグインであり、プロプライエタリなアドオンプラグインがあります。 Codexは、オープンソースのコアプラグインについてパブリックリポジトリを分析できる可能性があります。

ただし、Codexは、パブリックリポジトリと複数のプライベートリポジトリ間の関係を、1つの全体的なプロジェクトの一部として管理できますか? また、テストに私のコードだけでなく、パフォーマンスを評価するために、WordPressという追加のエコシステム全体をスピンアップすることも含まれる場合、どのように機能しますか?

一人のプログラマーとして、私はCodexのようなツールの潜在的な利点を認識しています。 月額200ドルのProサブスクリプションでさえ、価値がある可能性があります。 人間のプログラマーを雇うには、それよりもはるかに費用がかかります。

経験豊富なチームマネージャーおよびコミュニケーターとして、Codexのようなものにタスクを委任することに安心感を覚えます。 Slackでチームメンバーとコミュニケーションをとるのと大きく変わりません。

Codexが推奨事項、ドラフトバージョンを提供し、私の承認を待つという事実は、私のコード内で自由に動作させるよりも安心感を提供します。 これにより、人間が目標を定義し、AIが潜在的な実装を起草し、人間が承認するか、別のイテレーションのためにAIの方向を変えるという、新しい開発ライフサイクルの興味深い可能性が開きます。

未回答の質問と将来への影響

以前にAIをコーディングに使用した経験に基づいて、Codexはメンテナンス時間を短縮し、ユーザーへの修正の配信を加速する可能性があります。 ただし、仕様書に基づいて新しい機能を追加する際の有効性は不明です。 同様に、Codex実装後に機能とパフォーマンスを変更することの難しさもまだ決定されていません。

AIコーディングが、複数の企業で同様のペースで進化していることは注目に値します。 Codexといくつかの機能を共有するGitHub CopilotのCoding Agentに関する別の記事を近日公開する予定です。

この記事では、これらのコーディングエージェントがジュニアおよびエントリーレベルのプログラマーに取って代わる可能性があるという懸念を表明しました。 人間の仕事への影響に加えて、開発者のキャリアの中間段階をAIに委任した場合、失われる可能性のある重要なトレーニングの機会という問題もあります。

ソフトウェア業界の「未知の世界へ」

ディズニーの映画「アナと雪の女王2」には、「イントゥ・ジ・アンノウン」という曲があり、イディナ・メンゼルが歌っています。 この歌は、現状を維持することと「未知の世界へ」冒険することとの間の主人公の内的葛藤を反映しています。

エージェント的なソフトウェア開発、AIコーディングだけでなく、ソフトウェア業界全体が「未知の世界へ」の旅に乗り出しています。 ソフトウェアの開発にAIベースのシステムをますます使用するにつれて、熟練したメンテナーの数が減少する可能性があります。 これは、AIが効果的に機能し続け、アクセス可能であり続ける限り、許容されます。 ただし、必要なスキルを萎縮させ、まだ意識を持たないクラウドベースのインフラストラクチャに委任する手間を省くために、高給の仕事を犠牲にしているのでしょうか?

時間が経てば答えが明らかになるでしょう。そして、この啓示が時間切れにならないことを願っています。

このようなツールに実際の開発タスクを委任することを検討しますか? 長期的な影響は、ソフトウェアチームや個々の開発者にとってどのようなものになると思いますか? また、コードライフサイクルがAIに委ねられるにつれて、重要なスキルや役割を失うことを心配していますか?