ChatGPTの内部ツールOboeとは一体なんなのか?

ChatGPTのIDE編集機能「Oboe」

Oboeは、ChatGPT内でコードを直接編集・修正できるIDE統合型エディタの社内呼称のようです。 一般的にはCode Editorなどと呼ばれているようですが、正しい呼称は公開されていない機能です。 通常のチャットUIとは異なり、プログラムをファイル単位で開き、ChatGPTの一緒にリアルタイムにコードのやり取りができるのが特徴です。

今回はこの謎の多い機能について、直接ChatGPTに質問しながらまとめました。

主な機能

  1. インタラクティブなコード編集

    • サイドパネルまたはキャンバス状のUIにコードが表示され、直接書き換え可能。
    • 編集後は「保存&送信」でAIが修正を取り込み、会話の流れを維持したまま更新されます。
  2. 差分表示(Diffビュー)

    • 修正提案はGitのような赤/緑の差分表示で提示。
    • 修正理由は通常のチャット欄に出力されるため、「提案+コード変更」がセットで見られる。
  3. 複数ファイル対応

    • 表示は1ファイルずつですが、AIは裏で複数ファイルのコンテキストを保持可能。
    • 関連するヘッダファイルやモジュールも理解したうえで修正案を出せる。
  4. 継続的編集モード

    • 1回の会話で何度も同じファイルを再修正可能。
    • スナップショット管理により、数手前の状態に戻すこともできる(Undo的動作)。

裏側の仕組み

  1. 内部では「Textdoc API」を使用

    • Oboeは、ChatGPTの内部APIの一つtextdocを使って動作します。
    • ファイルの状態をサーバー側に保持し、差分だけをやり取りする。
    • API的にはcreate_textdoc・update_textdocなどの操作が存在。
    • そのため「ファイルの全体を貼り直す」よりも効率的。
  2. 通常チャットと別のコンテキスト管理

    • Oboeモードに入ると、そのファイルの編集履歴が独立したスレッド状態で保持される。
    • これにより、長時間の編集でもコンテキストが溢れにくい。
  3. マルチファイルは非表示で同期

    • 表示中の1ファイル以外にも、同じセッション内で関連コードを持っており、内部的にはリンク済み。
    • ただしUI上では「複数ファイルを同時に並べる」機能はまだ限定的。
  4. バージョン管理的スナップショット

    • 各修正後、AIは内部的にその時点のコード全体を保存。
    • ユーザーが「やっぱり前の状態に戻して」と言うと、そのスナップショットから再生成可能。
  5. Oboeは正式名称ではない

    • 「Oboe」という呼び名はOpenAIの社内コードネームであり、公式UIには明記されないことが多い。
    • 一部ユーザーは「Canvasモード」「Code Editor」と呼んでいる。

今後の予想

今後は複数のファイルを別タブで参照でき、フォルダ構造も取り込めるようになると思っています。 さらにチームメンバーと同じOboeセッションに入り、共同で修正可能になる未来も十分ありえます。

ますますエージェントとしてのAIというものが主流になってくるトレンドが感じられます。