ChatGPTのIDE編集機能「Oboe」
Oboeは、ChatGPT内でコードを直接編集・修正できるIDE統合型エディタの社内呼称のようです。 一般的にはCode Editorなどと呼ばれているようですが、正しい呼称は公開されていない機能です。 通常のチャットUIとは異なり、プログラムをファイル単位で開き、ChatGPTの一緒にリアルタイムにコードのやり取りができるのが特徴です。
今回はこの謎の多い機能について、直接ChatGPTに質問しながらまとめました。
主な機能
-
インタラクティブなコード編集
- サイドパネルまたはキャンバス状のUIにコードが表示され、直接書き換え可能。
- 編集後は「保存&送信」でAIが修正を取り込み、会話の流れを維持したまま更新されます。
-
差分表示(Diffビュー)
- 修正提案はGitのような赤/緑の差分表示で提示。
- 修正理由は通常のチャット欄に出力されるため、「提案+コード変更」がセットで見られる。
-
複数ファイル対応
- 表示は1ファイルずつですが、AIは裏で複数ファイルのコンテキストを保持可能。
- 関連するヘッダファイルやモジュールも理解したうえで修正案を出せる。
-
継続的編集モード
- 1回の会話で何度も同じファイルを再修正可能。
- スナップショット管理により、数手前の状態に戻すこともできる(Undo的動作)。
裏側の仕組み
-
内部では「Textdoc API」を使用
- Oboeは、ChatGPTの内部APIの一つtextdocを使って動作します。
- ファイルの状態をサーバー側に保持し、差分だけをやり取りする。
- API的にはcreate_textdoc・update_textdocなどの操作が存在。
- そのため「ファイルの全体を貼り直す」よりも効率的。
-
通常チャットと別のコンテキスト管理
- Oboeモードに入ると、そのファイルの編集履歴が独立したスレッド状態で保持される。
- これにより、長時間の編集でもコンテキストが溢れにくい。
-
マルチファイルは非表示で同期
- 表示中の1ファイル以外にも、同じセッション内で関連コードを持っており、内部的にはリンク済み。
- ただしUI上では「複数ファイルを同時に並べる」機能はまだ限定的。
-
バージョン管理的スナップショット
- 各修正後、AIは内部的にその時点のコード全体を保存。
- ユーザーが「やっぱり前の状態に戻して」と言うと、そのスナップショットから再生成可能。
-
Oboeは正式名称ではない
- 「Oboe」という呼び名はOpenAIの社内コードネームであり、公式UIには明記されないことが多い。
- 一部ユーザーは「Canvasモード」「Code Editor」と呼んでいる。
今後の予想
今後は複数のファイルを別タブで参照でき、フォルダ構造も取り込めるようになると思っています。 さらにチームメンバーと同じOboeセッションに入り、共同で修正可能になる未来も十分ありえます。
ますますエージェントとしてのAIというものが主流になってくるトレンドが感じられます。