我用 Claude 對話裝 Codex —— 但全程沒讓他幫我做決定
AI 開發實踐·10 分鐘

我用 Claude 對話裝 Codex —— 但全程沒讓他幫我做決定

對話式安裝是新姿勢,比讀 docs 快、比按按鈕直覺。但很容易把腦袋外包出去。一個下午我跟 Claude 一起 setup OpenAI Codex CLI,全程質疑每個建議的紀錄

Y
Young Tsai

你會讓室內設計師全權幫你決定家裡每張椅子嗎?還是你要參與在每個選擇裡?

我猜大部分人會選後者,因為你知道:那是你家、不是設計師家

那為什麼很多人讓 AI 全權幫他做技術決定?


一個下午的故事

事情是這樣的,我下午想裝 Codex CLI 看看,這是 OpenAI 出的東西,最近社群很多人在玩 hybrid setup(Claude + Codex 一起用)

我打開 Claude Code 視窗,第一句話打:「幫我裝 codex plugin」

換成兩年前的我,可能想說 AI 應該直接動手吧,省事

結果 Claude 沒動,反問我:「是 codex-plugin-cc(Anthropic plugin 版本)、Codex CLI(獨立 binary)、還是 codex-mcp(MCP server 包裝)?三個是不同東西」

我愣了三秒

對欸,我自己根本沒想清楚要哪一個

這就是對話式安裝的第一個價值 —— 它不是讓你偷懶,是讓你被迫想清楚


對話式安裝是新姿勢,但不要把大腦外包

簡立峰老師講過一句話我很喜歡:「別把大腦外包給 AI」

他還補一句:「永遠先自己想 10 分鐘,再問 AI」(HBR Taiwan 那篇)

我下午做的事情,本質上就是把這個原則用在 AI 工具的安裝過程

對話式安裝不是 GUI(按按鈕)也不是 CLI(讀 docs),它是介於中間的一種新姿勢,速度比讀 docs 快、彈性比 GUI 大

但它最大的陷阱是:很容易變成「你說、AI 做、你不知道發生什麼事」

我給自己定了一個原則:全程 AI 不准幫我做決定,每個建議我都要質疑


我做對的 5 件事

Claude 一開始建議:「你 Claude side 養了 208 個 skill,要不要 symlink ~/.claude/skills/ 給 Codex 用,省得兩邊各寫一份?」

聽起來合理對吧?省事

我反問:「會破壞 Claude 嗎?有沒有成本風險?」

Claude 想一下回答:

  • 破壞 Claude 不會,symlink 是單向讀
  • 但 ~/.claude/skills/ 裡面有 ref-skill 含 CRM 客戶資訊 / 家庭資訊
  • Codex sandbox 跑在 OpenAI 那邊,等於資料給 OpenAI 看

我把手指收回鍵盤,泡了杯咖啡

這就是 Naval 講的 leverage 跟 accountability 的關係 —— hybrid setup 是 leverage,但 accountability 永遠在我身上

如果我懶得多問那 30 秒,OpenAI sandbox 就拿到我家保險箱鑰匙

第二:要求多角度(「大神怎麼做?」)

決定 hook 翻譯範圍時,我問:「74 個 hook 全翻嗎?」

Claude 給我「全翻」的方案

我反問:「業界大神怎麼做?Boris Cherny 講過什麼?」

它才補:Boris 在 Latent Space podcast 講過「Claude Code is not a product as much as it's a Unix utility」,意思是工具該被組裝,不是被全盤套用

於是我們改成:翻 5 個高風險 hook 就好(cloud-run secret / persona gate / client 匿名 / LLM hardening / SQLAlchemy FK)

剩下 69 個留 Claude side,因為 Codex 反正不該 commit / push / 改 schema

第三:不接受片面結論(「網路大神都怎麼做?」)

Claude 給我第一份 hybrid 分工建議的時候,我覺得有點 marketing 味

我問:「Karpathy 怎麼看這個?」

它才補:Karpathy 講過 AI 最大的坑是 sycophancy(諂媚),同一個 model 容易在自己的 reasoning loop 裡自我說服「我對」

換句話說,hybrid 的核心價值不是「兩個一起用比較強」,是「換一個 model 看,它沒陷在你那個 loop 裡,會直接說『不對』」

這個 framing 完全改變我的分工矩陣 —— Codex 不是「升級版 Claude」,是「會挑 Claude 盲點的另一個工程師」

Karpathy 在 Y Combinator 2025 keynote 講「Software 3.0」的時候也提到 Centaur framework(人 + AI 混合)—— 重點是「人 + AI」,不是「AI 取代人」

第四:主動補我自己想到的盲點

對話進行到一半,我自己想到一個問題:「等等,hook 翻過去之後,Codex 真的會跑嗎?還是只是檔案在那邊但沒掛上?」

Claude 一開始假設 Codex 自己會 pick up,我堅持要驗證

於是我們列出 30 個 test case 跑一遍,每個 case 截 exit code + stderr,對照預期行為

跑出來的數字大概像這樣:

  • cloud-run secret guard:6/6 對,4 個惡意 case 被擋(exit 2),2 個正常 case 過
  • client 匿名掃描:6/6 對
  • persona gate:4/6 對 + 2 個 known false positive(這個我認了,下週修)
  • LLM endpoint hardening:6/6 對
  • SQLAlchemy FK:6/6 對

整體 28/30 —— 不完美,但 known limitation 寫下來了,沒埋著

如果我沒堅持驗證,現在我會以為我有 5 個護欄,實際上 persona-gate 對 memory/feedback-blog-*.md 跟 scripts/blog_publisher.py 會誤觸發 —— 整整 33% 失準率,我完全不知道

這就是簡立峰老師講的「60→80 分用 AI / 80→100 自己腦袋」 —— Claude 給我 60 分(hook 翻譯完成),剩下 40 分要靠我堅持「跑 test 驗證」才能到 80

第五:要求驗證「它能不能擋機密」

最後一步,我要求模擬攻擊

Claude 寫了 6 個 yaml-dump / json-dump / 大小寫變體 / pipe grep 繞過 case,丟給 hook

5/6 都被 exit 2 擋下來,第 6 個是正常 gcloud 命令、應該過 —— 確認 hook 邏輯對的

如果我跳過這步,hook 可能其實有漏洞,等到真的 secret leak 才發現就太晚


我差點做錯的 3 件事

要誠實一下,這個下午我差點做錯:

  1. 差點 symlink 整包 skill 給 Codex —— 第一個 instinct 是省事,幸好我問了「會不會出事」
  2. 差點寫死 routing rule 沒實戰過 —— Claude 一開始給我「Codex 跑 X / Claude 跑 Y」的清單,我堅持要先跑一週再 lock
  3. 差點接受「Codex 比較強」這個 marketing 結論 —— 業界很多 testimonial 「Why We Switched From Claude Code to Codex」,但我問了三個朋友後發現大部分是用 Codex 一週、沒養 stack 就跑來比,比較不公平

這 3 件事的共通點:Claude 的初步建議都是合理的,但都不夠完整

如果我直接接受,每一個都會留下 6 個月後才爆炸的雷


過程中我學到的事

寫到這邊我發現一件事

整個下午我其實沒在「裝 Codex」,我在「跟 Claude 一起腦力激盪 hybrid setup 的設計」

Codex 只是這個 setup 的其中一個元件,真正的 deliverable 不是「裝完了」,是我腦袋裡多了一張 hybrid 分工矩陣 + 一份 30 test case 驗證報告

這就是對話式工作的價值 —— 不是 AI 替你做事,是 AI 跟你一起把問題想透

簡立峰老師講過一個概念叫「π 型人才」—— 一專多能 + 跨領域整合 + AI 槓桿,這三件事缺一不可

對話式安裝就是把「跨領域整合」跟「AI 槓桿」融在一起的具體實踐


結尾

對話式不是偷懶式

AI 給你 80 分的速度

最後 20 分還是你自己的腦袋

下次你打開 Claude 想「幫我裝 X」的時候,試試看每個建議都反問一句:「為什麼?大神怎麼做?會不會有風險?」

你會發現整個過程從 30 分鐘變成 3 小時

但你會學到的東西,是 30 分鐘版本的 10 倍

你呢?你最近一次「跟 AI 對話做事」的時候,有質疑它幾次?


補充:寫完這篇我才發現一件事(實測 epilogue)

寫完上面那 5 件做對的事之後,我又跑了一輪真實 E2E test,把 5 個 hook 註冊到 ~/.codex/config.toml,再用 codex exec "..." 真的丟一個應該被擋的命令進去

結果 hook 沒 fire

我愣住了 30 秒,因為前面 30 個 fixture test 都 pass,hook script 邏輯絕對對

查了 OpenAI 官方 Hooks 文件,最後一段小字寫:

「PreToolUse doesn't intercept all shell calls yet, only the simple ones. The newer unified_exec mechanism allows richer streaming stdin/stdout handling of shell, but interception is incomplete」

翻譯:Codex 用新的 unified_exec 跑 shell,PreToolUse hook 攔截不完整

換句話說:我把 5 個 hook 翻譯到 Codex 了,但實際上 Codex 跑 exec 模式時根本不過 hook

這個發現直接打臉我前面整個 hybrid 護欄計畫


真正的 implication

我原本以為架構是這樣:

Codex 跑 shellPreToolUse hook 檢查block 或 pass

實際上是這樣:

Codex 跑 shell(unified_exec path)⚠️ 直接執行,hook 沒 fireCodex 跑 shell(simple Bash path)✅ 過 hook

問題是 codex exec non-interactive 模式幾乎全走 unified_exec path,等於我的護欄白做

於是我做了兩件事:

  1. 拔掉 Codex 那 208 個 skill symlink —— 因為護欄不可靠 = 客戶資料不能放給 Codex 讀
  2. 重新定位 Codex 在我 stack 裡的角色 —— 從「有護欄的 worker」降級成「無護欄的 review-only 工具」

換句話說 Codex 現在只能用來:

  • /codex:review 看 PR diff(read-only,不會寫檔)
  • /codex:adversarial-review 戳設計(同上)

禁用:codex exec 寫 code、codex /goal 跑長任務 —— 這些動作沒護欄 = 風險


我學到的最大教訓

Mode A test 通過 ≠ production 真的 work

Mode A 是「直接餵 fixture 給 hook script」 —— 驗證 script 邏輯 Production E2E 是「Codex 真的跑命令時 hook 有沒有 fire」 —— 驗證整個 chain

我跑完 Mode A 28/30 pass,然後就以為「OK 護欄好了」

如果我沒堅持跑 Mode B,我會用一個假的安全感繼續開 hybrid,等到真的有東西 leak 才知道完蛋

這呼應簡立峰老師那句「60→80 用 AI / 80→100 自己腦袋」 —— Mode A 是 60→80,Mode B 才是 80→100

也呼應這篇前面講的:對話式不是偷懶式

如果我在 Mode A pass 之後就接受 Claude 給的「設定完成」結論,整個下午就是白費工


我為這篇做了什麼研究(不寫部落格我會憑感覺講,這次決定查清楚)

我在寫這篇之前,spawn 了 4 個研究 agent 平行查:

  • 大神觀點(Boris Cherny / Karpathy / 官方推薦 pattern)
  • 業界 FAQ + 真實踩坑(reddit / dev.to / GitHub issues)
  • 風險 / 成本 / 學習曲線(Cymulate 安全研究 + GitHub issues)
  • 多 source(YouTube / podcast / 官方文件 / GitHub demo repo)

加總大概看了 30+ 篇文章 / 5 個 GitHub demo repo(codex-plugin-cc 18.1k stars / compound-engineering-plugin 16.4k / claude-codex-settings 674 / Z-M-Huang/claude-codex / everything-claude-code)/ 3 個 podcast / 5 個 YouTube

支持 hybrid 的論點

  • Karpathy:cross-model review 抓 sycophancy(同個 model 容易在自己 reasoning loop 裡自我說服)
  • Boris Cherny:「Claude Code is not a product as much as it's a Unix utility」 — Codex 是另一個可組裝的 utility
  • Naval:leverage 永遠 stack 多比 stack 少強(前提是你能 maintain)
  • 18.1k stars 在 codex-plugin-cc,社群動能真的有
  • Anthropic 官方推 plugin 等於背書 cross-model 概念

反對 / 質疑 hybrid 的論點

  • Reddit 多人:「我試了一週放棄,太複雜了學了沒用」
  • Cymulate 安全研究:Codex sandbox 還沒成熟,hybrid 增加 attack surface
  • Every podcast 那個「Why We Switched」testimonial 受訪者只用 Codex 一週、沒養 stack 就比 — 不公平
  • Anthropic 推 plugin 自帶 bias,他不會官方說「Codex 弱不要用」
  • 雙月費 $400/月對個人開發者門檻高

什麼情境下適合 hybrid

  • 重度寫 code(每天 4hr+ 實際 AI 輔助開發)
  • 已經付 Anthropic Max 月用量真的吃滿(沒邊際成本)
  • 想學 cross-model review workflow
  • 已經有自己的 hook / pipeline / skill stack(像我)
  • 同時跑多 project 想 parallelism

什麼情境下「不要」做 hybrid(自己做反方)

  • 輕度用 AI coding(每週 < 5hr)
  • 只想用一家月費省錢
  • 沒寫過自己的 hook / pipeline / skill
  • 想要「簡單沒事就 work」(hybrid 第一週 -30% productivity 是真實)
  • 1-2 個小 repo 範圍,overhead 不划算
  • 處於 deadline 高壓期(邊學邊上線不可能)

我可能漏想的盲點(誠實說)

  • 我可能高估了 cross-model review 的價值,只跑了幾個小實驗、沒 controlled study
  • 我可能低估了 plugin update 的破壞力,30 test 只跑一次,下次 update 行為可能變
  • 我寫這篇是「已經決定做 hybrid」之後才補論點,嚴格說是 rationalization 不是 deliberation
  • 6 個月後 Codex 可能也出 Plan Mode + commit hook,那我整個分工矩陣要重做
  • 也許 Cursor / Cline / Aider 才是更值得學的第三條路,我沒認真評估

歡迎留言告訴我你的盲點,我自己也想知道


延伸閱讀

支持「對話式 + 不外包大腦」的觀點

反方 / 質疑論點(讀完再下判斷)

社群整合分析

claude-codecodexai-toolingconversational-setuphybrid-aiharness-engineering