AI 程式設計教學中文版
官方教學中文版規則、安全與設定

參考設定樣例

用少量 config.toml 設定讓 Codex 行為穩定,而不是複製一整份巨型設定。

📖 本篇術語速查表
英文 / 縮寫中文一句話解釋
最小起點minimal baseline夠用就好的初始設定。
安全邊界優先security-first先配好安全項再調體驗。
Profile 切場景profile switching用 profile 在不同場景間切換設定。

不想讀完?把下面這段提示詞丟給 AI 幫你跑完——幫你按自己的場景生成一份可直接用的 Codex 設定樣例。

你是 Codex 設定樣例生成顧問,幫我按場景生成一份安全優先、可直接用的設定樣例。

【角色】
你知道設定的最小起點、放哪裡、先管安全邊界、用 profile 切場景。

【輸入】
- 我的場景(個人開發 / 團隊 / CI / 多場景):___
- 安全要求(只讀 / 限網路 / 限寫):___
- 想要的行為偏好:___
- 是否需要多 profile:___

【工作流程】
1. 從最小起點出發,先配安全邊界
2. 加上場景需要的行為設定
3. 若多場景,用 profile 切分
4. 說明設定放哪裡、怎麼驗證

【輸出規範】
▌一、可直接貼上的設定樣例
▌二、安全邊界部分的說明
▌三、profile 切場景(若需要)
▌四、放置位置 + 驗證方式

【硬約束】
- 先安全後體驗,安全項不留空
- 憑據走環境變數,樣例裡用佔位符
- 樣例最小夠用,不堆無關項
- 不確定的欄位標註需查官方文件
- 給的樣例要能直接用

config.toml 是 Codex 的長期偏好檔案。它適合放模型預設值、沙箱、審批、MCP、profile 和少量 UI 行為。

設定樣例不是推薦你照抄。模型名、provider、feature flags 和許可權策略都應按目前官方文件、組織要求和專案風險決定。

解決什麼

flowchart LR
    Need["repeated behavior"] --> Config["config.toml"]
    Config --> Session["consistent sessions"]
    Session --> Verify["status / small task"]

設定檔解決的是“每次開啟 Codex 都希望行為一致”的問題:

  • 預設用哪個模型。
  • 預設是否能改檔案。
  • 什麼時候需要批准命令。
  • 專案級規則和個人習慣如何分開。
  • 哪些 MCP 或工具預設可用。

不要把設定檔當成“功能大全”。設定越多,排查越難。

最小起點

先從最小可解釋設定開始:

model = "your-current-codex-model"
approval_policy = "on-request"
sandbox_mode = "workspace-write"

含義:

  • model:預設模型。寫入前查官方 Models 或組織模型策略。
  • approval_policy = "on-request":越過邊界時詢問。
  • sandbox_mode = "workspace-write":允許在工作區內讀寫,仍保留邊界。

這比 danger-full-access 更適合真實專案,也比純 read-only 更適合日常開發。

設定放哪裡

使用者級 ~/.codex/config.toml

  • 個人預設模型。
  • 個人 UI 偏好。
  • 個人常用 MCP。
  • 不依賴某個儲存庫的習慣。

專案級 .codex/config.toml

  • 目前儲存庫的預設 sandbox。
  • 目前儲存庫需要的 MCP。
  • 目前儲存庫特定 profile。
  • 團隊希望共享的行為。

命令列引數和 --config 只適合一次性覆蓋,不適合長期偏好。

先管安全邊界

設定裡最重要的是兩類:

  • sandbox_mode:Codex 能訪問和修改哪裡。
  • approval_policy:Codex 什麼時候停下來問你。

常見組合:

  • 保守分析:read-only + on-request
  • 日常開發:workspace-write + on-request
  • 高風險全開:danger-full-access + never

新手不要把高風險全開寫進預設設定。只有在一次性、可信、可回復的自動化環境中,才考慮這種組合。

Profile 切場景

如果有多個固定場景,用 profile,不要反覆改同一份設定。

[profiles.review]
sandbox_mode = "read-only"
approval_policy = "on-request"

[profiles.build]
sandbox_mode = "workspace-write"
approval_policy = "on-request"

這樣可以把只讀審查和動手開發分開。最常見的問題就是在該只讀的時候用了動手模式。

不急著設定的項

這些設定官方支援,但新手不必急著寫:

  • 自定義 model provider。
  • 複雜網路許可權 profile。
  • OTEL / telemetry。
  • hooks。
  • 自動審批 reviewer。
  • 大量 MCP server。
  • 自定義 compaction prompt。

等遇到真實問題,再加對應設定。設定應該來自痛點,不應該來自“看起來專業”。

怎麼判斷生效

改完設定後,用 /status 或啟動後的狀態資訊確認:

  • 目前模型是否符合預期。
  • sandbox 是否是你想要的模式。
  • approval policy 是否生效。
  • 專案級設定是否被載入。

再用小任務驗證:讀檔案、改一個測試檔案、執行 git status。看它是否在該問你的時候問你,在不該越界時保持邊界。

常見坑

  • 整份複製設定樣例,結果不知道哪個鍵影響行為。
  • 把個人偏好寫進專案級設定,汙染團隊儲存庫。
  • 專案級設定寫好後忘記 trust project,導致它沒載入。
  • 預設使用 danger-full-access
  • 配了 MCP 或 provider,卻沒有設定憑據來源。
  • 把金鑰、token 或 auth 檔案路徑寫進可提交設定。

官方資料

本頁目錄