05 - AGENTS.md 與 config.toml

04-Sandbox與Approval權限模型 | 00-Index | 下一篇 → 06-非互動模式codex-exec


兩個檔案,兩件事

檔案管什麼格式
AGENTS.md告訴 Codex 怎麼做事(指示、慣例、規矩)Markdown
config.tomlCodex 自己的行為設定(模型、權限、MCP)TOML

對應到 Claude Code 就是 CLAUDE.mdsettings.json


AGENTS.md

位置與優先序

解析順序(後面的覆蓋前面的):

  1. ~/.codex/AGENTS.override.md ← 最高優先的全域覆蓋 或 ~/.codex/AGENTS.md ← 標準全域預設
  2. Repository root 和各層子目錄——越靠近目前工作目錄,優先序越高

專案範圍的解析:Codex 從 repo root 往目前目錄走,每一層檢查 AGENTS.override.md,再 AGENTS.md,然後 fallback,最後把所有檔案合併,後面的覆蓋前面的

檔案大小預設上限 32 KiB(可設定)。

📌 這個「override 檔」的設計 Claude Code 沒有——AGENTS.override.md 讓你可以在不改共享檔案的情況下覆蓋規則。

全域 ~/.codex/AGENTS.md(建議內容)

# 全域指示
 
## 語言
- 回覆用繁體中文,技術與醫學名詞保留英文
 
## 工作方式
- 動手前先簡短說明你要做什麼
- 做完列出改了哪些檔案、各改了什麼
- 範圍之外的東西不要順手改
 
## 硬規則
- **不要 git commit、不要 git push**,除非我明確要求
- 不確定的事情**明確說不確定**,不要猜
- 需要事實查證的內容(醫學、財務數字、引用),標記為「待查證」交給我,不要自己編

🔴 最後那條對你至關重要。 Codex 沒有 PubMed MCP,你的 vault CLAUDE.md §4 已經規定「沒有 PubMed 的環境不要猜 PMID → 明確告知待查證」。把這條寫進全域 AGENTS.md,等於幫每個 Codex session 預設裝好這個護欄。

兩個 repo 的 AGENTS.md

⚠️ Obsidian-med-note 已經有 AGENTS.md——Codex 會讀它。確認內容適合。

⚠️ Taiwan_IM_board 目前只有 CLAUDE.md——Codex 讀不到。要讓它遵守那些規則,得建一份 AGENTS.md

不用整份複製,挑 Codex 真的會碰到的:

# Taiwan_IM_board — Codex 工作規則
 
這是台灣內科專科醫師甄審考古題刷題網站(React 19 + Vite 7,純前端)。
 
## 最高原則
- **零錯誤優先**:醫療內容寧缺勿錯。題目 / 答案必須與來源逐字一致。
- **嚴禁杜撰**:不確定的數字、試驗、PMID 一律標「待查證」交給審核者,**不要編造**
  (你沒有文獻查證工具,查證是審核者的工作。)
- 詳解 `status` **一律 `draft`****永遠不可**自行改成 `reviewed`
- 正解依「該考試年度當時的標準」判定。
 
## 資料格式
- 題庫:`src/data/questions.<年>.json`
- 詳解:`src/data/explanations.<年>.json`(以 id 為 key,與題庫解耦)
- 詳解固定五段式:`### 本題觀念 / ### 選項分析 / ### 答案解析 / ### 核心知識點 / ### 參考資料`
- 完整規範見 `docs/詳解撰寫規範.md`
 
## 驗證
改完題庫或索引後跑:
```bash
python3 tools/validate.py
python3 tools/build_index.py   # 改題號或考點後

硬規則

  • 不要 git commit、不要 git push
  • 不要修 .github/workflows/deploy.yml——它必定失敗是預期行為(private repo + 免費方案 Pages)
  • 禁止罐頭字句:「此選項常是相近疾病」「供後續醫師逐題校閱」「以下為 AI 起草」

---

## config.toml

位置:**`~/.codex/config.toml`**

### 常用鍵值

```toml
# ── 模型 ──────────────────────────────
model = "gpt-5.6-terra"              # ⚠️ gpt-5.4 於 2026-08-31 退場
model_reasoning_effort = "high"       # minimal / low / medium / high / xhigh(依模型而定)

# ── 權限(兩個獨立旋鈕)────────────────
approval_policy = "on-request"        # untrusted / on-request / never
sandbox_mode = "workspace-write"      # read-only / workspace-write / danger-full-access

[sandbox_workspace_write]
network_access = false                # 沙箱內能不能連網
# writable_roots = ["/tmp/scratch"]   # repo 之外還能寫哪些路徑

# ── 其他 ──────────────────────────────
web_search = "cached"

[features]
multi_agent = true
shell_tool = true

Profiles(一鍵切換安全等級)⭐

[profiles.paranoid]
approval_policy = "untrusted"
sandbox_mode = "read-only"
 
[profiles.ci]
approval_policy = "never"
sandbox_mode = "workspace-write"
 
[profiles.batch]
approval_policy = "never"
sandbox_mode = "workspace-write"
model_reasoning_effort = "medium"     # 量產不需要最高思考力度
codex --profile paranoid
codex --profile batch

💡 Profile 是 Codex 比 Claude Code 好用的地方之一。 一行 --profile 就切換整組安全設定,不用記一堆 flag。

MCP servers

config.toml 也是設定 MCP server 的地方。詳見 07-MCP與擴充


設定的優先序

大致是(由低到高):

config.toml 的頂層預設
    ↓
--profile 選中的 profile 區塊
    ↓
命令列 flag(如 --full-auto、--sandbox)

⚠️ 確切的優先序規則以官方 configuration reference 為準。 本教學的鍵值與行為由公開資料交叉比對而來(官方站在本次撰寫環境無法直接抓取),實際請以 codex --help 和你版本的官方文件驗證


給你的建議設定(完整版)

~/.codex/config.toml

model = "gpt-5.6-terra"
model_reasoning_effort = "medium"
approval_policy = "on-request"
sandbox_mode = "workspace-write"
 
[sandbox_workspace_write]
network_access = false
 
# 盤點 / 稽核:物理上不能改檔
[profiles.audit]
approval_policy = "never"
sandbox_mode = "read-only"
 
# 量產:被 Herdr 編排時用
[profiles.worker]
approval_policy = "never"
sandbox_mode = "workspace-write"
model_reasoning_effort = "medium"
 
# 需要連網(裝相依、抓資料)
[profiles.net]
approval_policy = "on-request"
sandbox_mode = "workspace-write"
 
[profiles.net.sandbox_workspace_write]
network_access = true

搭配 ~/.codex/AGENTS.md 的「不要 commit / 不要猜」,這組設定讓每個 Codex session 一開始就在正確的護欄裡。


🔗 相關筆記


最後更新:2026-08-04