Codex におけるモデルプロバイダーとは
Codex の設定ガイドでは次のように定義されています。「モデルプロバイダーは、Codex がモデルに接続する方法(ベース URL、通信 API、認証、およびオプションの HTTP ヘッダー)を定義するものである」。
model_provider 設定でプロバイダーを選択します。Codex には組み込みのプロバイダーがあり、ガイドには予約されている ID がリストされています:openai、ollama、lmstudio、amazon-bedrock、amazon-bedrock-runtime、gcp。また、プロキシや自社のゲートウェイ、互換性のある API を持つ他のサービスなど、独自のプロバイダーを定義することもできます。--oss フラグを使用すると、ローカルのオープンソースプロバイダーでセッションを開始します。
--oss ルートには独自の選択順序があります。コマンドリファレンスによると、--oss を使用した場合、Codex は「--local-provider、設定済みの oss_provider を使用するか、LM Studio と Ollama のどちらかを選択するよう促す」となっています。したがって、一度限りのローカルセッションは、通常の構成とは異なるプロバイダーで実行される可能性があり、保存されるチャットはそのプロバイダーに紐付きます。
つまり、プロバイダーの切り替えとは、config.toml の一行を書き換えること、--oss で単一のセッションを開始すること、あるいは組織が使用しているクラウドプロバイダーにセットアップ全体を移行することなど、いくつかの意味を持ちます。
切り替え後にチャットが見つからなくなった理由
プルリクエストによると、保存されたチャットと設定されたプロバイダーが一致している必要があります。プロバイダーの不一致により、再開が拒否されることがあるためです。0.167.0 より前では、これが以下の2点に影響していました。
- 検索(Finding them): 別のプロバイダーのチャットが再開ルックアップから除外され、期待した場所に表示されませんでした。
- 開く(Opening them): チャットが必要とするプロバイダーが現在設定されているものと異なる場合、チャットを開くのに失敗することがありました。
リリースノートには、チャットが削除されたとは書かれていません。ルックアップから隠されていたか、開くのがブロックされていたのです。そのため、今回の修正はデータの復元ではなく、可視性とリカバリに関するものとなっています。
Codex 0.167.0 で変更された点
プルリクエストには変更点がリストされています。それぞれの内容がユーザーにとって何を意味するかを説明します。
すべてのプロバイダーが再開ルックアップに表示される
最初の変更は、「フォークルックアップのプロバイダーフィルタリングを維持しつつ、再開ピッカー、名前付き再開ルックアップ、および resume --last にすべてのプロバイダーを含める」というものです。
実際には、再開ピッカー、名前によるチャットの再開、および codex resume --last で、すべてのプロバイダーのチャットが考慮されるようになりました。OpenAI で実行したチャットが Bedrock の設定中でも表示され、その逆も同様です。
再開できないチャットは読み取り専用履歴として開く
チャットが表示されるからといって、現在のプロバイダーで継続できるとは限りません。プルリクエストでは、「プロバイダーの不一致、設定の欠落、またはポリシーの競合によりサーバーが再開を拒否した場合」でも履歴を読めるようにすることを目的としています。
このような場合、Codex は説明とショートカットを表示し、チャットを読み取り専用履歴として開きます。プルリクエストには、新しいチャットで継続するための c、新しく開始するための n、別のチャットを選択するための Esc がリストされています。
読み取り専用とは、トランスクリプトをスクロールして決定事項を確認し、必要な情報をメモできることを意味します。現在のプロバイダーでそのチャットに新しいターンを追加することはできません。
新しいチャットで継続する
重要なのは c ショートカットです。プルリクエストには、「新しいチャットで継続すると、保存された会話を参照する、編集可能で未送信のプロンプトが準備される」とあります。
ここで重要な単語が2つあります。「編集可能(Editable)」は、送信前にプロンプトを変更できることを意味します。「未送信(Unsent)」は、ユーザーが決定するまでモデルには何も送信されないことを意味します。新しいチャットは現在のプロバイダーで実行され、そのプロンプトから開始されます。
下書きが失われない
プルリクエストには、Codex が「下書きや拒否されたプロンプト、ステア(指示)を保持し、自動送信を抑制し、チャットを再度開く際にプロバイダーの承認を再試行する」とも記載されています。再開に失敗したチャットに何か入力していた場合、それは破棄されずに保持され、Codex が勝手に送信することはありません。
フォークルックアップは依然としてプロバイダーでフィルタリングされる
一つだけ例外が残っています。フォークルックアップはプロバイダーフィルタリングを維持します。古いチャットをフォークしたい場合、フォークピッカーには現在のプロバイダーのチャットのみが表示されます。別のプロバイダーのチャットをベースにしたい場合は、「新しいチャットで継続」を使用するか、まずそのプロバイダーに切り替えてください。Codex チャットのフォークに関するガイドでは、フォークの一般的な仕組みを解説しています。
チャットが表示されないその他の理由
プロバイダーの切り替えだけが原因ではありません。最悪の事態を想定する前に、以下を確認してください。
作業ディレクトリ: Codex のコマンドリファレンスには、「codex resume は --all を渡さない限り、--last の範囲を現在の作業ディレクトリに限定する」とあります。別のプロジェクトフォルダでチャットを開始した場合、--last では見つかりません。--all を追加するか、ピッカーを開いてください。
ディレクトリのプロンプト: 現在のディレクトリがセッション保存時のディレクトリと異なる場合、Codex はどちらを使用するか尋ねます。tui.resume_cwd 設定を使用すると、この選択を自動化できます。
アーカイブされたチャット: アーカイブすると、チャットを削除せずにアクティブなリストから隠すことができます。コマンドリファレンスでは、codex archive を「トランスクリプトを削除せずに」セッションピッカーを整理する方法として説明しています。
別のアカウントまたは Codex ホーム: Codex のドキュメントによると、セッショントランスクリプトは $CODEX_HOME/sessions にあり、アーカイブされたものは $CODEX_HOME/archived_sessions にあります。アカウントを切り替えたり、別の CODEX_HOME を設定したりした場合、別のセッションセットを見ていることになります。Codex でのアカウント切り替えに関するガイドでは、マシンに残るデータについて説明しています。
古いバージョン: プロバイダーの修正は 0.167.0 で導入されました。それ以前のバージョンでは、別のプロバイダーのチャットは依然として隠されている可能性があります。
新しいチャットに引き継がれるもの
新しいチャットで継続する場合、Codex が用意したプロンプト(保存された会話を参照するもの)から始まる別の会話が作成されます。送信前にそのプロンプトを編集できます。
リリースノートやプルリクエストには、そのプロンプトに具体的に何が含まれるかは記載されていません。そのため、以下の点を確認する下書きとして扱ってください。
- まず古いトランスクリプトを読む: 読み取り専用モードで開いているので、何が議論され、どこで作業が止まったかを確認できます。
- 新しいモデルが必要とする情報を追加する: 制約や決定事項が重要だった場合は、自分の言葉でプロンプトに含めてください。
- モデルが異なることに注意する: プロバイダーが異なれば、モデルも異なる可能性があります。以前機能していた指示も、より明確にする必要があるかもしれません。
どのチャットやプロバイダーを使用していても適用すべき事項については、チャット履歴よりもファイルの方が信頼性があります。OpenAI の指示ガイドには「Codex は作業を開始する前に AGENTS.md ファイルを読み込む」とあります。AGENTS.md 内の規約は、言い直すことなく新しいチャットに読み込まれます。Codex の外部に古いチャットのコピーを保存したい場合は、Codex チャットのエクスポートガイドを参照してください。
よくある間違い
チャットが削除されたと思い込む: リリースノートには、隠されていたり開けなかったりするチャットについて記載されており、削除されたとは書かれていません。
チャットを探すためにプロバイダーを何度も切り替える: 0.167.0 以降では、再開ピッカーにすべてのプロバイダーが含まれます。
読み取り専用チャットで新しいメッセージを送ろうとする: 代わりに「新しいチャットで継続」を使用してください。
別のプロバイダーのチャットをフォークしようとする: フォークルックアップは依然としてプロバイダーでフィルタリングされます。
準備されたプロンプトを読まずに送信する: 編集可能であるのには理由があります。
解決策:チャットを見つけて現在のプロバイダーで継続する
ステップ 1: Codex を 0.167.0 以降にアップデートする
プロバイダーを考慮した再開挙動は 0.167.0 で導入されました。バージョンを確認し、Codex をインストールした方法でアップデートしてください。
ステップ 2: プロバイダーとフォルダを横断してチャットを探す
再開ピッカーを開くか、名前で再開します。--last を使用している場合は、すべてのディレクトリのセッションを考慮するように --all を追加してください。それでも見つからない場合は、アーカイブされていないか、同じアカウントと Codex ホームを使用しているかを確認してください。
ステップ 3: 内容を確認し、新しいチャットで継続する
チャットが読み取り専用履歴として開いた場合は、まず内容を通読してください。次に c を押して新しいチャットで継続し、準備されたプロンプトを確認して、送信前に新しいモデルが必要とする決定事項や制約を追加します。
MemoryLake でのセットアップ
プロバイダーの修正により、古いチャットを見つけて読めるようになりました。また、コンテキストがどこに存在していたかも明らかになりました。それは特定のプロバイダーのセッションに紐付いたトランスクリプトの中にあり、新しいプロバイダーはそれを読むことはできても継続はできません。そのチャットでの決定事項が反映されたのは、あなたがそれを読み、新しいプロンプトに書き込んだからです。Codex memories v2 に関するガイドでは、Codex がマシン上に保持するローカルメモリについて説明しています。
MemoryLake は、これらの決定事項をユーザーが管理する一箇所に保持し、ChatGPT、Claude Code、Codex などの接続されたアシスタントで利用できるようにするメモリレイヤーです。
エントリーはユーザー自身が自分の言葉で記述します。Codex のチャット、セッションフォルダ、config.toml、AGENTS.md ファイル、Codex memories、あるいはベンダーのストレージから何かが読み取られたり、書き込まれたり、削除されたりすることはありません。再開、読み取り専用履歴、新しいチャットでの継続は、OpenAI が説明している通りに機能します。
ステップ 1: API キーを作成する
サインインしてダッシュボードからキーを生成します。このキーは MemoryLake ワークスペースに属し、OpenAI アカウントやモデルプロバイダーの資格情報とは別個のものです。

ステップ 2: 最初のメモリをアップロードする
解決策のステップ 3 で読み取り専用トランスクリプトから抽出した決定事項から始めましょう。1つのエントリーにつき1つの決定事項を、それが属するプロジェクトと共に登録します。

ステップ 3: AI とエージェントを接続する
Codex やその他の使用しているアシスタントを接続します。Codex がどのプロバイダーに設定されていても、同じエントリーを利用できます。

実務で何が変わるか
第一の相違点は、プロバイダーの切り替えによって決定事項が取り残されないことです。特定のプロバイダーのセッション内に閉じ込められることがなくなります。
第二に、再開がスムーズになります。背景情報はすでに書き留められているため、新しいチャットのプロンプトは簡潔で済みます。
第三に、実験が容易になります。作業の文脈を失うことを心配せずに、ローカルモデルや別のゲートウェイを試すことができます。
Codex モデルプロバイダー切り替えのベストプラクティス
切り替える前にアップデートする。 プロバイダー対応の再開には 0.167.0 以降が必要です。
--last で再開する際は --all を使用する。 そうしないと、Codex は現在のディレクトリのみを検索します。
継続する前に読む。 読み取り専用トランスクリプトは、作業がどこで止まったかを示しています。
準備されたプロンプトを編集する。 未送信で編集可能なので、重要な情報を追加してください。
同じプロバイダーでフォークする。 フォークルックアップは依然としてプロバイダーでフィルタリングされます。
永続的なルールは AGENTS.md に記述する。 これらは、どのチャットやプロバイダーを使用していても読み込まれます。
結論
以前の Codex では、モデルプロバイダーを切り替えると保存されたチャットが再開ルックアップから消えたり、開けなくなったりしていました。Codex CLI 0.167.0 でこれが改善されました。すべてのプロバイダーのチャットが再開ピッカー、名前付きルックアップ、および resume --last に表示されるようになりました。現在のプロバイダーで再開できないチャットは読み取り専用履歴として開かれ、編集可能な未送信プロンプトから新しいチャットで継続するためのショートカットが提供されます。フォークルックアップは引き続きプロバイダーごとにフィルタリングされます。
チャットがまだ見当たらない場合は、作業ディレクトリ、アーカイブされたチャット、使用しているアカウントと Codex ホームを確認してください。新しいプロバイダーで古いチャットを継続する際は、まずトランスクリプトを読み、重要な決定事項を新しいプロンプトに含めるようにしましょう。