💡 核心結論速覽 (TL;DR)
- 最省的一顆旋鈕是推理強度:
model_reasoning_effort有 minimal/low/medium/high/xhigh 五檔(最新家族還多一檔 max),官方互動預設是 medium。routine 丟 low、難題才開 high 以上,光這一項就能砍掉一半的時間與用量。- 模型也要分流:現行 GPT-5.6 家族分強(Sol)、均衡(Terra)、快省又額度最高(Luna)三檔——雜事走快的、硬骨頭才動用最強的,別讓每則小指令都用旗艦。
- 裝不了套件、連不上 API 的元凶:workspace-write 沙箱的
network_access預設是false(斷網)。要嘛開成true、要嘛設網域白名單,不是你網路壞掉。- 行動:打開
~/.codex/config.toml,把推理分流+模型+沙箱網路+審批一次設好,再用 profile 在「嚴格」和「全自動」間切換。文末有一份可直接複製的範例設定檔。
你有沒有過這種時候:交代 Codex 一件不難的事,它慢吞吞跑了二十分鐘,最後還給你一句「失敗」;或者早上才開工,幾個小 prompt 下去,五小時的滾動額度就見底了,剩下的時間只能乾等。我自己每天用 AI 超過十小時,連這個部落格的排程都靠 agent 在跑,這種「又慢、又貴、又不受控」的挫敗感,老實說我太熟了。
但用久了我發現一件事:大部分的慢和貴,不是 Codex 有問題,是它的預設值不適合你手上這件事。而這些預設值,幾乎全都藏在同一個檔案裡——~/.codex/config.toml。Codex 設定的核心,就是把這個檔案調成「順手、省錢、受控」的樣子。
這篇我不打算把每個參數字典式地列一遍(那種東西你問 AI 就有)。我想用「怎麼把它調到不再燒光額度」的角度,挑出 9 個我天天在動、真正有感的 config.toml 設定,告訴你每個該怎麼調、什麼情境用哪一檔,順便把最多人卡住的「沙箱斷網」講清楚。準備好把 Codex 從「愛亂衝的實習生」調成「聽話的老手」了嗎?
先搞懂 config.toml:Codex 設定的總開關在哪、管什麼?
一句話:Codex 設定的總開關就是 ~/.codex/config.toml 這一個 TOML 檔,模型、推理強度、沙箱、審批、MCP 全部在這裡定。你不用記一堆指令,改這個檔就等於一次把 Codex 的行為調到你要的樣子。
先把位置講清楚,免得你找半天。全域設定在 ~/.codex/config.toml(Windows 是 %USERPROFILE%\.codex\config.toml);如果你只想針對某個專案改,也可以在專案根目錄放一份 .codex/config.toml 蓋掉全域。OpenAI Codex 其實有三個面貌——終端機裡的 Codex CLI、塞在編輯器裡的 IDE 擴充、還有跑在雲端的版本——這篇講的是最多人用、也最需要調教的本機 CLI。
我的體感是這樣:config.toml 之於 Codex,就像遊戲一開始的難度與畫質設定。你當然可以全用預設硬玩,但花五分鐘把畫質、手感、輔助調成適合自己的樣子,後面幾百個小時都會順很多。Codex 也一樣,開頭調一次,天天受用。
這裡先劃清一件事,免得你期待錯:這篇只管「設定檔」,不管「你怎麼下指令」。提示詞的四要素、AGENTS.md 該寫什麼、工作流怎麼安排,是另一個題目——我另外寫在Codex 提示詞怎麼下、AGENTS.md 怎麼放才聽話那篇,兩篇搭著看才完整。如果你現在的狀況是「它動不動就報錯、越用越卡」,那多半是別的問題,我把 Codex 和 Claude Code 常見毛病的成因整理在這篇常見問題總整理,可以先去對照一下是不是設定以外的坑。
下一步:先用文字編輯器打開 ~/.codex/config.toml(沒有就自己建一個),確認你改的是全域還是專案級,這是所有調校的起點。
最省的一個旋鈕:把 Codex 的 model_reasoning_effort 推理強度分流
如果你只調一個參數,我會叫你調這個。model_reasoning_effort 控制 Codex「想多久、想多深」,它直接決定了速度、花費和品質的三角平衡。大部分人燒額度、等到不耐煩,就是因為所有任務都用同一檔高強度在硬想。
它有五檔:minimal、low、medium、high、xhigh(最新的 GPT-5.6 家族還多一檔 max)。官方互動模式的預設是 medium,而官方最佳實踐的建議也很清楚:範圍明確的小任務用 low,複雜改動或除錯用 medium/high,長時間、重推理的大工程才開到 xhigh。下面這張表是我天天在用的分配。
強度 | 丟什麼任務 | 我的取捨 |
|---|---|---|
minimal/low | 改字串、補測試、跑 lint、格式化、明確的小修 | routine 全部丟這裡,最省時省錢 |
medium | 一般功能開發、看得懂的 bug | 拿不定主意時的安全預設 |
high | 跨檔案重構、難纏的邏輯錯誤 | 值得多等、多花的硬骨頭才開 |
xhigh/max | 大型設計、長鏈條的自動化任務 | 一天用不到幾次,用完記得切回來 |
我踩過最蠢的坑,就是把全域預設一直開在 high 圖個安心,結果連「幫我把這個變數改個名」都要它深思熟慮半天,額度掉得莫名其妙。後來我把全域降到 low,只在難題時臨時切高,速度和帳單立刻有感改善。你也可以在 config.toml 裡替計畫模式單獨設一檔(例如日常 low、進 plan 模式才 high),讓它「想方向時認真、做雜事時俐落」。
推理強度只是省用量的其中一環。如果你發現帳單還是很嚇人,那通常是上下文塞太肥、背景代理偷跑之類的問題——我把「帳單暴增到砍半」的一整套實戰心法寫在AI 代理省 token 十招那篇,跟這裡的推理分流搭起來效果最好。
下一步:現在就把 config.toml 的 model_reasoning_effort 設成 low,跑一整天雜事看看,難題再手動切高——你會很快抓到那個「夠用就好」的甜蜜點。
模型分流:Codex 有哪些模型、預設哪個、Sol/Terra/Luna 怎麼挑?
先給結論:Codex 現行是 GPT-5.6 家族,分成強、均衡、快省三檔,聰明的用法是「雜事走快省的、難題才動用最強的」,而不是全部都用旗艦。推理強度是「想多深」,模型分流是「派哪個腦袋去想」,兩個一起調才是省錢的完整解。
目前這三檔的名字是 Sol(最強、也最貴)、Terra(均衡主力)、Luna(最快、最便宜、額度上限最高)。官方範例設定檔裡寫的是 model = "gpt-5.6",你可以進一步指定 gpt-5.6-sol/gpt-5.6-terra/gpt-5.6-luna 這些變體。要提醒一句:這些型號名字改版很勤,你看到這篇時未必一模一樣,所以與其死背名字,不如記住「強/均衡/快省三檔」這個結構,實際名稱以 codex --help 或官方 changelog 為準。
檔位 | 定位 | 我會拿它做什麼 |
|---|---|---|
Sol(強) | 最聰明、最貴、最慢 | 架構設計、真的卡住的難題 |
Terra(均衡) | 速度與能力的中間值 | 日常功能開發的主力 |
Luna(快省) | 最快、最便宜、額度最高 | 批次小改、跑測試、大量雜事 |
我自己的配置是把全域 model 設成均衡的 Terra 當主力,另外開一個「難題 profile」切到 Sol(等一下第 7 段會教你怎麼設)。這個「便宜的做雜事、旗艦留難題」的分工邏輯,其實跟我在怎麼挑 AI 寫程式工具那篇講的判斷是同一套——不是選一個最強的贏家,是讓對的工具做對的事。順帶一提,config.toml 裡還有個 service_tier 可以設 "fast" 走優先通道,趕時間時有感,但通常要吃更多用量,我只在真的等不及時才開。
下一步:把全域 model 設成均衡檔當日常主力,先別預設用最強的;哪天真的撞牆,再手動切到強檔,你會發現九成的任務均衡檔就夠了。
沙箱斷網雷:為什麼 Codex 裝不了套件、連不上 API?
這段是最多人卡住、也最少人講清楚的地方。如果你的 Codex 跑 npm install、pip install 一直失敗,或連不上某個 API,十之八九不是你網路壞了,是沙箱預設斷網。這是 Codex 刻意的安全設計,不是 bug。
先講沙箱本身。sandbox_mode 有三檔:read-only(只能讀、不能改,最保守)、workspace-write(可以改工作區裡的檔,日常主力)、danger-full-access(整台機器隨它動,顧名思義危險)。官方範例預設給的是最保守的 read-only,多數人日常會用 workspace-write。
雷就在這裡:當你用 workspace-write,它底下那個 [sandbox_workspace_write] 區塊的 network_access 預設是 false——也就是說,Codex 可以改你的檔,但預設不准連網。所以裝套件、打外部 API 才會莫名其妙失敗。想通這件事那天,我對著螢幕翻了個大白眼,原來我 debug 半天的「網路問題」根本是自己沒開權限。
解法有兩種,看你多在意安全:
❶ 全開(最省事)。在 config.toml 裡把 network_access 設成 true,Codex 就能自由連網裝東西。方便,但等於把這道防線放掉了。
❷ 只開白名單(推薦)。新版的 [permissions] 權限模型可以做到「只准連特定網域」,比整個放開安全得多。大致長這樣:
[permissions.dev]
extends = ":workspace"
[permissions.dev.network]
enabled = true
[permissions.dev.network.domains]
"registry.npmjs.org" = "allow"
"pypi.org" = "allow"
"*.internal.local" = "deny"
這樣它就只能連你點頭的那幾個網域,既能裝套件、又擋掉亂連外的風險。要注意這個新的 [permissions] 模型跟舊的 sandbox_mode 是互斥的(不能同一份檔混用),你挑一種寫就好。
🚧 最容易踩的雷:很多人看到
workspace-write就以為「可寫=可連網」,其實寫檔權限和網路權限是兩件事、各自獨立。改得動檔案,不代表連得上網。記住這句話,能省你一整個下午的 debug。
沙箱和權限這塊,跟「AI 代理會不會亂刪你的檔」是同一組安全考量。我把「喊很多次『不要動』還是被刪光」的真實案例和我設的五道防線寫在這篇 AI 代理安全防線,看完你就懂為什麼沙箱不能隨手全開。另外,如果你好奇雲端版的 Codex 網路怎麼管,其實邏輯一樣(agent 階段預設斷網、要自己開白名單),我在Codex 雲端 vs 本機環境那篇有更完整的對照。
下一步:如果你最近有「裝套件一直失敗」的困擾,先去 config.toml 確認 network_access 是不是 false;要開就優先用網域白名單,而不是無腦全放。
審批模式 approval_policy:讓 Codex 該問才問,怎麼選?
先講判斷:approval_policy 決定 Codex 動手前要不要先問你,設太嚴會被問到煩、設太鬆會被它嚇到,關鍵是配合場景切換。它跟沙箱是一組的——沙箱管「它能碰多大範圍」,審批管「碰之前要不要先舉手」。
主要有三個值:
❶ untrusted——最謹慎。幾乎每個會動到系統的指令都先問過你。適合你在一個完全陌生、或很敏感的專案裡摸索時,寧可煩一點也不要出事。
❷ on-request——平衡點,也是我的日常預設。Codex 自己判斷,遇到有風險的動作才停下來問你。官方範例設定檔用的就是這一檔,大多數人日常這個最順手。
❸ never——完全不問,全自動。適合你很清楚它要做什麼、或跑在容器/VM 裡的無人值守任務。但拜託不要在自己的主機上長期掛 never,那等於把方向盤交出去還閉上眼睛。(另外你可能會看到舊的 on-failure,那個已經棄用了,別再用。)
我的做法是:日常用 on-request,要放它背景跑大批次時,才切到一個「全自動 profile」(never + 更嚴的沙箱),跑完立刻切回來。這個「平常聽話、偶爾放飛、但邊界先畫好」的節奏,跟我在Claude Code 隱藏功能那篇講的 /permissions deny 清單其實是同一套思路——自動化越強,越要先把邊界設死。
下一步:把日常 approval_policy 設成 on-request;真的要無人值守,先確認是在容器/VM 裡,再考慮 never,絕不在主力機上裸奔。
掛上 MCP:讓 Codex 直接用你的工具([mcp_servers] 設定)
一句話:MCP 讓 Codex 不只會改程式,還能直接呼叫外部工具——查文件、碰資料庫、接你自己的服務——設定就寫在 config.toml 的 [mcp_servers] 區塊。這是把 Codex 從「寫程式的」升級成「能辦事的」關鍵一步。
MCP(Model Context Protocol)你可以想成 AI 世界的萬用插座:只要某個工具做成 MCP server,Codex 就能插上去用。掛法分兩種傳輸方式:
❶ 本機 stdio(在你電腦上跑一支程式),你給它啟動指令和參數:
[mcp_servers.docs]
command = "docs-server"
args = ["--port", "4000"]
❷ 遠端 HTTP(連到一個網址上的服務),重點是 token 一定要放環境變數、別寫死在檔案裡:
[mcp_servers.github]
url = "https://your-mcp.example.com/mcp"
bearer_token_env_var = "GITHUB_TOKEN"
掛好之後還有兩個實用細節:一是可以用 enabled_tools/disabled_tools 做白/黑名單,只放行你要的那幾個工具,避免一個 server 塞一堆你用不到的功能污染上下文;二是不想手寫 TOML 的話,直接跑 codex mcp add 用指令加也行。我自己會刻意只留真正常用的兩三個 MCP,因為掛越多、每次啟動載入的工具描述越吃 token,這跟並行太多代理會拖垮資源是同一個道理——那次我清掉上百個殘留背景程序的慘痛經驗,寫在背景程序殘留怎麼清那篇。
下一步:先掛一個你天天會用的 MCP(例如查官方文件的那種),用 enabled_tools 只留必要工具;有用再慢慢加,別一次塞十個。
Profiles:Codex 設定一鍵在「嚴格審查」和「全自動」之間切換
先講它解決什麼問題:Profiles 是具名的設定變體,讓你不用每次手動改 config.toml,就能在「嚴格」和「放飛」兩套設定之間一鍵切換。前面講的推理強度、模型、審批、沙箱,其實會隨場景需要不同組合——profile 就是幫你把每組打包好。
用法很單純:在 config.toml 裡宣告不同的 [profiles.名稱] 區塊,各自寫上那組要蓋掉的設定,之後啟動時用 codex --profile 名稱 挑一個。舉例來說,我會有一個 hard(切到最強模型+高推理,專打難題)和一個 yolo(全自動+full-access,只在容器裡背景跑)。要提醒的是,Codex 各版本放 profile 的位置略有差異(有的用獨立的 名稱.config.toml 檔),實際以 codex --help 為準,但 --profile 這個切換方式是穩定的。
這招最爽的地方是「情境切換」變成一個指令的事。要嚴格 code review 時 --profile strict,要放它整晚跑批次時 --profile yolo,不用每次進檔案手改一堆參數、還常常忘了切回來。對我這種同時開好幾個專案、每個信任程度不一樣的人來說,這是保持理智的關鍵。
下一步:先建兩個 profile——一個「嚴格日常」、一個「難題加強」,用 codex --profile 切切看,你會回不去手動改檔的日子。
一份可以直接複製的 config.toml 範例(推理分流+沙箱+審批+MCP)
講了這麼多參數,直接給你一份能複製的成品最實在。下面這份 config.toml 把前面所有旋鈕整合成一套「日常省錢、難題加強、背景全自動」的設定,你貼進 ~/.codex/config.toml 再按需要改幾個值就能用。
# ~/.codex/config.toml
# 全域預設:偏保守、routine 省錢
model = "gpt-5.6-terra" # 均衡檔當日常主力(強檔留給難題 profile)
model_reasoning_effort = "low" # 雜事用低強度,最省時省錢
approval_policy = "on-request" # 該問才問,不整段放飛
sandbox_mode = "workspace-write" # 只能改工作區,不能亂碰整台機器
[sandbox_workspace_write]
network_access = false # 預設斷網(安全)。要裝套件再改 true,或用白名單
writable_roots = [] # 需要多開放幾個資料夾就列在這
# 難題才切這個:codex --profile hard
[profiles.hard]
model = "gpt-5.6-sol" # 最強檔留給硬骨頭
model_reasoning_effort = "high" # 難題才開高強度
approval_policy = "on-request"
# 背景全自動,只在容器/VM 用:codex --profile yolo
[profiles.yolo]
approval_policy = "never"
sandbox_mode = "danger-full-access"
# 掛一個本機 MCP server(stdio)
[mcp_servers.docs]
command = "docs-server"
args = ["--port", "4000"]
# 掛一個遠端 MCP server(HTTP);token 放環境變數、別寫死
[mcp_servers.github]
url = "https://your-mcp.example.com/mcp"
bearer_token_env_var = "GITHUB_TOKEN"
幾個使用提醒:型號名字(Sol/Terra/Luna)請對照你當下版本,可能已經改版;MCP 的 docs-server、網址和 token 變數名都換成你自己的;writable_roots 留空代表只讓它寫當前工作區,要多開資料夾再往裡加。我的建議是別一次貼滿,先留全域那段+一個 hard profile 跑順了,再慢慢加 MCP。一開始就想把設定調到完美,通常只會卡在細節上動不了。
下一步:把這份範例貼進你的 config.toml,只改 model 和 MCP 那幾行成你自己的值,先跑一天再微調。
這樣調值得嗎?要不要升級 Pro、適合誰不適合誰?
先給答案:調 config.toml 本身零成本、人人都該做;但要不要升級付費方案,取決於你是「偶爾寫幾行」還是「天天長時間跑」。設定調得再好,額度不夠一樣卡;但額度買再多,設定沒調好也是浪費。兩件事要一起看。
先把方案攤開(以官方美金為準,新台幣為約略換算、匯率會浮動):
方案 | 月費(US$/約 NT$) | 適合誰 |
|---|---|---|
Free | $0 | 先試水溫、跑跑小任務 |
Go | $8/約 260 | 輕度使用、偶爾寫程式 |
Plus | $20/約 650 | 每週幾次專注的開發時段 |
Pro | $100 起/約 3,200 起 | 天天長時間重度使用 |
這裡有個很關鍵、很多人沒搞懂的機制:你的本機訊息和雲端任務是共用一個「五小時滾動額度視窗」的,另外還有每週上限。也就是說,你不是「一個月幾則」用到底,而是每五小時一個池子。以均衡的 Terra 為例,官方給的級距大概是 Plus 每五小時約 20–110 則本機訊息、Pro 5x 約 100–550、Pro 20x 約 400–2200(會隨模型和負載變動)。這也是為什麼推理分流和模型分流這麼重要——同樣的額度池,你用 low+快省模型能撐的任務數,是全開 high+旗艦的好幾倍。先把設定調好,往往比急著升級方案划算。
用一個「適合/不適合」幫你快速定位:
✅ 值得升級 Pro,如果你:一天用好幾個小時、常常五小時額度就見底、需要同時跑好幾個長任務、時間成本遠高於那點月費。
❌ 先別急著升,如果你:只是偶爾寫幾行、常常一整天用不完 Plus 的額度、或者根本還沒把 config.toml 的推理分流調好——那先調設定,你可能會發現現有方案突然夠用了。
還有一個常被忽略的小錢坑:這些方案多半刷美金訂閱,記得用有海外刷卡回饋信用卡去付,那 1.5% 上下的回饋跟手續費長期下來也是一筆。至於本機的 ~/.codex 資料夾會隨著 session log 越積越大、動輒幾十 G,那是另一個要定期處理的成本,我把清理方法寫在Codex 硬碟暴增與 SSD 耗損怎麼救那篇。
下一步:先把 config.toml 的推理+模型分流調好,用兩週看額度夠不夠;真的天天撞上限,再升級 Pro,順序別反過來。
FAQ 常見問題
Codex 太慢又很燒額度,最先該調哪個設定?
先調 model_reasoning_effort,再調 model。把全域推理強度從預設的 medium 降到 low,routine 任務會明顯變快、變省;同時把日常主力模型設成均衡的 Terra、而不是最強的 Sol,只在真正的難題才切高強度+強模型。這兩個「分流」動作是投報率最高的調校,通常不用升級方案就能解掉大半的慢和貴。
Codex 跑 npm install / pip install 一直失敗,是設定問題嗎?
幾乎可以確定是。workspace-write 沙箱底下的 network_access 預設是 false,所以 Codex 能改檔卻不能連網裝套件。到 config.toml 的 [sandbox_workspace_write] 把 network_access 設成 true,或用新版 [permissions] 的網域白名單只放行 registry.npmjs.org、pypi.org 這類必要網域。可寫和可連網是兩回事,別搞混。
approval_policy 設 never 全自動,會不會很危險?
在你自己的主機上會,在容器/VM 裡才安全。never 代表 Codex 動任何指令都不再問你,一旦方向錯了或碰到惡意內容,沒有煞車。安全的做法是:日常用 on-request(該問才問),只有在隔離環境跑無人值守批次時,才切到一個 never +嚴格沙箱的專用 profile,跑完立刻切回來。自動化的前提永遠是邊界先畫好。
config.toml 改了沒反應,是不是要重開?
先確認三件事:一是你改的是不是對的檔(全域 ~/.codex/config.toml 還是專案級 .codex/config.toml,專案級會蓋掉全域);二是有沒有用 --profile 啟動,profile 會覆蓋你以為在改的全域值;三是 TOML 有沒有打錯(引號、區塊名拼錯整段就會被忽略)。改完重開一個 Codex session 最保險,用 codex --help 也能確認目前生效的設定。
結論:先調設定,再談要不要花錢
寫到這裡,回頭看我那些「跑二十分鐘還失敗、幾個 prompt 就燒光額度」的抓狂時刻,其實答案一直都在同一個檔案裡。Codex 不是天生又慢又貴又不受控,是它的預設值沒為你手上這件事調過。推理強度分流、模型分流、沙箱網路、審批模式——這四個旋鈕轉對,速度、帳單和安全感全都會回來。
如果你今天只想做一件事,我會說:打開 ~/.codex/config.toml,把 model_reasoning_effort 降到 low、日常模型設成均衡檔,光這兩行就能讓你有感。其他的沙箱、審批、MCP、profile,等你摸熟了再慢慢加,不用一次到位。工具是拿來服務你的工作流的,設定調對了,它才會真的幫你省時間,而不是反過來吃你的時間和錢。
如果這種「幫你篩掉雜訊、只留真正有用的設定」的風格對你有幫助,歡迎追蹤夜羽凌的部落格,我會不定期把每天跟 AI agent 磨出來的實戰心得整理給你。訂閱我的部落格,會不定期收到這類踩坑筆記。
參考資料
- OpenAI Codex — Configuration Reference(config.toml 完整參數)
- OpenAI Codex — Sample config.toml(官方範例設定檔)
- OpenAI Codex — Best Practices(推理強度與沙箱建議)
- ChatGPT / Codex 官方定價與額度說明
- OpenAI Codex CLI(GitHub 官方 repo)
- Model Context Protocol(MCP)官方網站