Codex 提示词层
Codex 会分层组装提示词:它自己的基础指令、你的项目文档、权限与环境上下文、 你安装的技能,以及更多内容。Codex Set → Prompt 会显示这个层叠结构,告诉你 每一层占用多少空间,并让你关闭不需要的部分。
列表显示什么
Section titled “列表显示什么”每一行都会显示它在组装顺序中的位置、控制它的配置键(如果有),以及它实际 发送内容的大小。
位置编号之间会有空缺。这是有意为之:这些数字是真实的组装索引,其中两个会在 下方的 过渡通知 中列出。如果把每组都从一开始重新编号,显示的就会是 Codex 实际并未使用的顺序。
| 类型 | 你可以做什么 |
|---|---|
| 可在此切换 | 一个真正的开关。会在 config.toml 中写入一个键。 |
| 功能开关控制 | 确实存在,但要从功能设置中更改,而不是在此页面。 |
| 始终启用 | Codex 中任何地方都没有关闭开关。 |
| 变更时发送 | 通知状态过渡,因此只有内容发生变化时才会出现。 |
| 扩展层 | 无法列出。Codex 不会公开它们。 |
没有关闭开关的层根本不会显示开关,而不是显示一个禁用的开关。灰显控件会暗示 这项能力存在、只是暂时不可用,但实际并非如此。
点击层名称即可查看它发送的文本。对话框会从 codex debug prompt-input 读取内容,
所以显示的是真实内容,而不是描述。
有时没有内容可显示,对话框会说明具体原因:
- 文件存在但为空。 你的
~/.codex/AGENTS.md是零字节,因此该层没有内容可发送。 对话框会显示路径。 - 在我们读取的这一轮中,它没有发送任何内容。 各层只有在发生变化时才会重新发送, 所以未变化的层不会出现在单次样本中。
- 基础提示词来自模型目录。 Codex 在可读列表之外发送它,因此对话框会从所选模型的
目录条目中读取;如果你设置了
model_instructions_file,则从该文件读取。如果目录中 只有尚未展开的模板,对话框会说明不予显示,因为那并不是 Codex 实际发送的文本。 - 无法读取提示词。 此机器上的探测失败。
读取内容来自你的全局 Codex 主目录(~/.codex),而不是仪表板碰巧运行的目录。
+ Add layer 会追加你自己的指令。自定义层会组合到 developer_instructions 中,
它采用追加方式——Codex 会保留自己的指令,并把你的指令添加进去。
自定义层会在它们自身之间编号,因为它们会按该顺序合并为一个区段——它们不会 与内置层交错排列。
可以使用行上的箭头重新排序,也可以在行内任意位置按 Alt + Up / Alt + Down。
顺序就是组合顺序。
面板会显示已启用层的合计大小(对照 developer_instructions 的 128 KiB 上限),
以及合并后文本的可折叠预览——会把该区段推过上界的层,在保存前就能看到,而不是
保存之后。
删除某一层会先确认,然后提供几秒钟的撤销时间:该层会回到原来的位置,对顺序 敏感的列表因此不会因为一次误删而丢失。
+ Add layer 提供五个起点:精简输出、编辑前规划、解释推理、先测试,以及使用韩语 回复。每一个都会打开普通编辑器,预先填入内容且可完全编辑——预设只是起点,你保存的 内容会成为普通的自定义层。
这些预设是我们自己的文本,旨在提炼一种方法,而不是复制任何人的提示词。每个预设都会 注明来源。
编辑时在各层之间移动
Section titled “编辑时在各层之间移动”编辑器提供上一层/下一层控件和位置指示器。移动时会保留未保存的编辑,因此你可以在编辑 途中比较两层,再返回原处,而不会丢失已输入的内容。
如果某一层包含无法按原文生效的内容,编辑器会发出警告——例如声称自己具有不同身份、 指定注册表已定义的工具、使用不会被任何机制展开的模板占位符,或陈述 Codex 稍后才会 生成的环境事实。它还会标出粘贴进来的凭据(层里的 API 密钥会在每次请求中以明文发给模型)、 让模型丢弃先前指令的措辞,以及用韩语声称的非 Codex 身份。
这些只是警告,绝不会阻止保存。如果你确实想覆盖 Codex,也可以这样做;警告只是让它成为 一个有意的决定,而不是意外。
提交署名 这一行会让模型在它写的提交里加上 Co-authored-by: Codex 尾注,并在它开的
拉取请求里加上 Generated with Codex. 这一行。
这里没有开关,[features] 里也没有:Codex 会从你账号的署名策略中解析该项。在账号层面
关掉它并不会移除这一层——Codex 会改为发送相反的指令,告诉模型不要添加尾注。无论哪种
情况都会发送内容,所以这一行标注为由你的账号决定,而不是始终启用。
基础提示词变体
Section titled “基础提示词变体”基础提示词是唯一无法关闭的层,因为没有基础提示词的模型不是一个能工作的代理。不过你可以 替换它,基础指令 这一行上的开关就是做这件事的。
展开该行即可看到选择器。可以左右滑动、按左右方向键,或使用箭头按钮在各选项之间移动—— 屏幕阅读器朗读的也是这些按钮,因此没有触控板也能操作此页面。
| 选项 | 它是什么 | 可编辑 |
|---|---|---|
| Codex 自带的基础提示词 | 你的配置中不存在 model_instructions_file |
永不可编辑 |
| 你的变体 | 你自己写的提示词,保存在 ~/.codex/opencodex-prompt-base/ |
可以 |
| 第二个变体 | 同上,最多两个 | 可以 |
第一个选项没有可编辑的内容,也没有 保存 按钮,对话框会说明原因,而不是显示灰显控件。
默认项并不是我们保存的一份 Codex 提示词副本——它就是该键的缺失状态。所以既没有可修改
的文本,也没有可删除的文本,选择它只是把 model_instructions_file 从你的配置中再次移除。
变体编辑器与自定义层编辑器有相同的保护:在各选项之间移动时未保存的编辑会被保留,带着编辑 内容关闭会先询问是否丢弃,输入时正文会按每个变体 64 KiB 的上限计数。
如果已有其他东西替换了你的基础提示词
Section titled “如果已有其他东西替换了你的基础提示词”如果 model_instructions_file 指向的文件不是 opencodex 写入的,选择器会拒绝操作,并告知
该键指向何处。它不会静默地把你或其他工具设置的键改指到别处。不过你不必手动清除。导入为变体会转换该文件:预览展示将要安装的
确切文本——带有变体标题的 # 标题行,加上换行与制表符已规范化的正文——且确认前可编辑标题。正文在规范化后最多
可使用 64 KiB(预览中的 bodyBytes);实际写入的完整文件(含标题行)略大(serializedBytes)。确认通过哈希与
预览文本绑定,因此若期间文件或所选标题发生变化,导入会拒绝,而不是安装你从未见过的文本。
如果你更愿意从默认开始,也可以自行清除它。
这与导入 developer_instructions 的原则相同:面板报告它发现的内容,由你来决定。
切换会应用于新启动的会话,与此页面上的其他所有更改一样。
在 opencodex 外部写入的指令
Section titled “在 opencodex 外部写入的指令”如果 developer_instructions 已经存在,且不是由 opencodex 写入,面板不会覆盖它。
面板会改为提供将文本导入为一层的选项:你会先看到现有值,在确认之前不会写入任何内容。
内容不同步时
Section titled “内容不同步时”如果已保存的层与 config.toml 中的值不一致,面板会说明情况并提供 Repair,而不会
静默修复。两种修复路径会重写你写过的文本,因此这些操作始终需要明确执行。一次中断的写入
(“journal present”)只会在持有锁的情况下,使用日志中记录的文件状态进行恢复,不会
重新保存当前列表,也不会凭空补出缺失内容。如果实际文件与任何记录状态都不匹配,恢复会
拒绝执行并保留诊断证据。刷新后的面板会显示仍然存在的不一致。如果某个层文件已经丢失,
修复功能会先写入备份,再进行任何修改。
更改何时生效
Section titled “更改何时生效”更改会应用于新启动的会话。已经运行的会话会继续使用启动时的提示词设置。
此页面读取什么,又不读取什么
Section titled “此页面读取什么,又不读取什么”opencodex 只读取一个配置文件——你的 config.toml。Codex 会从多个层解析设置,因此这里的值
表示的是你的文件所写的内容,不一定是 Codex 最终计算出的值。
此页面写入的键
Section titled “此页面写入的键”这些键位于 Codex 的 config.toml 中,而不是 opencodex 自身的配置。
| 键 | 默认值 | 层 |
|---|---|---|
include_permissions_instructions |
true |
权限 |
include_collaboration_mode_instructions |
true |
协作模式 |
include_environment_context |
true |
环境上下文 |
include_apps_instructions |
true |
应用 |
skills.include_instructions |
true |
技能 |
developer_instructions |
未设置 | 按顺序连接的自定义层 |
model_instructions_file |
未设置 | 基础提示词,在选择了变体时 |
写入采用逐行编辑,你的注释和格式会保留;opencodex 无法识别的键会原样保留,而不会被删除。
缺失的键按默认值读取,而不是按 false。面板显示文件中实际存在的值,并在键未设置时说明这一点。
带有显式值的行还会提供 重置为默认值:它会删除该键行,而不是把默认值写回去。只有这样,
如果 Codex 之后更改默认值,配置才会继续跟随——写入 key = true 会把今天的默认值冻结成覆盖。
单值编辑器会在写入或重置键之前拒绝数组、内联表和多行字符串,保留原始字节。导入会明确报告无法读取的配置。只读标题预览期间仍可编辑输入框,确认仍要求与该标题绑定的预览。测量的 HTTP 或网络错误会显示为失败,而不是声称另一个测量仍在进行。

