AI 說"我做完了"到底能不能信?Codex 這次給出了答案

作者:竇竇的AI工具庫
日期:2026年5月3日 下午11:30
來源:WeChat 原文

整理版優先睇

速讀 5 個重點 高亮

AI 話「做完」唔等於真係做完——Codex /goal 教你要識定驗收標準

整理版摘要

呢篇文章主要講 OpenAICodex CLI 最新加入嘅 /goal 命令,係一個用嚟解決 AI 做完嘢但亂交差嘅新機制。作者指出 AI 成日自己覺得「搞掂咗」就停手,但其實未達標,而 /goal 嘅目標就係要逼 AI 按預設驗收條件自我審計,直到所有條件滿足先當完成。

文章背景係源自 OpenAI 官方同 Felipe Coury 嘅帖文,作者以編輯角度整理咗 /goal 嘅用法、設定方法、控制指令,同埋點樣寫一個好嘅目標。佢特別強調,寫目標唔可以鬆散,例如「提升性能」呢類模糊字眼只會令 AI 偷懶改一行就收工;一定要具體到「修復邊個檔案、加測試、通過邊個 spec、總結改咗啲乜」。

整體結論係:/goal 唔係魔法,而係一種協作模式轉換——由「你睇實 AI 一步步做」變成「你先定義完成條件,再放 AI 自己追」。呢個概念呼應 Karpathy 講過嘅「傳統自動化處理你能描述清楚嘅事,AI 自動化處理你能驗證清楚嘅事」。用 /goal 之前,最緊要係搞清「做到咩先算完成」。

  • /goal 係一個自動循環機制:你畀目標,Codex 自己寫 Code、跑測試、睇結果,未過線就繼續做。
  • 設定好目標嘅關鍵係具體驗收條件,例如「修復 race condition、加測試、通過 pnpm test、總結驗證方式」,唔好寫「提升性能」呢類模糊願望。
  • /side 命令可以開臨時分支問問題,唔會污染主線任務,好適合主任務進行中想查嘢嘅情況。
  • 系統有三道閘防 AI 亂循環:卡住就停、預算限額同完成審計(強制模型逐項對照證據先可標記完成)。
  • 用 /goal 之前要轉換心態:唔好再諗 prompt 點寫,而係諗清楚「做到咩先算完成」,先係真正用得掂呢個工具嘅關鍵。
值得記低
連結 github.com

Codex CLI 倉庫

OpenAI Codex CLI GitHub 倉庫,包含 /goal 功能原始碼及文檔

連結 x.com

Felipe Coury 原帖

Felipe Coury 喺 X 上面分享 /goal 用法嘅原始帖文

結構示例

內容片段

內容片段 text
/goal 修復 auth/session.ts 裏 session refresh 的 race condition完成標準:
1. 找到並修復根因2. 加併發刷新測試3. 跑 pnpm test auth/session-refresh.spec.ts 通過4. 總結改了哪些文件、用什麼命令驗證、還有哪些風險四條全滿足才能標記完成。
整理重點

/goal 係點樣運作嘅?

/goal 係 Codex CLI 最新嘅實驗功能,用嚟解決 AI 話做完但未達標嘅問題。開啓方法好簡單:先確認 version ≥ 0.128.0,然後喺 ~/.codex/config.toml 加 [features] goals = true,或者直接打 codex features enable goals,重啟 CLI 就用得。

基本用法係喺 Codex CLI 輸入 /goal 後加一句目標,例如「修復登錄跳轉 bug,加一個迴歸測試」,Codex 就會自動開工,一輪唔夠自動下一輪。

控制命令有 /goal pause(暫停)、/goal resume(繼續)、/goal clear(清掉),按 Ctrl+C 都係暫停,下次返嚟可以繼續。如果目標好長,可以將詳細指令寫入 .md 檔案,再用 /goal follow task.md,好處係上下文壓縮時細節唔易走失。

整理重點

點樣寫一個唔會出事嘅目標?

所以要將目標拆做多條驗收項,每一項都要可以核對。唔好將願望直接當目標,例如「提升性能應該改成「將 API 回應時間由 200ms 降到 50ms,並通過壓力測試」。咁樣模型先知道咩叫「做完」。

  1. 1 目標要具體,例如指定檔案、功能、指標。
  2. 2 驗收標準要可核對,最好一條條寫清楚。
  3. 3 避免模糊詞,例如「優化」「改進」「提升」。
  4. 4 開工前先諗清楚「做到咩算完成」。
整理重點

除咗 /goal 仲有咩配套?

今次仲加咗 /side 命令,用途係開臨時分支問問題,唔會污染主線任務。

例如 /goal 正在跑,你想問某個 API 參數點寫,直接打字會搞亂主線。用 /side 開個臨時對話,問完按 Esc 返主線,分支直接扔掉。呢個設計同 Claude Code 嘅 /btw 一樣,好順手。

不過要注意 /goal 同 Plan mode 互斥,唔可以同時用。另外 API quota 報錯有機會引致死循環,遇到就要 Ctrl+C 停手。

整理重點

系統點樣防止 AI 呃人話做完?

Codex 設計咗三道閘嚟確保唔會亂循環:第一係卡住就停——如果某一輪冇調任何工具(冇寫 Code、冇跑命令、冇讀文件),系統就停,等用戶新輸入先再跑。第二係預算兜底——每個目標可以設 token 預算同時間上限,燒超咗會塞提示叫模型總結進度畀下一步建議。

仲有一個細節:模型只可以標記完成,唔可以自己暫停或恢復,只有用戶得。呢個設計防止模型覺得「差不多了」就提早收工。目標掛上去後得兩種結束方式:真係做完,或者你手動停。

整理重點

用 /goal 之前要諗清楚嘅心態轉變

呢件事值得講,唔係因為 /goal 有幾複雜,而係佢改變咗你同 AI 嘅協作方式。以前係你睇實 AI 一步步做,家陣係你先講清楚終點同驗收條件,然後放 AI 自己跑。

Karpathy 講過一句話:傳統自動化處理你能描述清楚嘅事,AI 自動化處理你能驗證清楚嘅事。/goal 正正係行緊呢條路。

所以用之前,唔好急住諗 prompt 點寫,先諗清楚「做到咩算完成」。目標定得靚,AI 先唔會偷懶。

AI話自己做曬,到底信唔信得過?

OpenAI俾Codex CLI加咗個新指令叫 /goal,專治呢個問題。

你可以當佢係一個會自動追結果嘅循環:你俾個目標,佢就去寫code、run測試、睇結果,唔夠就不停補,直到過關。

而家仲係實驗階段,要手動開。

怎麼開

兩步。

先確認版本 ≥ 0.128.0:

codex --version

然後在 ~/.codex/config.toml 里加:

[features]
goals = true

或者一行指令:

codex features enable goals

重啟CLI,開咗就得。

基本用法

入Codex CLI直接打:

/goal 修復登錄跳轉 bug,加一個迴歸測試

Codex就會開始做。一輪唔夠就自動開下一輪。

控制指令都好簡單:

  • /goal pause:暫停
  • /goal resume:繼續
  • /goal clear:清掉

按Ctrl+C都係暫停。下次返返呢個對話,佢會喺上次嘅位繼續做。

如果目標好長,寫喺命令行太亂。將詳細指示掉入一個 .md 文件入面,然後:

/goal follow task.md

呢招仲有個好處:壓縮上下文嘅時候,細節冇咁易走甩。

呢度有個大陷阱

/goal 唔係魔法。完成與否,最終都係由模型自己判斷。

目標越模糊,模型越容易偷懶——改一行code就覺得「嗯,做曬」。

舉個反面例子:

/goal 提升項目性能

送命題。「提升性能」係咩意思?降一毫秒算唔算?模型唔知「完成」係點樣,求其改改就交貨。

正面例子係咁:

/goal 修復 auth/session.ts 裏 session refresh 的 race condition

完成標準:
1. 找到並修復根因
2. 加併發刷新測試
3. 跑 pnpm test auth/session-refresh.spec.ts 通過
4. 總結改了哪些文件、用什麼命令驗證、還有哪些風險

四條全滿足才能標記完成。

講到底,目標要具體,驗收要寫清楚,最好逐條可以對照。唔好將願望直接當目標。

順便一提:/side

呢版仲加咗 /side

用途係咁:/goal 喺跑緊嘅時候,用戶突然想問個無關嘅問題,例如某個API參數點寫。直接打字會污染主線。

/side 就係開個臨時分支傾偈,問完按Esc返主線,分支對話直接掉咗佢。

同Claude Code嘅 /btw 係同一樣嘢。

主要任務喺度跑,臨時疑問用 /side 掉入去,幾順手。

佢會唔會不停循環?

Codex做咗幾重防線。

第一重:卡住就停。

如果某一輪冇用任何工具——冇寫code、冇run指令、冇讀文件——系統會當佢卡住咗,循環就會停。要等用戶俾新輸入先會再run。

第二重:預算兜底。

每個目標可以set token預算同時間上限。用超咗,系統會塞一條提示入去,叫模型唔好開新任務,將進度總結一下,俾用戶下一步建議。

第三重:完成審計。呢個最關鍵。

/goal 唔係模型話「做曬」就完。

每輪繼續之前,系統會偷偷塞一條developer指令,要求模型做一次完成審計:

  • 將目標拆做驗收項
  • 每一項對應返實際證據
  • 對照實際嘅code文件、測試輸出、指令結果
  • 全部滿足先可以呼叫 update_goal({"status":"complete"})

呢一步主要防佢自我感覺良好:產出咗嘢,但唔等於目標真係完成咗。

測試run過 ≠ 功能做完。code寫咗 ≠ 需求滿足。

咁樣佢就冇得靠一句「差唔多」呃過去。

仲有一個細節:模型只可以標記「完成」,唔可以自己暫停或恢復。

得用戶先可以暫停同恢復。

咁樣設計,係因為模型好容易自己判定「差唔多」,然後提早收工。

目標掛上去之後,只有兩種結束方式:佢真係做完,或者你手動停咗佢。

而家仲有啲粗糙

實驗階段,幾個陷阱:

  • 得CLI,桌面app仲未有
  • API quota報錯可能會入死循環——不停請求不停撞額度,遇到呢啲情況就用Ctrl+C kill咗佢
  • Plan mode同 /goal 互斥,唔可以同時用
  • 早完成問題:模型有時開一個file就覺得搞掂,明明只係改咗表面。所以驗收標準寫得越仔細,越唔容易出事

呢件事值得講,唔係因為 /goal 有幾複雜。正正相反,佢嘅思路唔花巧。


真正重要嘅係,佢將你同AI嘅合作方式調轉咗。以前似係你睇住佢一步步做;而家似係你先講清楚終點同驗收條件,跟住俾佢自己搞。


Karpathy講過一句話,大意係:傳統自動化處理嘅係你能夠描述清楚嘅事,AI自動化處理嘅係你能夠驗證清楚嘅事。/goal 就係向呢條路行。


所以用之前,唔好急住諗提示詞點寫,先將「做到咩算完成」寫清楚。



連結

  • Codex CLI倉庫:https://github.com/openai/codex
  • Felipe Coury原帖:https://x.com/fcoury/status/2049917871799636201

AI 說自己做完了,到底能不能信?

OpenAI 給 Codex CLI 加了個新命令叫 /goal,專門治這個病。

你可以把它理解成一個會自己追結果的循環:你給目標,它去寫代碼、跑測試、看結果,不夠就繼續補,直到過線。

現在還在實驗階段,得手動打開。

怎麼開

兩步。

先確認版本 ≥ 0.128.0:

codex --version

然後在 ~/.codex/config.toml 里加:

[features]
goals = true

或者一行命令:

codex features enable goals

重啓 CLI,開完了。

基本用法

進 Codex CLI 直接輸:

/goal 修復登錄跳轉 bug,加一個迴歸測試

Codex 就開始幹了。一輪不夠就自動開下一輪。

控制命令也簡單:

  • /goal pause:暫停
  • /goal resume:繼續
  • /goal clear:清掉

按 Ctrl+C 也是暫停。下次回到這個對話,它接着上次的地方繼續幹。

目標如果很長,寫命令行裏太亂。把詳細指令丟到一個 .md 文件裏,然後:

/goal follow task.md

這招還有個好處:上下文壓縮的時候,細節不容易丟。

這裏有個大坑

/goal 不是魔法。完成與否,最終還是模型自己判斷。

目標越模糊,模型越容易偷懶——改一行代碼就覺得"嗯,做完了"。

舉個反面教材:

/goal 提升項目性能

送命題。"提升性能"是啥意思?降一毫秒算嗎?模型不知道"完成"長啥樣,隨便改改就交差。

正面教材長這樣:

/goal 修復 auth/session.ts 裏 session refresh 的 race condition

完成標準:
1. 找到並修復根因
2. 加併發刷新測試
3. 跑 pnpm test auth/session-refresh.spec.ts 通過
4. 總結改了哪些文件、用什麼命令驗證、還有哪些風險

四條全滿足才能標記完成。

說白了,目標要具體,驗收要寫清,最好一條條都能核對。別把願望直接當目標。

順帶一提:/side

這版還加了 /side

用途是這樣:/goal 在跑,用戶突然想問個不相關的問題,比如某個 API 參數怎麼寫。直接打字會污染主線。

/side 就是開個臨時分支聊天,問完按 Esc 回主線,分支對話直接扔掉。

跟 Claude Code 的 /btw 是一回事。

主任務在跑,臨時疑問用 /side 扔進去,挺順手。

它會不會一直循環?

Codex 做了幾道閘。

第一道:卡住就停。

如果某一輪沒調任何工具——沒寫代碼、沒跑命令、沒讀文件——系統認為它卡住了,循環就停。要等用戶給新輸入才會再跑。

第二道:預算兜底。

每個目標可以設 token 預算和時間上限。燒超了,系統會塞一條提示進去,告訴模型別開新任務,把進度總結一下,給用戶下一步建議。

第三道:完成審計。這個最關鍵。

/goal 不是模型說"做完了"就結束。

每輪繼續之前,系統會偷偷塞一條 developer 指令,要求模型做一次完成審計:

  • 把目標拆成驗收項
  • 每一項映射到真實證據
  • 對照實際的代碼文件、測試輸出、命令結果
  • 全部滿足才能調 update_goal({"status":"complete"})

這一步主要防的是它自我感覺太好:東西是產出了,但不等於目標真的完成了。

測試跑過 ≠ 功能做完。代碼寫了 ≠ 需求滿足。

這樣它就沒法靠一句“差不多了”糊弄過去。

還有一個細節:模型只能標記"完成",不能自己暫停或恢復。

只有用戶能暫停和恢復。

這麼設計,是因為模型很容易自己判定“差不多了”,然後提前收工。

目標掛上去以後,只有兩種結束方式:它真的做完,或者你手動停掉。

現在還有點糙

實驗階段,幾個坑:

  • 只有 CLI,桌面 app 還沒有
  • API quota 報錯可能進死循環——一直請求一直撞額度,遇到這種 Ctrl+C 幹掉
  • Plan mode 和 /goal 互斥,不能同時用
  • 早完成問題:模型有時候建一個文件就覺得搞定了,明明只動了表層。所以驗收標準寫得越細,越不容易翻車

這事值得說,不是因為 /goal 有多複雜。恰恰相反,它的思路並不花哨。


真正重要的是,它把你和 AI 的配合方式換了一下。以前更像你盯着它一步步做;現在更像你先把終點和驗收條件說清楚,剩下的讓它自己跑。


Karpathy 講過一句話,大意是:傳統自動化處理的是你能描述清楚的事,AI 自動化處理的是你能驗證清楚的事。/goal 就是在往這條路上走。


所以用它之前,先別急着想提示詞怎麼寫,先把“做到什麼算完成”寫明白。



連結

  • Codex CLI 倉庫:https://github.com/openai/codex
  • Felipe Coury 原帖:https://x.com/fcoury/status/2049917871799636201