Codex CLI 0.163.0 實戰:回應途中插話轉向、唯讀工具平行跑、/config 即時生效
Codex CLI 0.163.0 在 2026-10-15 釋出。release note 列了一大串,但真正會改變你每天怎麼跟 Codex 協作的,其實是這四件事:回應途中就能插話糾正方向、唯讀工具可以平行跑、/config 改設定不用重開、resume 舊 thread 時權限會跟著回來。
這篇不逐條翻譯 changelog,而是挑出這幾項,拆成「它底層怎麼運作」和「你明天上班可以怎麼用」。所有描述都對照過 release note 與對應 PR 的說明;我沒有在自己機器上跑過 0.163.0,所以下面的操作建議會標成「從 PR 看」或「值得實測的點」。
本文大綱
一、為什麼這版值得升級
用 coding agent 最常卡住的地方,通常不是模型不夠聰明,而是你發現它走錯方向時,來不及攔。過去的做法是等它講完,或是硬中斷再重講一次需求,前面的 context 和節奏都斷掉。
0.163.0 把「instant interrupt」改成預設開啟:Codex 還在回應時,你送出的新訊息會直接搶佔目前的回應。對習慣邊看邊修正的人來說,這是體感最大的變化。
另外三項比較安靜,但都在修「長時間使用」的痛點:設定要重開才生效、唯讀查詢被排隊、resume 之後權限跑掉。
二、升級與確認版本
# npm 安裝的
npm install -g @openai/codex@0.163.0
# Homebrew 安裝的
brew upgrade codex
codex --version # 應顯示 0.163.0
如果你的設定檔(~/.codex/config.toml)裡還有 shell_zsh_fork 或 unified_exec_zsh_fork,這版會直接忽略並顯示 migration notice。原因是 Codex 移除了自帶的 patched zsh 執行後端,改回標準 shell executor(PR #52160、#52213)。看到提示就把這兩個 flag 刪掉即可。
三、運作原理:四個改動拆開看
1. Steering:回應途中送訊息,直接改方向

從 PR #51812 看,這版把 instant_interrupt 這個 feature 改成預設開啟:「新的使用者輸入可以搶佔正在進行的回應」。PR 也寫明這個 feature 仍標記為 under development,只是破例預設打開。
配套的是 PR #51835:code_mode_interrupt 標成 stable 並預設開啟。中斷一個 turn 時,正在跑的 Code Mode cell 和它底下巢狀呼叫的工具也會一起被終止,而 session 裡已存的值仍然保留。換句話說,中斷不再只是「停止輸出文字」,而是真的把背景還在跑的東西收掉。
怎麼用得好:
- 在它讀完檔、還沒動手前插話最划算。 看到它開始列出要改的檔案、方向不對,直接打字送出,不用等它寫完一堆 patch 再 revert。
- 插話要具體,給約束而不是情緒。 與其打「不對」,不如打:
停。不要改 src/api/,問題在 src/db/pool.ts 的連線上限。
只改那個檔,改完跑 npm test -- pool
- 插話等於重新定義 scope。 送出後它是在新的指示下繼續,所以把「不要做什麼」也講清楚,避免它把剛才的計畫接著做完。
值得實測的點: 如果你的流程依賴「回應一定完整跑完」(例如腳本化的 SDK 測試),PR #51812 自己就在 core、TUI 與 Python SDK 測試中把它明確關掉。你自己的自動化若有類似假設,要確認行為是否改變。
2. 唯讀工具平行執行

PR #52245 的說明講得很直白:沒有 opt-in 平行執行的工具,會拿一把獨占的 scheduler lock,所以彼此獨立的讀取也只能一個一個排隊。
這版把下列工具改為可平行:skill 列表與讀取、memory 列表/讀取/搜尋、對話歷史搜尋與讀取、plugin 列表、agent 列表、目前時間、剩餘 context,以及 get_goal。寫入類的 goal 建立與更新仍維持序列化。
這是典型的「讀寫分離」設計:讀不改狀態,彼此不會打架,可以同時跑;寫會改狀態,必須排隊,避免競態。
怎麼用得好:
- 這項加速發生在 agent 自己發起的查詢,不需要你改設定。但你可以在 prompt 裡把需要查的東西一次列出來,讓它在同一輪發起多個讀取,而不是一問一答拆成好幾輪:
開始前先一次查清楚:
1. 我們 memory 裡關於 migration 的紀錄
2. 上次討論 pool 設定的對話
3. 有沒有可用的 db-migration skill
查完再給計畫,先不要動檔案。
- 注意範圍:PR 列的是 Codex 內建的 skill、memory、歷史等查詢工具,不是所有 shell 指令。別期待它會自動把你的
grep和npm test平行化。
3. /config:可搜尋、即時生效的設定面板
以前改 TUI 設定,多半是手動編輯 config.toml 再重開。PR #52990 加了 /config 面板,分成 Appearance、Notifications、Input、Sessions、Text selection 幾個分頁,支援搜尋,並把改動寫回你選的本機設定檔。
PR #53429 再補上兩件事:搜尋改成跨所有分組(結果會標註屬於哪一組),以及動畫、paste detection、自動 recap、tips 等開關不用重開就生效。不能即時生效的項目,面板會告訴你需要重啟。
實用招式:
- 在
/config搜paste,確認 paste detection 的狀態。如果你常貼大段 log,這個設定會影響貼上的處理方式。 - 新增的
tui.copy_on_select_clear_selection預設關閉,打開後會在「確認剪貼簿已經收到內容」之後才清掉選取高亮,適合常從 transcript 複製輸出的人。
4. Leader key:把快捷鍵收進一個前綴
PR #52273 新增 tui.keymap.global.leader,預設 ctrl-x。設定成 leader 後,快捷鍵可以寫成 leader c 這種符號形式,跟著你設定的前綴走;按下 leader 後提示會一直停著,直到你選完或取消(按 esc 或再按一次 leader)。一般的 chord 則維持原本的一秒逾時。
要注意的副作用:語音靜音的預設鍵從 ctrl-x 移到 F9。如果你原本肌肉記憶是 ctrl-x 靜音,升級後要改習慣,或到 /keymap 重新綁定。
依 PR 的 key 名稱,寫在設定檔大概是這樣(實際格式以官方 config 文件為準):
[tui.keymap.global]
leader = "ctrl-x"
用 tmux 的人值得留意前綴衝突。PR 說預設 leader 會「讓位給既有的自訂快捷鍵與 chord 前綴」,但 tmux 的前綴是在終端機外層攔截,最穩的做法還是在 /keymap 裡用 Use leader... 選一個不撞的鍵。
四、比較安靜但影響可靠性的修正
Resume 會帶回權限。 PR #53150 的背景是:cold resume 時,存下來的未命名權限設定可能被「目前的預設值」蓋掉。這版改成從該 thread 自己的設定快照還原權限與網路核准,同時尊重你明確給的覆寫,以及目前的 managed policy。實務意義是:昨天你給某個 thread 開了網路權限、今天 resume 回來,不用再核准一次;但如果公司 policy 收緊了,以 policy 為準。
網路 proxy 收緊。 三個安全修正值得做 sandbox 的人知道:
- PR #51650:hostname 必須先通過 allowlist 或政策核准才會做 DNS 查詢。理由是「就算 proxy 最後拒絕,解析未核准的 hostname 本身就會把它洩漏給 DNS」。macOS Seatbelt 也移除了對外 DNS 的放行。
- PR #53506:多個
Hostheader(就算值相同)直接回400,避免政策判斷和上游 parser 讀到不同的 Host。 - PR #52661:同一組 brokered credential 若綁在有 MITM hook 的 host,就不能透過沒有 hook 的別名繞過檢查,會回
403並標blocked-by-mitm-hook。
指令不再卡住。 PR #52652 處理一個常見怪象:指令其實結束了,但子程序還握著 stdout,導致整個 turn 遲遲不結束。本機執行現在會在主程序退出後做有上限的 output drain;遠端執行則繼續等,避免漏收晚到的輸出。如果你常讓 Codex 起 dev server 或背景 watcher,以前遇到「卡住不動」的情況,這版應該會少很多。
codex exec 不再重複印 diff。 PR #53444 讓 human-readable 輸出只在 diff 真的改變時才印。用 codex exec 跑 CI 或 cron 的人,log 會乾淨不少。
/daemon 可以重啟背景 server。 PR #53173:設定改了但背景 server 還用舊設定時,可以在 TUI 裡直接重啟,Codex 會先警告其他對話中進行或排隊的工作可能被中斷,然後自動重連。
五、數據與限制
這版 release note 沒有提供任何效能數字,平行化省多少時間、steering 減少多少重做,官方都沒給。以下是讀 PR 之後該抱持的保留:
- instant interrupt 仍是 under development。 它是預設開啟,但 PR 自己說這個 feature 仍在開發中,不代表行為已經凍結。
- 平行化只涵蓋特定唯讀工具。 範圍見 PR #52245 的清單;shell 指令、檔案寫入不在其中。
- Daybreak 的實際內容官方沒有說清楚。 release note 寫「Daybreak 對符合資格的帳號預設開啟,
codex exec也能在 server 提供存取時用 OpenAI API key 選用」。從原始碼看,它屬於 Codex 的「Cyber access programs」(程式碼裡有DaybreakBlue、DaybreakRed),TUI 有/daybreak指令,且需要 OpenAI provider 搭配 ChatGPT 登入或已啟用該功能的 API key。至於它對模型行為具體改變了什麼,公開文件沒有說明,這裡不猜。 - Linux sandbox 的說明更正。 PR #52610 把 Linux sandbox 的命名與文件對齊實作:檔案系統隔離靠 bubblewrap、syscall 過濾靠 seccomp,舊的 Landlock 名稱是歷史遺留。PR 註明 enforcement 行為不變,只是文件與命名更準確。如果你過去以為 Codex 在 Linux 上用 Landlock 做隔離,可以更正這個認知。
六、適用場景與 trade-off
適合馬上升級:
- 你習慣邊看邊修正 agent,常常「看它走歪→等它講完→重講需求」。steering 直接省掉中間那段。
- 你大量使用 skills、memory、歷史對話查詢,一輪會觸發多個唯讀查詢。
- 你常 resume 長時間的 thread,被「權限又要重新核准」困擾過。
- 你用
codex exec跑自動化,被重複 diff 洗版或被背景程序卡住過。
先等一下或先測:
- 你有依賴「回應一定跑完」的腳本或 SDK 整合,先在測試環境驗證 interrupt 行為。
- 你的設定還用 zsh fork 的 flag,或你依賴 patched zsh 的某些行為。
- 你的肌肉記憶把
ctrl-x綁在語音靜音上。
七、給工程團隊的操作清單
- 升級後先開
/config掃一輪。 用跨組搜尋確認團隊在意的設定(通知、paste detection、selection),順便看哪些顯示需要重啟。 - 清掉退役的 shell flag。 在共用的
config.toml範本裡移除shell_zsh_fork、unified_exec_zsh_fork。 - 把「插話」寫進團隊的使用守則。 範本:「停。目標改成 X;不要碰 Y;完成條件是 Z 通過。」三段式比較不會讓 agent 把舊計畫接著做完。
- 把多個唯讀查詢合併成一個 prompt。 讓 agent 在一輪內一次發起,吃到平行化的好處。
- 做 sandbox/proxy 的團隊重新看一次網路政策。 DNS 查詢現在需要先核准、重複 Host header 會被拒,若有內部工具依賴舊行為,要提前測。
- CI 中的
codex exec版本鎖定。 升級前後比對一次 log 輸出,確認 diff 去重不影響你的解析腳本。
來源
- OpenAI Codex 團隊,Release 0.163.0(rust-v0.163.0):https://github.com/openai/codex/releases/tag/rust-v0.163.0
- PR #51812 Enable instant interrupts by default(@pakrym-oai)
- PR #51835 Enable code mode interruption by default(@won-openai)
- PR #52245 Enable parallel execution for read-only tools(@zamoshchin-openai)
- PR #52990、#53429
/config面板與即時套用(@fcoury-oai) - PR #52273 Leader shortcuts(@fcoury-oai)
- PR #53150 Restore thread-owned permissions on cold resume(@etraut-openai)
- PR #53173
/daemon重啟(@etraut-openai) - PR #51650(@jif-oai)、#52661(@viyatb-oai)、#53506(@jfoo-oai)網路 proxy 修正
- PR #52652 本機 output drain(@jif-oai)、#53444
codex execdiff 去重(@fcoury-oai) - PR #52160 移除 patched zsh(@jif-oai)、#52610 Linux sandbox 文件(@bolinfest)
- PR #53701 Daybreak 預設開啟(@julee-oai)
整理:DataAgent · Coding Agent 實戰教學
權限與審查邊界怎麼訂、誰來審,這在單人開發和五人以上團隊是完全不同的問題。團隊版的做法我整理在這裡:
coding agent 導入與治理 — 企業內訓與顧問 →


