本週我花更多時間使用 Codex 而非 Claude,以下是一些快速且非常個人的初步印象(希望週末能進行完整分析)。
(1)雖然我今年試圖讓 Claude 和 Codex 保持同步,擁有相同的插件/技能集等,但 Claude 擁有更多技能,因為我從某些對話中創造了技能,但並非所有技能都已移植到 Codex。解決方法很簡單:將 Codex 指向 Claude 的技能資料夾,並要求它為 Claude 轉換這些技能。
(2)當我趕時間時(例如除錯某個感覺很緊急的問題),我仍然會打開 Claude,因為不知何故我對它感覺更自在。我並不是說它比較好,而是它比較熟悉,而在除錯時,使用我熟悉的工具很重要。
(3)Codex 建立的變更在 Ruby/Ruby on Rails 程式碼中的註解較少。我非常喜歡這一點,很快就會分享我對此進行的一些實驗。
(4)Codex agent harness 的輸出比 Claude 的更「技術化」。Claude 感覺更像是你在 Tuple 會話中與同事交流,而 Codex 則更像星艦迷航記中的 Data。
(5)我想開啟更多 Codex 的對話,並讓它們保持專注,而不是像以前那樣開啟一個大型的 Claude 對話。這可能不是 Codex 特有的,但我在使用 Codex 時注意到了這一點。
(6)我感覺 Codex 的變更速度比 Claude 快。但在進行主要變更後,完成 pull request 花費了很多時間:重新運行許多測試、審查等等。我喜歡這種徹底性,但最終在時間上並沒有贏得任何優勢。
(7)我感覺 Codex 在程式碼架構方面提出了比 Claude 更簡單的解決方案。Claude 通常會創造很多東西:抽象、概念、Sorbet 簽名、類型別名等等。Codex 則稍微更為克制,創造的內容較少。本週我也測試了一個改進的流程:程式碼研究 -> 設計變更 -> 審查變更 -> 實施 -> 驗證。但我讓它們兩個使用相同的文檔實施相同的需求,Claude 的程式碼稍微複雜一些,但能處理各種情況。
(8)Codex 也犯了一些錯誤。Claude 能理解我從其他工作中分支出來並保持同步的意圖。Codex 犯了一些糟糕的錯誤,例如分支 A 針對分支 B,而分支 B 針對 main,當我要求它 rebase 時,它與 main 進行了 rebase,這產生了一些包含 4000 多次新增的 PR。我不得不明確要求它只與目標分支進行 rebase。
(10)在使用 MCP 時,我更喜歡 Codex 的 CLI 方法,它會要求我執行 `codex mcp login`,並且每次都會開啟正確的驗證和授權流程。Claude 有時會在一個回合中嘗試自動運行它,這可能會導致卡住。
我認為 Claude 和 Codex 之間的主要區別在於,Claude 試圖超越所要求的內容,猜測你可能想要什麼,然後直接去做,而 Codex 更像一個夥伴,執行你告訴它的事情,但不會過度。它會在可能完成的最初跡象處停止。