跳到內容
17.5k

Codex 提示詞層

Codex 會分層組裝提示詞:它自己的基礎指令、你的專案文件、權限與環境脈絡、 你安裝的技能,以及更多內容。Codex Set → Prompt 會顯示這個層疊結構,告訴你 每一層占用多少空間,並讓你關閉不需要的部分。

每一列都會顯示它在組裝順序中的位置、控制它的設定鍵(如果有),以及它實際 傳送內容的大小。

位置編號之間會有空缺。這是刻意安排的:這些數字是真實的組裝索引,其中兩個會在 下方的 過渡通知 中列出。如果把每組都從一開始重新編號,顯示的就會是 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 提供五個起點:精簡輸出、編輯前規劃、解釋推理、先測試,以及使用韓文 回覆。每一個都會開啟一般編輯器,預先填入內容且可完全編輯——預設只是起點,你儲存的 內容會成為一般的自訂層。

這些預設是我們自己的文字,旨在提煉一種方法,而不是複製任何人的提示詞。每個預設都會 註明來源。

編輯器提供上一層/下一層控制項和位置指示器。移動時會保留未儲存的編輯,因此你可以在編輯 途中比較兩層,再返回原處,而不會遺失已輸入的內容。

如果某一層包含無法按原文生效的內容,編輯器會發出警告——例如聲稱自己具有不同身分、 指定註冊表已定義的工具、使用不會被任何機制展開的範本預留位置,或陳述 Codex 稍後才會 產生的環境事實。它還會標出貼進來的憑證(層裡的 API 金鑰會在每次請求中以明文發給模型)、 讓模型捨棄先前指令的措辭,以及用韓文聲稱的非 Codex 身分。

這些只是警告,絕不會阻止儲存。如果你確實想覆寫 Codex,也可以這樣做;警告只是讓它成為 一個有意的決定,而不是意外。

基礎提示詞是 Codex 自己的指令,位於額外層之前。選擇器提供預設提示詞,以及最多兩個 儲存在 ~/.codex/opencodex-prompt-base/ 的變體。預設選項沒有可編輯的文字;選擇它 會從設定中移除 model_instructions_file。

在選項間切換時,編輯器會保留尚未儲存的修改;關閉時會先詢問是否捨棄。輸入過程中 會計算本文大小,每個變體的本文上限為 64 KiB。

已有其他檔案取代基礎提示詞時

Section titled “已有其他檔案取代基礎提示詞時”

若 model_instructions_file 指向你或其他工具寫入的檔案,選擇器會顯示路徑,並拒絕 靜默改指向其他檔案。匯入為變體會先顯示準備安裝的完整文字:# 標題行,以及 已正規化換行與定位字元的本文。確認前可以修改標題。正規化後的本文上限為 64 KiB (bodyBytes);包含標題的完整檔案稍大(serializedBytes)。確認會以雜湊綁定此 預覽。若檔案或標題已變更,匯入會拒絕安裝尚未看過的文字。也可以自行移除該鍵, 回到預設提示詞。

變更適用於新工作階段;已開啟的工作階段會保留原本的提示詞。

如果 developer_instructions 已經存在,且不是由 opencodex 寫入,面板不會覆寫它。 面板會改為提供將文字匯入為一層的選項:你會先看到現有值,在確認之前不會寫入任何內容。

如果已儲存的層與 config.toml 中的值不一致,面板會說明情況並提供 Repair,而不會 靜默修復。兩種修復路徑會重寫你寫過的文字,因此這些操作始終需要明確執行。一次中斷的寫入 (“journal present”)只會在持有鎖的情況下,使用日誌中記錄的檔案狀態進行復原,不會 重新儲存目前清單,也不會憑空補出缺失內容。如果實際檔案與任何記錄狀態都不相符,復原會 拒絕執行並保留診斷證據。重新整理後的面板會顯示仍然存在的不一致。如果某個層檔案已經遺失, 修復功能會先寫入備份,再進行任何修改。

變更會套用到新啟動的工作階段。已經執行的工作階段會繼續使用啟動時的提示詞設定。

此頁面讀取什麼,又不讀取什麼

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。面板顯示檔案中實際存在的值,並在鍵未設定時說明這一點。

帶有明確值的列也會提供 重設為預設值:它會刪除該鍵行,而不是把預設值寫回去。只有這樣, 如果 Codex 之後更改預設值,設定才會繼續跟隨——寫入 key = true 會把今天的預設值凍結成覆寫。

單值編輯器會在寫入或重設鍵之前拒絕陣列、行內表與多行字串,保留原始位元組。匯入會明確回報無法讀取的設定。唯讀標題預覽期間仍可編輯輸入欄,確認仍要求與該標題綁定的預覽。測量的 HTTP 或網路錯誤會顯示為失敗,而不是聲稱另一個測量仍在進行。