先说结论:基础配置保持稳定,差异设置放进 Profile
Codex 的个人默认设置位于 ~/.codex/config.toml;Windows 对应 %USERPROFILE%\.codex\config.toml。需要多套模式时,在同一 CODEX_HOME 下创建 profile-name.config.toml,再用 codex --profile profile-name 启动。
Profile 不是完整复制基础配置,而是在用户配置之上叠加差异项。模型、推理强度、审批策略等需要切换的值放进 Profile,通用 MCP、个性化和基础设置继续保留在主 config.toml。
本站为第三方中文信息与服务入口,并非 OpenAI 官方。Codex 配置格式与版本行为可能变化,请以 ChatGPT Learn 官方文档、当前 Codex 版本和工作区管理策略为准。
一、什么场景适合使用 Profiles
典型场景包括:日常开发使用标准模型和审批;代码审查使用更高推理强度并保持只读;CI 使用非交互命令和稳定输出;演示环境减少可写范围;不同网关或模型目录采用独立配置。
如果只临时修改一次模型或沙箱,直接使用命令行参数更清晰。只有需要反复复用、希望团队文档能明确命名的组合,才值得做成 Profile。
二、Profile 文件应该放在哪里
官方当前规则是把每套 Profile 保存为 CODEX_HOME 下的独立文件,格式为 profile-name.config.toml。例如 deep-review 对应 ~/.codex/deep-review.config.toml。
Windows 默认可写为 %USERPROFILE%\.codex\deep-review.config.toml。不要把个人 Profile 放进项目仓库的 .codex 目录,也不要为了省事复制包含凭据的整个配置目录。
三、怎样编写一份最小 Profile
Profile 文件直接使用顶层配置键,不要再套 [profiles.deep-review] 表。例如只需要改变 model_reasoning_effort 与 approval_policy,就只写这两个键,其余值继续继承基础 config.toml。
保持文件最小化能减少冲突,也更容易判断哪个层提供了最终值。模型名称必须是当前账号或工作区实际可用的模型,不要照抄文档示例后假设所有套餐都有访问权限。
四、如何选择并运行 Profile
交互式启动可使用 codex --profile deep-review;非交互任务可使用 codex exec --profile deep-review "review this change"。Profile 名称可包含字母、数字、连字符和下划线。
命令启动后可用 /status 查看当前模型、审批策略、可写根目录与会话状态;需要定位配置来源时,用 /debug-config 查看各配置层及其优先顺序。
五、Codex 配置优先级怎么理解
可以把最终配置理解为逐层叠加:基础用户 config.toml 提供个人默认,选中的 Profile 覆盖其中差异,受信项目中的 .codex/config.toml 可以继续提供项目设置,命令行专用参数与 --config 临时覆盖优先级更高。
组织的 requirements.toml 属于约束而不是普通默认值。即使个人 Profile 请求更宽权限,只要管理员策略不允许,Profile 也不能突破组织限制。
六、项目 config.toml 为什么会覆盖 Profile
Codex 会从项目根目录向当前工作目录查找 .codex/config.toml,并加载受信项目的配置层;越接近当前目录的项目配置越具体。未受信项目会跳过项目内 .codex 层,包括配置、Hooks 和规则。
这意味着同一个 deep-review Profile 在不同仓库中可能得到不同最终结果。调试时不要只打开 Profile 文件,应结合 /debug-config 检查项目层是否重新定义了相同键。
七、哪些设置不能放在项目配置里
项目级 .codex/config.toml 不能选择 Profile,也不能覆盖会改变凭据、提供商认证、主机请求元数据、通知或遥测路由的敏感设置。官方会忽略 profile、profiles、model_provider、model_providers、notify、otel 等项目级键。
这些值应放在用户级配置或独立 Profile 中。项目仓库只保存与该代码库直接相关、且适合团队审查的设置,避免把个人认证与机器级路径提交到版本控制。
八、如何做一次性临时覆盖
已有专用参数时优先使用,例如 --model、--sandbox、--ask-for-approval 和 --profile。需要修改任意支持键时使用 -c 或 --config,键可用点号表示嵌套层级。
--config 的值按 TOML 解析,不是 JSON;字符串在不同 Shell 中还涉及引号转义。临时覆盖只影响本次运行,适合测试,不应替代需要长期复用的 Profile。
九、0.134.0 之后旧写法为什么失效
官方说明,从 Codex 0.134.0 起,--profile 不再读取 config.toml 中的 [profiles.profile-name],顶层 profile = "profile-name" 选择器也不再支持。旧配置可能因此看似存在却没有生效。
迁移方法是把每个旧 Profile 的差异项移动到 ~/.codex/profile-name.config.toml,删除旧的 [profiles.*] 表和顶层 profile 选择器,再通过 --profile profile-name 显式启动。
十、怎样验证迁移真的生效
先执行 codex --profile deep-review,进入后查看 /status;再运行 /debug-config,确认 Profile 文件出现在配置层中,并核对模型、推理强度、审批策略和沙箱是否符合预期。
启动时加入 --strict-config,可把无法识别的配置键当作错误,而不是静默忽略。这对版本升级、批量部署和 CI 检查尤其有用。
十一、如何设计日常、审查与 CI 三套配置
日常 Profile 保持适中推理与正常审批;审查 Profile 提高推理强度、限制写入并强调 diff 与测试;CI Profile 使用 codex exec、固定输出要求和最小网络范围。三者不要共享不必要的生产凭据。
审批与沙箱设置可参考 https://gptupcn.com/blog/codex-cli-permissions-sandbox-approval-policy-guide-20260924/ ,非交互自动化可参考 https://gptupcn.com/blog/codex-exec-non-interactive-jsonl-ci-automation-guide-20260925/ 。
十二、配置文件中的安全边界
不要在 config.toml 或 Profile 里写明文 API Key、SSH 私钥、数据库密码和 Session Token。需要认证时使用系统密钥环、环境变量或组织批准的凭据方案,并控制文件读取权限。
不要把 danger-full-access 当作“专业模式”。更稳妥的做法是按任务提供刚好够用的文件系统和网络权限,保留审批、版本控制、测试和回滚。
十三、常见错误排查清单
Profile 找不到:核对 CODEX_HOME、文件名和扩展名;参数不生效:检查项目层或 CLI 是否覆盖;旧 Profile 失效:迁移 [profiles.*];模型不可用:用 /model 检查账号可访问模型;配置键拼错:使用 --strict-config。
遇到界面与 CLI 表现不同,还要确认桌面应用、IDE 扩展和 CLI 是否使用同一个用户目录与配置层。Codex 本地基础环境说明见 https://gptupcn.com/blog/codex-local-environment-setup-scripts-actions-worktree-guide-20260928/ 。
十四、团队怎样共享配置而不泄露个人设置
团队可以在仓库文档中约定 Profile 名称、用途、所需 Codex 版本和建议键值,但让每位成员在自己的 CODEX_HOME 中创建对应文件。这样既能统一运行方式,又不会把个人路径、模型目录或机器级设置提交进仓库。
真正需要项目统一的规则放入受审查的 .codex/config.toml、AGENTS.md 或组织管理策略;需要个人切换的模型、审批和机器配置保留在 Profile。两类配置分开,代码审查和故障定位都会更清楚。
版本升级前可在测试机器用 --strict-config 批量检查所有 Profile,并把 /debug-config 的有效层级记录到变更说明。不要等到 CI 或生产任务运行时才发现旧键已经被忽略。
结语
Codex Profiles 最适合把可重复的任务模式命名化:基础配置保存稳定默认,独立 Profile 只写差异,项目层负责仓库要求,CLI 处理一次性覆盖。理解优先级和新版独立文件规则,才能避免“明明写了却没生效”。
更多 Codex 中文实践可从 https://gptupcn.com/ 的技术博客进入。所有配置示例都应先在非生产项目验证,再用于真实仓库。
官方资料与延伸阅读
产品界面、价格、额度和规则可能调整,涉及实时信息时请以官方页面与账号内显示为准。
相关文章
继续阅读同一主题下的文章,可以把购买、支付、套餐、账号和到账问题串成完整流程。
常见问题
Codex Profile 文件应该叫什么?+
使用 profile-name.config.toml,放在 CODEX_HOME 下,例如 ~/.codex/deep-review.config.toml。
怎样启动指定的 Codex Profile?+
使用 codex --profile profile-name;非交互任务可使用 codex exec --profile profile-name "任务"。
为什么 [profiles.deep-review] 不生效?+
从 Codex 0.134.0 起不再读取旧的 [profiles.*] 写法,应迁移到独立 profile-name.config.toml 文件。
项目里的 .codex/config.toml 能选择 Profile 吗?+
不能。项目级 profile 和 profiles 键会被忽略;Profile 应通过用户目录文件和 --profile 选择。