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,也可以這樣做;警告只是讓它成為 一個有意的決定,而不是意外。
基礎提示詞變體
Section titled “基礎提示詞變體”基礎提示詞是 Codex 自己的指令,位於額外層之前。選擇器提供預設提示詞,以及最多兩個
儲存在 ~/.codex/opencodex-prompt-base/ 的變體。預設選項沒有可編輯的文字;選擇它
會從設定中移除 model_instructions_file。
在選項間切換時,編輯器會保留尚未儲存的修改;關閉時會先詢問是否捨棄。輸入過程中 會計算本文大小,每個變體的本文上限為 64 KiB。
已有其他檔案取代基礎提示詞時
Section titled “已有其他檔案取代基礎提示詞時”若 model_instructions_file 指向你或其他工具寫入的檔案,選擇器會顯示路徑,並拒絕
靜默改指向其他檔案。匯入為變體會先顯示準備安裝的完整文字:# 標題行,以及
已正規化換行與定位字元的本文。確認前可以修改標題。正規化後的本文上限為 64 KiB
(bodyBytes);包含標題的完整檔案稍大(serializedBytes)。確認會以雜湊綁定此
預覽。若檔案或標題已變更,匯入會拒絕安裝尚未看過的文字。也可以自行移除該鍵,
回到預設提示詞。
變更適用於新工作階段;已開啟的工作階段會保留原本的提示詞。
在 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 或網路錯誤會顯示為失敗,而不是聲稱另一個測量仍在進行。

