請注意,你需要升級至 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
無介面工作流程不使用互動式使用者介面,通常會透過指令碼、排程工作或 CI 中的 codex exec 執行。此模式不會顯示互動式「啟用 Daybreak」(/daybreak)提示。你可以改用以下方式:
在指定的 CLI 執行中啟用 Daybreak:為每個需要減少拒絕回應的指令加上
-c daybreak=true。例如,你可以輸入:
codex exec -c daybreak=true "Review the changes in this repository."
保留現有的提示詞及其他指令選項。每次需要使用 Daybreak 時,都要在呼叫中加入此設定,包括指令碼、排程工作及 CI 設定中的指令。
讓新的 CLI 工作階段及執行預設使用 Daybreak:在 Codex 載入的設定檔中加入
daybreak=true。預設的使用者設定檔為
~/.codex/config.toml。如果你的自動化流程設定了CODEX_HOME,請改用$CODEX_HOME/config.toml。請將此設定放在最上層,而非[features]等區段內。請在自動化流程實際執行的環境中進行變更。更新手提電腦上的設定,不會更新 CI 執行器或遠端電腦上的設定。
此設定亦適用於使用同一設定檔的新互動式工作階段。恢復的工作階段及分支工作階段會保留已儲存的 Daybreak 選項;新的預設設定不會取代該選項。
請注意,命令列設定會在該次呼叫中覆寫已儲存的設定。因此,你可以在設定檔中保留
daybreak = true,並在個別執行中使用-c daybreak=false。
透過代理使用推論服務供應商時啟用 Daybreak
你可以在 Codex CLI 中使用 Daybreak,同時透過現有的代理轉送推論請求。Codex 會另外查詢模型目錄,以確認哪些模型支援你的專案使用 Daybreak。
開始前,請確保 Codex CLI 中已設定可正常運作的代理供應商,並備有 OpenAI API 金鑰,且該金鑰所屬專案具有 Daybreak 及所需模型的存取權;另需使用 Codex CLI v0.167.0。有關專案 Daybreak 存取權的 OpenAI 文件
更新代理供應商設定:開啟 ~/.codex/config.toml,並找到代理對應的 [model_providers.<id>] 區段。將以下範例的最後兩行加入該區段。保留現有的供應商 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: false 關閉 Daybreak,並採用一般的拒絕回應機制。保留現有的驗證設定。
透過應用程式伺服器或 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。保留機構要求使用的所有目錄網址。驗證你的存取權限。在 CLI 中啟動
codex,然後在工作階段內輸入/daybreak。在桌面版中開啟進階模型選擇器,並開啟 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_blue
只有在專案獲准使用 Daybreak Red 時,才使用 daybreak_red;如需採用標準防護措施,則使用 standard。選取計劃並不會授予該計劃或額外模型的存取權。
有關驗證和掃描選項,請參閱 Codex Security CLI 參考文件。
在 Codex Security SDK 中使用 Daybreak
Codex Security TypeScript SDK(@openai/codex-security)可從應用程式或開發工具執行安全掃描。此 SDK 與上述一般 Codex SDK 並不相同。
請使用已獲批准的帳戶或 API 專案的憑證。部分網絡安全請求及受保護的掃描結果需要 Trusted Access for Cyber 存取權。安裝 SDK 或選取模型並不會授予 Daybreak 存取權。
有關支援的驗證方式、設定及掃描範例,請參閱 Codex Security SDK 指南。
