跳转到内容

Codex 提示词层

Codex 会分层组装提示词:它自己的基础指令、你的项目文档、权限与环境上下文、 你安装的技能,以及更多内容。Codex Set → Prompt 会显示这个层叠结构,告诉你 每一层占用多少空间,并让你关闭不需要的部分。

每一行都会显示它在组装顺序中的位置、控制它的配置键(如果有),以及它实际 发送内容的大小。

位置编号之间会有空缺。这是有意为之:这些数字是真实的组装索引,其中两个会在 下方的 过渡通知 中列出。如果把每组都从一开始重新编号,显示的就会是 Codex 实际并未使用的顺序。

类型 你可以做什么
可在此切换 一个真正的开关。会在 config.toml 中写入一个键。
功能开关控制 确实存在,但要从功能设置中更改,而不是在此页面。
始终启用 Codex 中任何地方都没有关闭开关。
变更时发送 通知状态过渡,因此只有内容发生变化时才会出现。
扩展层 无法列出。Codex 不会公开它们。

没有关闭开关的层根本不会显示开关,而不是显示一个禁用的开关。灰显控件会暗示 这项能力存在、只是暂时不可用,但实际并非如此。

点击层名称即可查看它发送的文本。对话框会从 codex debug prompt-input 读取内容, 所以显示的是真实内容,而不是描述。

有时没有内容可显示,对话框会说明具体原因:

  • 文件存在但为空。 你的 ~/.codex/AGENTS.md 是零字节,因此该层没有内容可发送。 对话框会显示路径。
  • 在我们读取的这一轮中,它没有发送任何内容。 各层只有在发生变化时才会重新发送, 所以未变化的层不会出现在单次样本中。
  • 它在可读列表之外传输。 基础提示词通过另一个字段发送,无法在这里打印。
  • 无法读取提示词。 此机器上的探测失败。

读取内容来自你的全局 Codex 主目录(~/.codex),而不是仪表板碰巧运行的目录。

+ Add layer 会追加你自己的指令。自定义层会组合到 developer_instructions 中, 它采用追加方式——Codex 会保留自己的指令,并把你的指令添加进去。

自定义层会在它们自身之间编号,因为它们会按该顺序合并为一个区段——它们不会 与内置层交错排列。

可以使用行上的箭头重新排序,也可以在行内任意位置按 Alt + Up / Alt + Down。 顺序就是组合顺序。

+ Add layer 提供五个起点:精简输出、编辑前规划、解释推理、先测试,以及使用韩语 回复。每一个都会打开普通编辑器,预先填入内容且可完全编辑——预设只是起点,你保存的 内容会成为普通的自定义层。

这些预设是我们自己的文本,旨在提炼一种方法,而不是复制任何人的提示词。每个预设都会 注明来源。

编辑器提供上一层/下一层控件和位置指示器。移动时会保留未保存的编辑,因此你可以在编辑 途中比较两层,再返回原处,而不会丢失已输入的内容。

如果某一层包含无法按原文生效的内容,编辑器会发出警告——例如声称自己具有不同身份、 指定注册表已定义的工具、使用不会被任何机制展开的模板占位符,或陈述 Codex 稍后才会 生成的环境事实。

这些只是警告,绝不会阻止保存。如果你确实想覆盖 Codex,也可以这样做;警告只是让它成为 一个有意的决定,而不是意外。

提交署名 这一行会让模型在它写的提交里加上 Co-authored-by: Codex 尾注,并在它开的 拉取请求里加上 Generated with Codex. 这一行。

这里没有开关,[features] 里也没有:Codex 会从你账号的署名策略中解析该项。在账号层面 关掉它并不会移除这一层——Codex 会改为发送相反的指令,告诉模型不要添加尾注。无论哪种 情况都会发送内容,所以这一行标注为由你的账号决定,而不是始终启用。

基础提示词是唯一无法关闭的层,因为没有基础提示词的模型不是一个能工作的代理。不过你可以 替换它,基础指令 这一行上的开关就是做这件事的。

展开该行即可看到选择器。可以左右滑动、按左右方向键,或使用箭头按钮在各选项之间移动—— 屏幕阅读器朗读的也是这些按钮,因此没有触控板也能操作此页面。

选项 它是什么 可编辑
Codex 自带的基础提示词 你的配置中不存在 model_instructions_file 永不可编辑
你的变体 你自己写的提示词,保存在 ~/.codex/opencodex-prompt-base/ 可以
第二个变体 同上,最多两个 可以

第一个选项没有可编辑的内容,也没有 保存 按钮,对话框会说明原因,而不是显示灰显控件。 默认项并不是我们保存的一份 Codex 提示词副本——它就是该键的缺失状态。所以既没有可修改 的文本,也没有可删除的文本,选择它只是把 model_instructions_file 从你的配置中再次移除。

如果已有其他东西替换了你的基础提示词

Section titled “如果已有其他东西替换了你的基础提示词”

如果 model_instructions_file 指向的文件不是 opencodex 写入的,选择器会拒绝操作,并告知 该键指向何处。它不会静默地把你或其他工具设置的键改指到别处。请先自行清除该值,再在此处选择。

这与导入 developer_instructions 的原则相同:面板报告它发现的内容,由你来决定。

切换会应用于新启动的会话,与此页面上的其他所有更改一样。

如果 developer_instructions 已经存在,且不是由 opencodex 写入,面板不会覆盖它。 面板会改为提供将文本导入为一层的选项:你会先看到现有值,在确认之前不会写入任何内容。

如果已保存的层与 config.toml 中的值不一致,面板会说明情况并提供 Repair,而不会 静默修复。两种修复路径会重写你写过的文本,因此这些操作始终需要明确执行。如果某个层文件 已经丢失,修复功能会先写入备份,再进行任何修改。

更改会应用于新启动的会话。已经运行的会话会继续使用启动时的提示词设置。

此页面读取什么,又不读取什么

Section titled “此页面读取什么,又不读取什么”

opencodex 只读取一个配置文件——你的 config.toml。Codex 会从多个层解析设置,因此这里的值 表示的是你的文件所写的内容,不一定是 Codex 最终计算出的值。

这些键位于 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。面板显示文件中实际存在的值,并在键未设置时说明这一点。