跳到主要內容
Cypher's Practical Coding
正在準備工作環境...

第 3 步:做檢分離,配一個 Reviewer

循環裡很重要的一條:寫活的 agent 不許給自己的活判分。

為什麼不能自己給自己打分

模型給自己評分時經常太寬。你叫同一個 agent 寫程式碼、然後問「這樣對嗎?」——它大概會說「對,沒問題。」不是它在騙你,是它真的看不出自己的盲點。

這個問題在手動 prompt 時還好,你本人可以把關。但在自動循環裡,你不在現場,誰把關?

做檢分離原則

答案是:配一個單獨的、只讀的、常用更便宜模型的 reviewer,它跑測試、對照規範,只回 PASSFAIL

這就是「做檢分離」原則:

  • 做事的 agent:負責讀程式碼、改程式碼、跑命令
  • 檢查的 agent:負責跑測試、對照規範、判斷通過或失敗
  • 兩個 agent 不能是同一個

Reviewer 怎麼設計

一個好的 reviewer 有三個特徵:

1. 只讀不寫 Reviewer 不修改程式碼,只判斷。讀程式碼、讀 diff、跑測試、看輸出——然後說 PASS 或 FAIL,附上理由。

2. 標準明確 Reviewer 要對照的規範必須寫清楚,否則它還是在猜你的意思。例如:

  • 單元測試全過
  • 程式碼沒有 TODO 未解決
  • 輸出格式符合範本

3. 用便宜點的模型 Reviewer 的工作是「執行檢查清單」,不需要最強的推理能力。用輕量一點的模型,省 token,讓循環跑得起來。

GAN 類比:調教懷疑者,而非修正謙虛的作者

Anthropic 工程師 Prithvi Rajasekaran 在實務中發現:讓一個獨立的懷疑者變得挑剔,遠比讓生成者對自己更嚴格來得容易。

這跟 GAN(生成對抗網路)的邏輯一樣——一個網路負責生成,另一個負責挑錯。你不需要讓寫程式碼的 agent 學會自我批評(它做不到),你只需要換一個帶著完全不同指令的 agent 進來,從頭開始看,不帶任何「我為什麼這樣寫」的自我說服。

Evaluator 的預設立場應該是懷疑,不是信任。 一個常見的校準做法:告訴 evaluator「假設這段程式碼是壞的,除非你能證明它是好的」——預設有罪,而非預設無罪。

更進一步:evaluator 不該只「看」,它該動手驗證。不是讀 JSX 說「看起來沒問題」,而是透過 Playwright MCP 打開頁面、點按鈕、截圖、檢查 DOM。判斷的依據從「看起來對」變成「我點了這個按鈕,頁面跳到了這裡」。

子 Agent 費 Token,用在值得的地方

子 agent 更費 token,每個都跑自己的模型和工具。把它花在值得第二意見的地方,比如任何會在你不盯著時提交東西的循環;只讀的小雜活就別配了。

判斷要不要配 reviewer 的問題只有一個:

這個循環會在我不盯著的時候自動提交、發出、修改什麼重要的東西嗎?

是 → 配 reviewer。 否 → 不需要。

AI 協作:學了這個,跟 AI 怎麼配合?

做檢分離的邏輯在人類協作裡早就存在——寫程式碼的人和 review 程式碼的人不是同一個人。AI 循環也該這樣設計。你的工作是決定哪些自動化動作需要獨立驗收,以及驗收標準是什麼。

你的人類優勢:

  • 定義「什麼算通過」——驗收標準只有你知道業務現實
  • 決定失敗時的後備方案——機器失敗幾次後要通知誰、怎麼通知

可以這樣跟 AI 說:

我想在自動化循環裡加一個 reviewer agent。這個循環的 worker 會自動幫我回覆客服工單草稿。幫我設計 reviewer 的驗收清單:reviewer 要檢查哪些項目才算 PASS?背景是電商平台,工單類型主要是退換貨和出貨查詢。

互動示範

DEMO 1可以修改程式碼試玩

挑戰任務

Task 1

如果你設計一個「自動回覆客服工單草稿」的循環,reviewer 應該檢查哪三件事才算 PASS?試著從業務角度(不是技術角度)想這個問題。

BackNext Lesson →