请注意,要使用这些更新,你需要升级到 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)提示。你可以改用以下方式:
为特定的 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。
通过 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 进程,且未被其他命令行设置覆盖。
