これらの変更を利用するには、Codex CLI 0.163.0 以降へのアップグレードが必要です。CLI のアップグレードは任意です。既存のインストールは、更新するまで現在の動作を維持します。
自動化処理で
@openai/codex@latestをインストールしている場合、次回のインストールまたは更新時にこの変更が適用される可能性があります。npm で Codex CLI をグローバルにインストールした場合は、npm install -g @openai/codex@latestを実行し、続いてcodex --versionを実行してアップグレードを確認してください。変更の適用を延期するには、バージョンを
@openai/codex@0.162.0に固定してください。@latestを使って一度インストールしただけでは、その後は自動更新されません。古いバージョンに固定したワークフローは、従来の動作を維持します。TypeScript 連携では、
@openai/codex-sdkと同梱のランタイムを更新してください。Python 連携では、openai-codexとその Codex ランタイムを更新してください。グローバルにインストールした CLI を更新するだけでは、SDK のランタイムが更新されない場合があります。実行ファイルのパスを独自に設定している場合は、その実行ファイルも更新してください。
カタログ自体は利用可能でも、手動で設定したモデル ID がそこに掲載されていない場合、CLI と Codex Desktop では Daybreak がオンでも、その ID に従来の自動処理が適用されます。カタログに掲載されていないという理由だけで、リクエストが失敗することはありません。
モデル選択メニューでのサイバーモデルの提供は、別途段階的に開始される場合があります。提供が有効になると、対応バージョンをすでに利用しているユーザーには、追加のダウンロードなしで新たに利用可能なモデルが表示されます。一覧を更新するには、モデル選択メニューを開き直すか、Codex を再起動してください。
対話型 CLI での Daybreak の有効化
通常の認証方法で Codex を起動してください。
Daybreak をオンにするには、
/daybreakを入力してください。Codex に
Daybreak on. Applies to new turns.と表示されます。この設定は現在のスレッドに適用され、新しいセッションのデフォルトとして保存されます。
Daybreak をオフにするには、同じコマンド(
/daybreak)をもう一度実行してください。
ヘッドレス CLI での Daybreak の有効化
ヘッドレスワークフローは対話型 UI を使わずに実行されます。通常は、スクリプト、スケジュールされたジョブ、CI で codex exec を使用します。ここでは、対話形式の「Daybreak を有効にする」(/daybreak)という確認は表示されません。代わりに、次の方法を使用できます。
拒否を減らしたい各コマンドに
-c daybreak=trueを追加すると、特定の CLI 実行で Daybreak を有効にできます。たとえば、次のように入力します。
codex exec -c daybreak=true "Review the changes in this repository."
既存のプロンプトとその他のコマンドオプションはそのままにしてください。スクリプト、スケジュールされたジョブ、CI 設定内のコマンドも含め、Daybreak を使用するすべての呼び出しにこの設定を追加してください。
Codex が読み込む設定ファイルに
daybreak=trueを追加すると、新しい CLI セッションや実行で Daybreak をデフォルトで有効にできます。デフォルトのユーザー設定ファイルは
~/.codex/config.tomlです。自動化処理でCODEX_HOMEを設定している場合は、代わりに$CODEX_HOME/config.tomlを使用してください。この設定は、[features]などのセクション内ではなく、トップレベルに記述してください。自動化処理が実際に動作する環境で変更を行ってください。ノート PC の設定を更新しても、CI ランナーやリモートマシンの設定は更新されません。
この設定は、同じ設定ファイルを使用する新しい対話型セッションにも適用されます。再開したセッションやフォークしたセッションでは、保存済みの Daybreak の選択が保持されます。設定ファイルのデフォルト値を変更しても、この選択は置き換わりません。
コマンドラインで指定した設定は、その呼び出しに限り、保存済みの設定より優先されます。そのため、設定ファイルでは
daybreak = trueを維持しつつ、個別の実行では-c daybreak=falseを使用できます。
プロキシ経由の推論プロバイダーでの Daybreak の有効化
既存のプロキシ経由で推論リクエストを送信しながら、Codex CLI で Daybreak を使用できます。Codex は、推論リクエストとは別にモデルカタログへ問い合わせ、プロジェクトで Daybreak に対応しているモデルを確認します。
始める前に、Codex CLI で動作するプロキシプロバイダーと、Daybreak および使用したいモデルへのアクセス権があるプロジェクトの OpenAI API キーを用意してください。また、Codex CLI v0.167.0 が必要です。プロジェクトの Daybreak アクセスに関する OpenAI ドキュメント
プロキシプロバイダーを更新するには、~/.codex/config.toml を開き、プロキシに対応する [model_providers.<id>] セクションを探してください。以下の例の最後の 2 行を、そのセクションに追加してください。既存のプロバイダー ID、プロキシ URL、認証設定はそのままにしてください。
[model_providers.proxy]name = "Proxied with Cyber"base_url = "https://<your-proxy>/v1"model_catalog_url = "<https://chatgpt.com/backend-api/codex/models>"capabilities.cyber_access_programs = true
設定ファイルにすでに [model_providers.<id>.capabilities] セクションがある場合は、そこに cyber_access_programs = true を記述し、model_catalog_url は親のプロバイダーセクションに残してください。Codex 設定リファレンスCLI が使用する認証情報に合った方法を選び、カタログへの問い合わせを認証してください。
Codex が OpenAI API キーを使用する場合は、手順 1 の OpenAI カタログ URL をそのまま使用してください。カタログに直接認証できるよう、Daybreak が有効なプロジェクトのキーで Codex を実行してください。
Codex がプロキシの認証情報を使用する場合は、model_catalog_url に、プロキシ上のカタログ用ルートの完全な URL を設定してください。そのルートが次の処理を行うように設定してください。
通常のプロキシ認証情報を使って CLI リクエストを認証します。
Daybreak が有効なプロジェクトの OpenAI API キーを使用して、リクエストを https://chatgpt.com/backend-api/codex/models に転送します。
カタログのレスポンスを Codex に返します。
Daybreak を有効にするには、プロキシプロバイダーを使用して新しい Codex CLI セッションを開始してください。Daybreak の対象モデルを選択し、/daybreak と入力して有効にしてください。
Daybreak を利用できない場合は、まずカタログへの問い合わせを確認してください。カタログへのリクエストが失敗していても、推論は成功することがあります。目的のプロジェクトのキーを使ってリクエストが OpenAI に届いていることと、そのプロジェクトに Daybreak と選択したモデルの両方へのアクセス権があることを確認してください。
TypeScript SDK 経由での Daybreak の有効化
クライアント設定を通じて Daybreak の設定を渡してください。
import { Codex } from "@openai/codex-sdk";
const codex = new Codex({
config: { daybreak: true },
});
const thread = codex.startThread();
const result = await thread.run("Review the changes in this repository.");
console.log(result.finalResponse);
Daybreak をオフにして通常の拒否動作を使うには、daybreak: false を指定してください。既存の認証設定はそのままにしてください。
アプリサーバーまたは Python SDK 経由での Daybreak の有効化
1. model/list から選択したモデルの availableAccessPrograms.cyber の値を読み取り、turn/start のパラメーターで cyberAccessProgram を設定してください。
a.Daybreak Blue へのアクセス権を持つアカウントでメインラインモデルを使う場合:
{ "cyberAccessProgram": "daybreakBlue" }
b.Daybreak Red へのアクセス権を持つアカウントでサイバーモデルを使う場合:
{ "cyberAccessProgram": "daybreakRed" }
c.通常の拒否動作を使う場合:
{ "cyberAccessProgram": "standard" }
2. 選択した設定を適用するすべてのターンで、その値を指定してください。パラメーターを省略しても、Daybreak がオフになるとは限りません。アプリサーバーに直接接続するクライアントでこのパラメーターを使うには、初期化時に experimentalApi 機能を有効にする必要があります。
3. Python SDK の低レベルクライアント CodexClient でも、同じパラメーターを渡せます。
from openai_codex.client import CodexClient
with CodexClient() as client:
client.initialize()
thread = client.thread_start()
turn = client.turn_start(
thread.thread.id,
"Review the changes in this repository.",
params={"cyberAccessProgram": "daybreakBlue"},
)
client.wait_for_turn_completed(turn.turn.id)
4. この例では、選択したモデルで Daybreak Blue を利用できることを前提としています。Python クライアントでは、実験的 API 機能がデフォルトで有効になっています。スレッドに保存された設定だけでは、アプリサーバーのターンに使うプログラムは選択されません。
今回の変更前にローカルのモデルカタログを追加した場合
以前、API キーでサインインしても期待したモデルが表示されず、config.toml の model_catalog_json を使ってローカルカタログを追加した方もいるかもしれません。Codex は自動取得するカタログの代わりにそのローカルファイルを使うため、モデル一覧が古くなる可能性があります。お使いの環境でカタログの自動取得が利用可能になったら、次の手順で切り替えてください。
config.tomlを開きます。Codex CLI では、~/.codex/config.tomlを開きます(CODEX_HOMEを設定している場合は$CODEX_HOME/config.toml)。Codex Desktop では、設定 > 構成に移動し、config.toml を開くを選択します。ローカルカタログを一時的に無効にします。
model_catalog_jsonの行の先頭に # を追加し、ファイルを保存して、同じアカウントまたは API キーで Codex を再起動します。組織で指定されているカタログ URL は、そのまま残してください。アクセスできることを確認します。CLI では、
codexを起動し、セッション内で/daybreakを入力します。Desktop では、詳細モデル選択メニューを開き、Daybreak をオンにします。Daybreak Red へのアクセス権がある場合は、期待したサイバーモデルが表示され、そのモデルでリクエストを送信できることを確認します。正常に動作する設定を維持します。確認に成功したら、無効にした行を削除し、ファイルを保存します。失敗した場合は、
#を削除して保存し、Codex を再起動して以前の設定に戻します。
CLI での拒否に関するトラブルシューティング
自動化処理と同じ認証情報、モデル、設定を使って、代表的なジョブを実行してください。
Daybreak を利用できない場合は、次の点を確認してください。
アカウントまたは API プロジェクトに Daybreak へのアクセス権があること
選択したモデルが Daybreak に対応していること
対話型 CLI では、Daybreak がオンになっていることを確認してください。Daybreak が利用可能でもオフになっている場合、対話型 CLI に次の拒否メッセージが表示されることがあります:
Daybreak is currently off. If you’re doing authorized security work, turn it on and try your request again.確認プロンプトに
Turn on Daybreak for your next request?と表示されます。選択肢はEnable DaybreakとNot nowです。Daybreak を有効にするを選択して次のリクエストで有効にし、リクエストを再送信してください。拒否されたリクエストは自動的には再試行されません。もう一度リクエストを送信する必要があります。Daybreak がオンでも、一部のリクエストは拒否される場合があります。
Daybreak をオフのままにするには、今はしないを選択してください。
自動化処理では、
daybreak=trueが実際の Codex プロセスに渡され、別のコマンドライン設定で上書きされていないことを確認してください。
Codex Security CLI での Daybreak の利用
Codex Security CLI は、セキュリティスキャンに @openai/codex-security を使用します。アクセスプログラムのオプションは、上記の一般的な Codex CLI の例とは別のものです。
API キー認証では、Daybreak が有効な API プロジェクトのキーを使用し、そのプロジェクトで承認されているプログラムを明示的に選択してください。Daybreak Blue の場合は、次のコマンドを使用します。npx @openai/codex-security scan . --auth api-key --cyber-access-program daybreak_bluedaybreak_red は、プロジェクトが Daybreak Red の利用を承認されている場合にのみ使用してください。標準の安全対策を適用するには standard を使用します。プログラムを選択しても、そのプログラムや追加のモデルへのアクセス権は付与されません。
認証とスキャンのオプションについては、Codex Security CLI リファレンスを参照してください。
Codex Security SDK での Daybreak の利用
Codex Security TypeScript SDK(@openai/codex-security)は、アプリケーションや開発者ツールからセキュリティスキャンを実行します。これは、上記の一般的な Codex SDK とは別のものです。
承認済みのアカウントまたは API プロジェクトの認証情報を使用してください。一部のサイバーセキュリティ関連のリクエストや保護対象の検出結果には、Trusted Access for Cyber が必要です。SDK をインストールしたり、モデルを選択したりしても、Daybreak へのアクセス権は付与されません。
サポートされている認証方法、設定、スキャンの例については、Codex Security SDK ガイドに従ってください。
