過去幾天,我們從基礎的 Prompt 防禦一路打造出了具備 MCP 擴充能力與自主思考的 Agent。當看著 Agent 成功查出特休天數並回覆時,成就感絕對是滿分的。
但身為軟體工程師,我們必須面對一個殘酷的現實:在企業級專案中,你不能只憑「自己測了幾次覺得不錯」,就貿然把系統推上線 (Production)。
傳統軟體開發有單元測試 (Unit Test),我們可以寫 assertEquals(expected, actual) 來驗證邏輯。然而,大語言模型的輸出是非確定性 (Non-deterministic) 的自然語言,傳統的字串比對或是早期的 BLEU/ROUGE 評估指標,完全無法理解語意,這導致 AI 應用的 QA (品質保證) 往往只能仰賴極度耗時的人工盲測。
為了解決這個瓶頸,業界目前最主流的解決方案就是:LLM-as-a-Judge(讓 AI 來當裁判)。
1. 什麼是 LLM-as-a-Judge?
概念非常直觀:我們使用一個公認能力最強、邏輯最嚴密的頂級模型(例如 GPT-4o 或 Claude 3.5 Sonnet)作為「裁判模型」,來自動評分我們開發的「應用模型」或 RAG 管線所產出的回答。
透過這種方式,我們可以在每次修改 Prompt 或更換底層模型後,瞬間跑完數百筆測試資料,做到真正的 AI 系統 CI/CD (持續整合 / 持續部署)。
2. 核心實作:設計裁判的評分標準 (Rubric)
要讓 AI 成為公正的裁判,我們不能只問它「這個回答好不好?」,而必須給予極度嚴格的評分框架與輸入維度。一個標準的 Judge Prompt 通常包含以下元素:
User Query (使用者問題): 測試用的原始提問。
Ground Truth / Context (參考基準): 系統檢索到的 RAG 文件,或是人工預先寫好的標準答案。
AI Response (待測回覆): 我們的 Agent 實際生成的回答。
評估維度:
忠實度 (Faithfulness): 回答是否完全基於 Context?有沒有產生幻覺 (Hallucination)?
相關性 (Answer Relevance): 回答有沒有真正解決使用者的問題?還是只是在繞圈子?
3. 強制結構化輸出:讓評分回歸自動化管線
如果裁判模型看完後只回覆一篇長篇大論的講評,這對自動化管線毫無幫助。這時,我們在 Day 4 學習的「強制 JSON 輸出」就能完美派上用場!
我們會在 Judge Prompt 的最後要求模型:
「請根據上述標準進行 1 到 5 分的評分。請『僅』輸出 JSON 格式:{"score": 4, "reasoning": "回答正確,但略顯冗長"}。」
當我們拿到 JSON 格式的 score 後,就能在 n8n 等自動化工具中設定閥值。例如:當測試集平均分數低於 4 分時,自動阻擋這次的 Prompt 更新,並發送 Slack 警報給開發者。
導入 LLM-as-a-Judge 後,你的開發思維將從「憑感覺調教」正式升級為「數據驅動 (Data-driven)」的工程師。這種將抽象的 AI 產出量化為具體指標的能力,是頂尖軟體公司極度看重的核心素養。
有了評分機制,我們還差最後一塊拼圖:觀測性 (Observability)。當 Agent 在生產環境中給出一個只有 1 分的爛答案時,我們該如何追蹤它中間經過了哪些思考節點?呼叫了哪些工具?