请注意,要使用这些更新,你需要升级到 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,那么即使 Daybreak 已开启,CLI 和 Codex 桌面版也会继续按原有方式自动处理这些 ID。仅仅因为这些 ID 不在目录中,并不会导致请求无法成功。
网络安全模型可能会按独立的发布计划逐步在模型选择器中开放。开放后,已使用受支持版本的用户无需再次下载,即可看到新上线的模型。重新打开模型选择器或重启 Codex,即可刷新列表。
在交互式 CLI 中启用 Daybreak
使用你常用的身份验证方式启动 Codex。
要开启 Daybreak,请输入
/daybreak。Codex 将显示
Daybreak on. Applies to new turns.此设置将应用于当前对话线程,并保存为新会话的默认设置。
要关闭 Daybreak,请再次运行同一命令(
/daybreak)。
在无头 CLI 中启用 Daybreak
无头工作流在没有交互式界面的情况下运行,通常通过脚本、定时任务或 CI 中的 codex exec 执行。此时不会出现交互式的“启用 Daybreak”(/daybreak)提示。你可以改用以下方式:
在每条需要减少拒绝响应的命令中添加
-c daybreak=true,即可为特定的 CLI 运行启用 Daybreak。例如,你可以输入:
codex exec -c daybreak=true "Review the changes in this repository."
保留现有的提示词和其他命令选项。为每次需要使用 Daybreak 的调用添加此设置,包括脚本、定时任务和 CI 配置中的命令。
在 Codex 加载的配置文件中添加
daybreak=true,即可让新的 CLI 会话和运行默认启用 Daybreak。默认的用户配置文件为
~/.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 v0.167.0,已在其中配置了可正常工作的代理提供商,并且拥有 OpenAI API 密钥。该密钥所属的项目必须有权访问 Daybreak 及你要使用的模型。关于项目 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 桌面版中,前往设置 > 配置,然后选择打开 config.toml。暂时禁用本地目录。在
model_catalog_json所在行的开头添加 #,保存文件,然后使用同一账户或 API 密钥重启 Codex。保留你的组织要求配置的所有目录 URL。验证你的访问权限。在 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)可从应用程序或开发者工具中运行安全扫描。它独立于上文介绍的通用 Codex SDK。
请使用已获批的账号或 API 项目的凭据。部分网络安全请求和受保护的扫描发现需要 Trusted Access for Cyber 权限。安装 SDK 或选择模型并不会授予 Daybreak 访问权限。
请参阅 Codex Security SDK 指南,了解支持的身份验证方式、配置方法和扫描示例。
