Agent 回你一句「已完成」,你得自己點開 diff 和測試報告,確認它說的是真的。這句「已完成」由誰說了算,是 Agent 驗收架構的核心問題。三個產品給了三種答案,本站依裁判與執行者的距離,分別稱為自評(self-evaluation)、旁觀裁判(observer judge)與獨立 Grader(grader,判斷結果有沒有達標的評分角色)。
快速回答 三種架構差在裁判離執行者多遠:Codex goals 由執行任務的模型自評,Claude Code /goal 另叫模型只讀對話,Anthropic Outcomes 則讓獨立評分角色(Grader)在另一份模型可讀的資料(context)中,對照逐條標準(rubric)。指令輸出能證明完成時,我建議自評或旁觀裁判就夠;要逐條判斷產出物好壞時,再考慮獨立 Grader。標準寫不出來,三種都判不準。
卡上每條結論都附一個來源裡的具體說法,下面逐項展開。
三種驗收架構差在哪裡?
三種架構差在裁判與執行者的距離:自評由同一個模型審核,旁觀裁判是另一次模型呼叫只讀對話,獨立 Grader 在新的 context 裡對照 rubric 評分。下表把三者在裁判獨立度、資訊量與成本三欄並排。
- Codex goals
- 無:同一模型、同一條 context
- 對話,加工作樹與指令輸出
- 無額外評分呼叫
- Claude Code /goal
- 中:另一次呼叫,讀執行者的對話
- 對話中已出現的內容,不呼叫工具
- 每次評估一次小模型呼叫;有背景工作時跳過。官方稱成本通常可忽略
- Anthropic Outcomes
- 高:獨立 context window
- rubric 與產出物
- 每輪一次評估;迭代上限預設 3、可設至 20;單次價格未說明
表 1 驗收架構對照。欄位內容來自 Codex 原始碼、Claude Code 文件與 Managed Agents 文件,查閱於 2026-10-23;「無、中、高」是本站歸納。
三種裁判可以這樣想:自評像自己改考卷,旁觀裁判像旁聽的監考只看答案卷,獨立 Grader 像另請閱卷老師拿評分標準來改。這張表只整理三者的驗收機制。我查閱的範圍內,沒有找到三者互相比較準確率的資料。
自評:Codex 的 goal 怎麼讓同一個模型審自己?
Codex 的 goal 功能由同一個模型在每輪結束後,自己對照目標做完成審核,我在原始碼裡沒找到另外的評分模型。依據是 OpenAI 開源 repo openai/codex 的 codex-rs/ext/goal 目錄,我在 2026-10-23 讀的是 main 分支(commit 60adfa8)。
機制很直接:對話(thread)閒置、目標(goal)仍在進行中(active)時,on_thread_idle 會呼叫 continue_if_idle,把續跑提示(continuation.md)加進同一段對話。提示裡有一段「完成審核」,開頭要求先假設沒完成:
"Treat uncertain or indirect evidence as not achieved; gather stronger evidence or continue the work." "The audit must prove completion, not merely fail to find obvious remaining work." (OpenAI,
codex-rs/ext/goal/templates/goals/continuation.md,2026-10-23 讀取)
宣告完成的方式是模型自己呼叫 update_goal,狀態有 complete、blocked、paused 三種。blocked 的條件寫在工具描述裡:同一個阻礙至少連續三個 goal 回合;paused 只能在使用者明確要求時使用。續跑提示還帶著已用 token、token 預算與剩餘量。
我另外用 grader、judge、reviewer、spawn、subagent 等關鍵字搜過 ext/goal/src 的 11 個檔案,找不到呼叫另一個模型的程式。這只是關鍵字搜尋,範圍限於這個目錄,不等於逐行稽核。
工程上的意思: 這一格的裁判是一段 prompt 加上模型自己的紀律,要調的是續跑提示、update_goal 的工具描述和 token 預算。它的好處是審核時可以直接查工作樹與指令輸出;代價是裁判和執行者共用同一份判斷。
旁觀裁判:Claude Code 的 /goal 讓誰判斷做完沒?
Claude Code 的 /goal 在每回合結束後,另叫一次小而快的模型(文件稱 small fast model),拿完成條件和目前為止的對話,判斷「已達成、未達成、不可能」。依 Anthropic 文件,/goal 只在目前這段對話(session)中生效,透過提示詞(prompt)設定回合結束時的自訂檢查(Stop hook)。
"It does not call tools, so it can only judge what Claude has already surfaced in the conversation." (Anthropic, Keep Claude working toward a goal,查閱於 2026-10-23)
所以條件要寫成執行者自己的輸出就能證明的句子。文件的例子是「test/auth 底下的測試全過、lint 乾淨」,因為 Claude 會跑測試,結果會出現在對話裡。條件最長 4,000 字元,可以加「或在 20 回合後停止」來限制上限。判定「未達成」時,理由會成為下一回合的指引;「不可能」或「已達成」時 goal 自動清除。
圖 2 把三種架構的裁判位置並排畫出來。
文件也寫了幾個防呆:連續好幾回合沒有使用工具,迴圈會停下來交還控制權;子代理或背景指令還在跑時,該回合跳過評估。成本方面,文件說評估用的 token 以小模型計價,相比主回合花費通常可忽略。
/goal 的行為也隨版本改變。v2.1.246(2026-08-25 發布)起,每個 goal 在兩次使用者輸入之間,最多進行三次閒置檢查(check-in,列出還在跑的背景工作並請 Claude 處理)。v2.1.269(2026-09-11 發布)起,互動式 session 會印出失敗原因;可自行復原的錯誤,例如伺服器過載,會自動重試,三次後暫停。
本站的歸納:這個裁判獨立於執行者的模型呼叫,但讀的是執行者寫下的對話,所以仍然依賴執行者把證據印出來。
工程上的意思: 條件裡要寫明檢查指令,例如「pytest 結束碼為 0」。只寫「功能完成」,評估器只能相信執行者的敘述。
獨立 Grader:Anthropic Outcomes 多了哪些東西?
Anthropic 的 Outcomes 在 Claude Managed Agents 裡另外配一個 grader,在獨立的 context window 中拿 rubric 檢查產出物,並把逐條回饋交回 Agent 做下一輪。這個功能在文件中標示為 beta(beta header managed-agents-2026-04-01),以下依 2026-10-23 的 Define outcomes 文件。
"The grader uses a separate context window to avoid being influenced by the main agent's implementation choices." (Anthropic, Define outcomes,Managed Agents 文件)
rubric 是必填的 markdown 文件,逐條計分。文件舉的好條件是「CSV 含有數值型的 price 欄」,並提醒:條件寫得含糊,評分結果就容易不一致。max_iterations 預設 3、上限 20;每次評估結束會回報 satisfied、needs_revision、max_iterations_reached、failed 或 interrupted,事件裡附 token 用量,各結果的後續見表 2。
satisfiedneeds_revisionmax_iterations_reachedfailedinterrupted表 2 Outcomes 每次評估結束的結果與後續。來源:Managed Agents 的 Define outcomes 文件,查閱於 2026-10-23。
效果數字來自 Anthropic 2026-05-19 的公告:Outcomes 的任務成功率比一般提示迴圈最多高 10 點(原文 up to 10 points),內部評測的檔案生成,docx 為 +8.4%、pptx 為 +10.1%。這是 Anthropic 自己的內部評測,我沒有找到第三方驗證。
文件沒有說明的事:grader 用哪個模型、能不能執行工具、單次評估的價格。Anthropic 2026-03-24 的工程文章另有一個相關實驗:評估角色用 Playwright 實際操作執行中的應用,同一個任務單獨跑約 20 分鐘、9 美元,加上獨立評估角色的完整駕馭層跑約 6 小時、200 美元。那是研究用的駕馭層,與 Outcomes 產品不同,只能當成本量級的參考。
工程上的意思: rubric 要寫成逐條可判的句子,迭代上限要依預算設,因為每多一輪都是整份產出物再評一次。
為什麼要把裁判拆出來?兩份一手證據怎麼說
拆出裁判的依據有兩份:Jie Huang 等人的 ICLR 2024 論文發現推理題在沒有外部回饋時難以自我修正,Anthropic 的工程文章說 Agent 評自己的成果會偏向給好評。
Jie Huang 等七位作者的論文 Large Language Models Cannot Self-Correct Reasoning Yet,2023-10-03 投到 arXiv,收錄於 ICLR 2024。摘要的結論是:
"LLMs struggle to self-correct their responses without external feedback" (Jie Huang 等, arXiv:2310.01798,v2 修訂於 2024-03-14)
摘要接著說,自我修正之後表現甚至會下降(原文:their performance even degrades after self-correction)。研究對象是只靠模型自身能力的修正(intrinsic self-correction),題目是推理題。
Anthropic 在 2026-03-24 的〈Harness design for long-running apps〉寫得更直接:
"reliably skew positive when grading their own work" "Separating the agent doing the work from the agent judging it proves to be a strong lever" (Anthropic Engineering, 2026-03-24)
同一篇文章也提醒,獨立的評估者仍然是 LLM,對 LLM 的產出容易寬鬆,需要調成帶懷疑的角色。
本站的歸納:Huang 等人的研究針對沒有外部回饋的推理題自我修正,Anthropic 的文章則指出 Agent 自評偏向給好評,兩份證據的範圍不同。Codex 的自評可以查檔案、跑測試,這些外部證據不在 Huang 等人的測試範圍。該論文支持的是:推理題在沒有外部回饋時,只靠模型自身能力難以修正答案;這不足以判定能查檔案、跑測試的 Codex 自評是否可靠。Outcomes 公布的數字比較對象是一般提示迴圈,沒有拿旁觀裁判或 Codex 式自評當對照;三者互比的公開數據,我在查閱範圍內沒找到。
- 推理題,只靠模型自身能力的修正
- 能查檔案、跑測試的 Agent
- Agent 評自己的長任務成果
- 自評與旁觀裁判的互比數據
- Outcomes 對一般提示迴圈
- 對旁觀裁判、Codex 式自評
表 3 三份證據的範圍。「沒有涵蓋的」是本站歸納。
自己的 Agent 該落在哪一格?
完成條件能由測試或指令輸出直接證明時,自評或旁觀裁判就夠;產出物要靠逐條 rubric 才判得出好壞時,才值得付獨立 Grader 的成本。這項選型建議是我的歸納,三家文件並未訂出共同的選型規則。
要檢查自己的系統落在哪一格,問三件事。完成標準寫得出一行指令嗎?寫得出來,條件裡寫明指令,裁判再簡單也有證據可看。裁判讀得到的東西,是執行者自己的敘述,還是產出物本身?前者要在條件裡逼執行者印出證據。每多評一輪要付多少?旁觀裁判的單次呼叫便宜,獨立 Grader 每輪要重評整份產出物,上限要先設。
裁判離執行者越遠,越能減少執行者判斷的影響;值得付多少成本,要看完成標準需要哪種檢查。
驗收沒過就再跑一輪,外層迴圈怎麼排、狀態存在哪、什麼時候停,下一篇接著談。
常見問題
/goal 的評估器會自己跑測試嗎?
不會。Claude Code 文件寫明評估器不呼叫工具,只能判斷 Claude 已經在對話裡呈現的內容。所以條件要寫成 Claude 自己的輸出能證明的句子,例如測試指令的結束碼,評估器才有證據可讀。
Codex 的 goal 有另外的評分模型嗎?
我在 codex-rs/ext/goal/src 的 11 個檔案裡,用 grader、judge、reviewer 等關鍵字搜過,找不到呼叫另一個模型的程式。完成由主模型呼叫 update_goal 宣告,續跑提示要求完成必須有證據。這是 2026-10-23 對 main 分支的關鍵字搜尋結果。
Outcomes 一定要寫 rubric 嗎?最多跑幾輪?
要。Anthropic Outcomes 必須提供逐條驗收標準(rubric),以 markdown 文件撰寫並逐條計分。最多迭代輪數(max_iterations)預設 3,可設至 20。此功能在文件中標示為 beta,細節可能改變。
自評一定比獨立 Grader 差嗎?
我查閱的資料中,沒有自評、旁觀裁判與獨立 Grader 的準確率互比。Huang 等人的研究限於推理題在沒有外部回饋時的自我修正,不能直接說明 Codex 的自評可不可靠;Anthropic 指出 Agent 自評偏向給好評;Codex 的自評能查工作樹與指令輸出,超出該論文的測試範圍。
延伸閱讀
- Agent 駕馭工程懶人包 (1)|Deep Agent 有哪些內建能力?三家說法對成六項
- Plan、Build、Verify、Ship 是什麼?AI 寫程式變快後,進度要怎麼算?(2026 完整懶人包)
- LLM Judge 的 Yes/No 清單在成對比較最有證據,直接打分未必
參考資料
- OpenAI, openai/codex,
codex-rs/ext/goal(main 分支 commit 60adfa8,2026-10-23 讀取) https://github.com/openai/codex/tree/main/codex-rs/ext/goal - Anthropic, Keep Claude working toward a goal(Claude Code 文件,查閱於 2026-10-23) https://code.claude.com/docs/en/goal
- Claude Code release v2.1.246(2026-08-25)、v2.1.269(2026-09-11) https://github.com/anthropics/claude-code/releases
- Anthropic, Define outcomes(Managed Agents 文件,查閱於 2026-10-23) https://platform.claude.com/docs/en/managed-agents/define-outcomes
- Anthropic, New in Claude Managed Agents(2026-05-19) https://claude.com/blog/new-in-claude-managed-agents
- Anthropic Engineering, Harness design for long-running apps(2026-03-24) https://www.anthropic.com/engineering/harness-design-long-running-apps
- Jie Huang 等, Large Language Models Cannot Self-Correct Reasoning Yet(arXiv:2310.01798,2023-10-03;ICLR 2024) https://arxiv.org/abs/2310.01798
留言0
登入後就能留言。
登入