Claude Code 也有 /goal 了,跟 Codex 的有什麼不一樣

作者:Feisky
日期:2026年5月13日 下午8:27
來源:WeChat 原文

整理版優先睇

速讀 5 個重點 高亮

Claude Code 加入 /goal 命令,用獨立模型判斷完成,比 Ralph Loop 更可靠但驗證深度不及 Codex

整理版摘要

呢篇文章出自 Feisky,係一位經常試用 AI 編程工具嘅開發者。佢之前用過 Codex /goal 同 Ralph Loop,今次 Anthropic 喺 Claude Code 直接內置咗 /goal 命令,佢就試用咗幾個場景,整理出呢篇實測。整體結論係:/goal 比 Ralph Loop 好用好多,因為改用獨立評估模型(Haiku)判斷條件,唔係靠工作模型自說自話,但同 Codex /goal 比,驗證深度仲差一個層次。

文章首先講點用 /goal:一句命令設定條件,Claude Code 會自動循環直到條件達成,唔使每輪人手確認。條件點樣寫好關鍵,寫得太模糊模型會「交行貨」,建議用具體驗證命令同輪次上限。另外可以搭配 auto 模式或者非交互模式行 automation。

原理方面,/goal 係一個 session 級別嘅 prompt-based Stop hook。每輪結束後,系統將條件同對話記錄交畀 Haiku 評估,回傳 yes/no 同理由。Haiku 唔可以 call 工具,只睇文字證據,冇明確證據就默認未完成。不過呢個設計都有缺點:如果工作模型喺對話度造假,評估模型會信以為真。最後文章比較咗三個方案嘅差異,強調 Agent harness 嘅重要性,同埋提醒 token 消耗問題。

  • /goal 用獨立評估模型判斷完成,避免工作模型「自己改自己卷」,比 Ralph Loop 更可信
  • 條件寫法好關鍵:要具體、包括驗證命令同輪次上限,防止 AI 偷雞
  • 同 Codex /goal 比較Codex 靠自審工具形成驗證證據,Claude Code 只睇文字,驗證深度差一級
  • /goal 可以同 auto 模式或非交互模式配合,做到完全無人值守,適合 SPEC/PLAN 清晰嘅任務
  • Token 消耗係主要成本,每輪用 Opus/Sonnet,建議加輪次上限保護賬單
值得記低
連結 code.claude.com

Claude Code /goal 官方文檔

官方說明 /goal 命令用法同設定

連結 mp.weixin.qq.com

Codex /goal 推薦(上篇文章)

Feisky 之前寫嘅 Codex /goal 介紹同對比

連結 github.com

Claude Code GitHub

Claude Code 開源倉庫

結構示例

內容片段

內容片段 text
/goal 給 src/auth/ 下所有函數寫單元測試,要求:
1. 每個測試必須包含真實斷言,不能只有空殼2. 測試覆蓋率達到 80% 以上3. npm test 退出碼為
04. 不修改 src/ 下的源代碼5. 20 輪後未完成則停止
整理重點

點樣用 /goal:一句命令,自動循環

Claude Code 更新到最新版之後,打一句 /goal <完成條件> 就得。Claude Code 會一直做到條件滿足為止,唔使你逐輪確認。

界面上會出現一個 /goal active 狀態條,標註運行時長。同普通對話最大嘅分別係:每輪結束後唔會停低等你輸入,直接開始下一輪。

實際可用嘅命令得三個

  • /goal <條件>:設定目標,即時執行
  • /goal:查看狀態(條件、時長、輪次、token用量)
  • /goal clear:取消當前目標(stop / cancel / reset 都得)

另外,如果中途退出(例如到咗5小時上限),可以用 --resume 恢復目標繼續執行。條件最長支援4000個字符,可以寫得好細。

兩個好用嘅搭配:/goal + auto 模式——auto 關埋每個工具嘅確認,/goal 關埋每輪結束嘅等待,完全無人值守;非交互模式——適合自動化或者 SKILL 場景,例如 <code>claude -p "/goal CHANGELOG.md 包含本週所有合併嘅 PR 記錄"</code>。

整理重點

實現原理:獨立評估模型把關

/goal 本質係一個 session 級別嘅 prompt-based Stop hook。你設定條件後,Claude CodeOpusSonnet)正常做嘢(讀文件、改代碼、跑測試)。每輪結束後,系統將完成條件同當前對話記錄發畀一個 獨立嘅小模型(默認 Haiku)。

Haiku 返回 yes/no 同一條理由。如果係 no,理由會注入下一輪對話,話畀 Claude 仲差啲乜,然後自動開始下一輪。如果係 yes,goal 標記為完成,記錄落對話記錄度。

不過呢個設計都有漏洞:如果工作模型喺對話入面寫「測試全通過」但實際冇跑測試,評估模型見到嘅證據係充分嘅,自然會放行。所以建議喺條件裏面寫明具體嘅驗證命令,令 AI 冇辦法繞過。

整理重點

同 Ralph Loop 同 Codex /goal 嘅比較

先同 Ralph Loop 比Ralph Loop 嘅核心係 Stop hook 攔截,Claude 完成一輪嘗試退出時,hook 檢查係咪達到條件,未達到就重新注入原始 prompt。完成判斷靠 精確字符串匹配——Claude 輸出 <code><promise>DONE</promise></code> 就算完成。最大問題係模型自己話事,輸出標記就可以退出,冇任何獨立驗證。

Ralph Loop 每輪會原封不動重新注入原始 prompt,跑多咗上下文堆滿重複內容,形成噪音。/goal 換成獨立評估模型,至少唔係自己批改自己嘅試卷。另外 Claude Code 仲有個 /loop 命令,按時間間隔觸發,適合定時任務;/goal 係每輪結束後立即觸發,適合連續執行嘅目標。

再同 Codex /goal 比Codex 嘅核心係三層——狀態持久化(state-db)、權限控制(模型只能標記 complete,唔可以自行退出)、強制自審(continuation.md 要求拆檢查清單,逐項對照真實文件同測試結果)。

作者分享咗個啟發:關鍵嘅約束唔係寫喺提示詞,而係寫喺 代碼(Agent harness) 入面。CLAUDE.md 或者 AGENTS.md 寫嘅規則模型可能忽略,但代碼層面嘅 hook 100% 會觸發。人要用代碼控制 AI 行為同邊界,唔可以單靠模型自覺。

整理重點

使用建議同注意事項

對於 驗收條件清晰、按照 SPEC/PLAN 逐步完成 嘅任務,/goal 係目前最省心嘅選擇。不過要留意 token 消耗:/goal 模式下每輪都係完整嘅 Opus/Sonnet 調用,跑十幾輪落嚟主模型嘅 token 用量可以翻幾倍(Haiku 評估開銷好細,主要成本係多輪主模型)。

強烈建議喺條件入面加 輪次上限,防止無限跑下去。例如「20 輪後未完成則停止」。另外如果條件入面有驗證命令,AI 冇辦法造假,會更可靠。

整體嚟講,/goal 係 Agent harness 嘅一個實踐:用代碼層面嘅 hook 控制 AI 循環同完成判斷,而唔係靠模型自覺。呢個方向值得繼續關注。


上個禮拜寫咗一篇 Codex /goal 上線之後,我將 Ralph Loop 刪咗,順便吐槽咗 Claude Code + Ralph Loop 行長任務好多唔可靠。點知冇幾耐,Anthropic 喺新版 Claude Code 入面將 /goal 命令抄咗過嚟。官方推文直接講咗,呢個就係 Claude Code 內置嘅 Ralph Loop(Ralph Loop 只係一個插件)。

用咗幾個場景,發現 /goal 的確比 Ralph Loop 好用好多,用起嚟都簡單,一句 /goal 就可以啟動,終於唔使睇住 Agent 做嘢。今日就帶你一齊睇下呢個新功能同佢背後嘅工作原理。

使用方法

升級 Claude Code 到最新版本之後,/goal 後面跟一個完成條件,Claude Code 就會一直做到條件滿足為止,例如:

/goal 所有 test/auth 目錄下的測試通過,lint 也沒有報錯

同普通對話嘅分別係,每輪結束之後 Claude Code 唔會停低等你輸入,而係自動開始下一輪。界面上會顯示一個 /goal active 嘅狀態條,標註運行時長。

具體嘅使用方法如下:

圖片

其實可用嘅命令得三個:

  • • /goal <條件>:設定目標,立即開始執行
  • • /goal:睇狀態,包括條件、時長、輪次、token 用量
  • • /goal clear:取消當前目標(亦可以用 stop、cancel、reset)

要注意嘅係,條件點樣寫好關鍵。寫得模糊,模型仲有可能會呃你。例如咁寫:

/goal 給這個項目寫完整的測試

「完整」冇定義,模型可以寫幾十個空殼測試,全部通過,然後宣佈完成。所以建議你換成更具體嘅條件,例如:

/goal 給 src/auth/ 下所有函數寫單元測試,要求:
1. 每個測試必須包含真實斷言,不能只有空殼
2. 測試覆蓋率達到 80% 以上
3. npm test 退出碼為 0
4. 不修改 src/ 下的源代碼
5. 20 輪後未完成則停止

最後,我仲加咗條輪次上限,呢個都好有用,防止 Claude Code 無限行落去。

如果因為各種原因,中途退出咗(例如到咗5個鐘上限),後面再開啟時可以用 --resume 恢復目標繼續執行。注意,你俾佢設定嘅條件最長支援 4000 個字符,可以寫得好詳細。

另外,仲有兩個比較好用嘅配搭:

第一個,/goal 同 auto 模式配搭效果最好。auto 會去掉每個工具調用嘅人手確認步驟,/goal 去掉每輪結束嘅等待,兩個一齊開就係完全無人值守。

第二個,喺非交互模式開啟,喺自動化或者 SKILL 場景入面特別有用:

claude -p "/goal CHANGELOG.md 包含本週所有合併的 PR 記錄"

實現原理

/goal 本質上係一個 session 級別嘅 prompt-based Stop hook。呢一句說話就將佢同 Ralph Loop 區分開咗。

圖片

你設定一個 /goal 條件之後,Claude Code(Opus 或 Sonnet)正常運作,讀檔案、改程式碼、行測試。每輪結束之後,系統將完成條件同當前對話記錄 send 俾一個獨立嘅小模型(預設係 Haiku)。呢個模型返回 yes/no 同一條理由。如果係 no,理由會注入下一輪對話,話俾 Claude 知仲差啲乜,然後自動開始下一輪。如果係 yes,goal 標記為完成,記錄到對話記錄入面。

關鍵係呢個評估模型唔可以調用任何工具,佢只能夠基於對話記錄入面已有嘅文字嚟判斷。

評估嘅提示詞好短,從佢系統提示詞嚟睇,核心邏輯係:

You are evaluating a stop-condition hook in Claude Code.
Read the conversation transcript carefully, then judge
whether the user-provided condition is satisfied.

Your response must be a JSON object with one of these shapes:
- {"ok": true, "reason": "<quote evidence from the
  transcript that satisfies the condition>"}
- {"ok": false, "reason": "<quote what is missing or
  what blocks the condition>"}

Always include a "reason" field, quoting specific text from
the transcript whenever possible. If the transcript does not
contain clear evidence that the condition is satisfied,
return {"ok": false, "reason": "insufficient evidence
in transcript"}

注意最後一條:揾唔到明確證據就預設返回證據不足。評估模型嘅預設立場係未做完,必須喺對話記錄入面揾到實錘先至會放行。

不過實際用落都係有唔少問題。評估模型只睇對話文字,唔可以自己行命令驗證,所以如果工作模型喺對話入面寫咗「測試全部通過」但實際上冇行測試,評估模型見到嘅證據係充分嘅,自然會放行。想用好 /goal,條件入面最好寫明具體嘅驗證命令,等 AI 冇得繞過。

同 Ralph Loop 比較

Ralph Loop 嘅核心機制係 Stop hook 攔截:Claude 做完一輪嘗試退出時,hook 檢查係咪達到完成條件,未達到就將原始 prompt 重新注入。完成判斷靠精確字符串匹配,Claude 輸出 <promise>DONE</promise> 就算完成。prompt 入面反覆強調「唔好講大話嚟退出循環」,但模型嘛,話唔講大話就唔講大話喇?

跟 /goal 比較,最關鍵嘅差距在於完成判斷。Ralph Loop 係模型自己話事,輸出一個標記就可以退出,bash 腳本做字符串匹配放行,冇任何獨立驗證。/goal 換咗一個獨立嘅小模型嚟評估,至少唔係自己改自己嘅試卷。另外 Ralph Loop 每輪都會將原始 prompt 原封不動重新注入,行得多咗上下文入面堆滿重複內容,雖然 Claude Code 嘅 compaction 仍然會生效,但呢啲重複注入本身就係噪音。

順便提一提,Claude Code 仲有個 /loop 命令,按時間間隔觸發下一輪(例如每 5 分鐘行一次),適合輪詢類定時任務。/goal 係每輪結束之後立即觸發下一輪,適合連續執行嘅目標。

同 Codex /goal 比較

上篇文章入面講過,Codex /goal 嘅核心設計係三層:狀態持久化(state-db)、權限控制(模型只可以標記 complete,唔可以自行退出)、強制自審(continuation.md 要求拆檢查清單,逐項對照真實檔案同測試結果)。

Claude Code /goal 行咗一條唔同嘅路:唔依賴工作模型嘅自查能力,而係引入獨立嘅評估模型。

實際體驗上兩者差距明顯。Codex 喺目標執行同自審過程中可以透過工具嚟形成驗證證據,grep 程式碼、行測試、核對 spec,工作模型想造假成本好高。Claude Code 嘅評估模型只睇對話文字,驗證深度差一個量級,所以我自己行落都係 Codex 強好多(呢個都同模型能力有關,Codex 配搭 GPT-5.5 先至達到最好嘅效果)。

寫喺最後

睇呢幾個方案嘅實現原理時,突然諗起最近一直關注緊嘅 Agent harness 呢個話題。你會發現無論係 Claude Code /goal 嘅評估循環定係 Codex /goal 嘅權限控制,關鍵嘅約束都唔係寫喺提示詞入面,而係寫喺程式碼入面。Claude Code 用程式碼層面嘅 Stop hook 嚟驅動循環,Codex 嘅運行時每輪自動注入一段自審提示詞,強制模型拆檢查清單、逐項驗證,模型唔可以自己選擇要唔要自審,程式碼幫佢做咗強制自審。

CLAUDE.md 同 AGENTS.md 入面寫嘅規則模型可能會忽略,但程式碼層面嘅 hook 100% 總會觸發。呢個都係點解 Agent harness 係必要嘅,淨靠模型自覺係唔夠嘅,需要有人喺外面用程式碼控制 AI 行為同邊界。

回到 /goal 本身,對於驗收條件清晰、按照 SPEC/PLAN 就可以逐步完成嘅任務,佢係目前最省心嘅選擇。但要注意 token 消耗問題,/goal 模式下每輪都係完整嘅 Opus/Sonnet 調用,行十幾輪落嚟主模型嘅 token 用量輕鬆翻幾倍(Haiku 評估嘅開銷相對好細,主要成本仍然係多輪主模型調用)。建議喺條件入面加上輪次上限,保護好你嘅 token 賬單。


相關連結:


好喇,今日就傾到呢度。如果你都喺探索 AI Agent 同 AI 編程技術,歡迎關注 Feisky 公眾號,我會定期分享實踐入面嘅發現同踩坑經驗。


上週寫了一篇 Codex /goal 上線後,我把 Ralph Loop 卸了,順帶吐槽了 Claude Code + Ralph Loop 跑長任務各種不靠譜。沒想到沒過幾天,Anthropic 就在新版 Claude Code 裏把 /goal 命令抄過來了。官方推文直接說了,這就是 Claude Code 內置的 Ralph Loop(Ralph Loop 只是一個插件)。

用了幾個場景,發現 /goal 確實比 Ralph Loop 好用不少,用起來也簡單,一句 /goal 就能啓動,終於不用盯着 Agent 幹活了。今天就帶你一起看下這個新功能以及它背後的工作原理。

使用方法

升級 Claude Code 到最新版本之後,/goal 後面跟一個完成條件,Claude Code 就會一直幹到條件滿足為止,比如:

/goal 所有 test/auth 目錄下的測試通過,lint 也沒有報錯

跟普通對話的區別是,每輪結束後 Claude Code 不會停下來等你輸入,而是自動開始下一輪。界面上會顯示一個 /goal active 的狀態條,標註運行時長。

具體的使用方法如下所示:

圖片

其實可用的命令也就三個:

  • • /goal <條件>:設置目標,立即開始執行
  • • /goal:查看狀態,包括條件、時長、輪次、token 用量
  • • /goal clear:取消當前目標(也可以用 stop、cancel、reset)

需要你注意的是,條件怎麼寫很關鍵。寫得模糊,模型還是有可能會糊弄你。比如這樣寫:

/goal 給這個項目寫完整的測試

“完整”沒有定義,模型可以寫幾十個空殼測試,全部通過,然後宣佈完成。所以建議你換成更具體的條件,比如:

/goal 給 src/auth/ 下所有函數寫單元測試,要求:
1. 每個測試必須包含真實斷言,不能只有空殼
2. 測試覆蓋率達到 80% 以上
3. npm test 退出碼為 0
4. 不修改 src/ 下的源代碼
5. 20 輪後未完成則停止

最後,我還加了條輪次上限,這個也很有用,防止 Claude Code 無限跑下去。

如果由於各種原因,中途退出了(比如到了5小時上限),後面再開啓時可以用 --resume 恢復目標繼續執行。注意,你給它設置的條件最長支持 4000 個字符,可以寫得很細了。

另外,還有兩個比較好用的搭配:

第一個,/goal 跟 auto 模式搭配效果最好。auto 去掉每個工具調用的人工確認步驟,/goal 去掉每輪結束的等待,兩個一起開就是完全無人值守。

第二個,在非交互模式開啓,在自動化或者 SKILL 場景裏面特別有用:

claude -p "/goal CHANGELOG.md 包含本週所有合併的 PR 記錄"

實現原理

/goal 本質上是一個 session 級別的 prompt-based Stop hook。這一句話就把它跟 Ralph Loop 區分開了。

圖片

你設置一個 /goal 條件後,Claude Code(Opus 或 Sonnet)正常工作,讀文件、改代碼、跑測試。每輪結束後,系統把完成條件和當前對話記錄發給一個獨立的小模型(默認是 Haiku)。這個模型返回 yes/no 和一條理由。如果 no,理由會注入下一輪對話,告訴 Claude 還差什麼,然後自動開始下一輪。如果 yes,goal 標記為完成,記錄到對話記錄裏。

關鍵是這個評估模型不能調用任何工具,它只能基於對話記錄裏已有的文字來判斷。

評估的提示詞很短,從其系統提示詞來看,核心邏輯是:

You are evaluating a stop-condition hook in Claude Code.
Read the conversation transcript carefully, then judge
whether the user-provided condition is satisfied.

Your response must be a JSON object with one of these shapes:
- {"ok": true, "reason": "<quote evidence from the
  transcript that satisfies the condition>"}
- {"ok": false, "reason": "<quote what is missing or
  what blocks the condition>"}

Always include a "reason" field, quoting specific text from
the transcript whenever possible. If the transcript does not
contain clear evidence that the condition is satisfied,
return {"ok": false, "reason": "insufficient evidence
in transcript"}

注意最後一條:找不到明確證據就默認返回證據不足。評估模型的默認立場是沒做完,必須在對話記錄裏找到實錘才會放行。

不過實際用下來也是有不少問題的。評估模型只看對話文字,不能自己跑命令驗證,所以如果工作模型在對話裏寫了“測試全通過”但實際沒跑測試,評估模型看到的證據是充分的,自然會放行。想用好 /goal,條件裏最好寫明具體的驗證命令,讓 AI 沒法繞過。

跟 Ralph Loop 比

Ralph Loop 的核心機制是 Stop hook 攔截:Claude 幹完一輪嘗試退出時,hook 檢查是否達到完成條件,沒達到就把原始 prompt 重新注入。完成判斷靠精確字符串匹配,Claude 輸出 <promise>DONE</promise> 就算完成。prompt 裏反覆強調“不要撒謊來退出循環”,但模型嘛,說不撒謊就不撒謊了?

跟 /goal 比,最關鍵的差距在完成判斷。Ralph Loop 是模型自己說了算,輸出一個標記就能退出,bash 腳本做字符串匹配放行,沒有任何獨立驗證。/goal 換成了一個獨立的小模型來評估,至少不是自己批改自己的試卷了。另外 Ralph Loop 每輪都會把原始 prompt 原封不動重新注入,跑多了上下文裏堆滿重複內容,雖然 Claude Code 的 compaction 還是會生效,但這些重複注入本身就是噪音。

順便提一下,Claude Code 還有個 /loop 命令,按時間間隔觸發下一輪(比如每 5 分鐘跑一次),適合輪詢類定時任務。/goal 是每輪結束後立即觸發下一輪,適合連續執行的目標。

跟 Codex /goal 比

上篇文章裏聊過,Codex /goal 的核心設計是三層:狀態持久化(state-db)、權限控制(模型只能標記 complete,不能自行退出)、強制自審(continuation.md 要求拆檢查清單,逐項對照真實文件和測試結果)。

Claude Code /goal 走了一條不同的路:不依賴工作模型的自查能力,而是引入獨立的評估模型。

實際體驗上兩者差距明顯。Codex 在目標執行和自審過程中可以通過工具來形成驗證證據,grep 代碼、跑測試、核對 spec,工作模型想造假成本很高。Claude Code 的評估模型只看對話文字,驗證深度差一個量級,所以我自己跑下來還是 Codex 強得多(這也跟模型能力有關,Codex 搭配 GPT-5.5 才能達到最好的效果)。

寫在最後

翻這幾個方案的實現原理時,突然想到了最近一直在關注的 Agent harness 這個話題。你會發現不管是 Claude Code  /goal 的評估循環還是 Codex /goal 的權限控制,關鍵的約束都不是寫在提示詞裏的,而是寫在代碼裏的。Claude Code 用代碼層面的 Stop hook 來驅動循環,Codex 的運行時每輪自動注入一段自審提示詞,強制模型拆檢查清單、逐項驗證,模型不能自己選擇要不要自審,代碼替它做了強制自審。

CLAUDE.md 和 AGENTS.md 裏寫的規則模型可能忽略,但代碼層面的 hook 100% 總會觸發。這也是為什麼 Agent harness 是必要的,光靠模型自覺是不夠的,需要有人在外面用代碼控制 AI 行為和邊界。

回到 /goal 本身,對於驗收條件清晰、按照 SPEC/PLAN 就能逐步完成的任務,它是目前最省心的選擇。但要注意 token 消耗問題,/goal 模式下每輪都是完整的 Opus/Sonnet 調用,跑十幾輪下來主模型的 token 用量輕鬆翻幾倍(Haiku 評估的開銷相對很小,主要成本還是多輪主模型調用)。建議在條件里加上輪次上限,保護好你的 token 賬單。


相關連結:


好了,今天就聊到這兒。如果你也在探索 AI Agent 和 AI 編程技術,歡迎關注 Feisky 公眾號,我會定期分享實踐中的發現和踩坑經驗。