AI Agent 上線前,你一定要做的評測與安全把關

AI Agent 上線前,你一定要做的評測與安全把關

Agent 最危險的不是當機,是安靜地做錯——回了一段看起來很合理、其實全錯的答案,沒人發現。這篇講 Agent 為什麼會無聲失敗,怎麼用 Promptfoo 測、用 AgentOps debug 多步驟、用 Langfuse 在線上監控,最後附一份上線前檢查清單。

一家做客服 Agent 的新創,上線第三週客訴量不減反增。他們很困惑——測試時明明都對。後來調出紀錄才發現:有一類問題,Agent 每次都自信滿滿地引用了一份「公司退費政策第七條」,而那份政策根本沒有第七條。它不是不會,是把不存在的東西講得太像真的,而上線前那批測試案例剛好沒涵蓋這一類。

這就是 Agent 最危險的失敗方式——它不會跳紅字、不會 throw exception。它安靜地、有禮貌地、條理分明地做錯,然後你的使用者信了。

為什麼 Agent 會「無聲失敗」

傳統軟體出錯,通常會炸給你看:噴 error、回 500、stack trace 指到第幾行。Agent 不一樣。它的輸出是「生成」出來的,語言永遠通順,所以錯誤被包裝得跟正確答案長得一模一樣。

更麻煩的是多步驟。一個 Agent 跑一輪可能呼叫五、六次工具,中間任何一步偏掉——查錯資料、傳錯參數、漏掉一個條件——後面幾步會基於這個錯誤繼續推下去,最後給你一個「自洽但錯誤」的結果。你看最終答案,完全看不出哪裡歪了。

所以 Agent 的品質保證,不能靠人工抽查,也不能靠「我跑了幾次覺得還行」。你需要一套能量化、能回放、能在線上持續監看的機制。這正是〈想自己做一個 AI Agent,該準備哪些工具〉裡提到的評測、安全、可觀測性這三層,在上線階段真正派上用場的地方。

重點:上線前要把關的四件事

  • 離線評測:用一套固定題庫,量化每次改動後品質有沒有退步。
  • 紅隊測試:主動找它的弱點——什麼輸入會讓它越界、唬爛、洩漏。
  • 多步驟 debug:出錯時能回放整條執行軌跡,定位是哪一步偏掉。
  • 線上監控與護欄:上線後持續看品質與成本,並在危險動作前設攔截。

這四件,缺一件你上線都是在賭。

怎麼測:Promptfoo

離線評測的核心精神,是把「我覺得變好了」換成「數字告訴我變好了」。Promptfoo 讓你建立一組測試案例——輸入、預期行為、判斷標準——然後每次改 prompt、換模型、調參數,就跑一遍整套,看分數變化。

判斷標準可以是字串比對、正規表達式,也可以用另一個模型當裁判(LLM-as-judge)去評「這個回答有沒有正確引用來源」。開頭那家新創如果有一條「回答中提到的政策條號,必須真實存在」的斷言,那個第七條根本上不了線。

紅隊測試也在這層做。Promptfoo 能跑一批對抗性輸入,試圖讓 Agent 洩漏 system prompt、繞過限制、執行不該執行的動作。你不去攻擊它,使用者(或惡意者)就會替你攻擊。寧可自己先打一輪。

怎麼 debug:AgentOps

評測告訴你「答案錯了」,但不會告訴你「錯在第幾步」。多步驟 debug 要靠 AgentOps

它把 Agent 一整輪的執行串成一條可回放的時間線:第一步呼叫了什麼工具、傳了什麼參數、拿回什麼、花了多少 token、第二步根據什麼決定下一步……整條攤開來看。退費政策那個例子,在 AgentOps 裡會清楚看到——某一步檢索回來的文件片段就已經是錯的,後面全是基於錯誤資料的合理推論。沒有這條軌跡,你只會對著最終答案乾瞪眼。

怎麼監控:Langfuse

上線不是終點,是另一個起點。生產環境的輸入千奇百怪,使用者會問出你測試時想都想不到的問題。Langfuse 負責把線上每一次對話、每一筆 token 成本、每一條延遲長期記下來,讓你追蹤品質有沒有隨時間漂移、哪類問題答得最差、成本有沒有失控。

它跟 AgentOps 的分工大致是:AgentOps 偏開發期的單次深度 debug,Langfuse 偏線上長期的群體監控。實務上很多團隊兩者都用。重點是——你要有一個地方,能隨時回答「我的 Agent 這週表現如何」。答不出來,就是在裸奔。

護欄(Guardrails):最後一道攔截

評測、debug、監控都是「事後或事前知道」,護欄是「當下攔住」。在 Agent 執行危險動作前——付款、刪資料、對外發送、執行系統指令——加一層規則檢查或人工確認。

護欄該攔什麼:輸出含個資或機密時遮蔽、金額超過門檻時轉人工、偵測到 prompt injection 時中止。這層跟工具鏈裡的執行沙箱(例如 Blaxel)是搭配的——沙箱限制它「能跑什麼」,護欄限制它「能做什麼」。

三種團隊的把關重點

台灣個人開發者:至少把 Promptfoo 接起來。哪怕只有二十個測試案例,也好過每次改完憑感覺。紅隊測試挑幾個最危險的攻擊面跑就好,別追求完整。

新創團隊:AgentOps 加 Langfuse 要趁早。你的產品還在快速迭代,沒有可觀測性,每次出事都是團隊一起在 log 海撈,撈的時間夠你多做兩個功能了。護欄優先保護「會花錢」和「不可逆」的動作。

企業:紅隊測試與護欄是合規底線。資安、法務會問的「資料會不會外洩」「能不能稽核每一步決策」,答案就藏在 Promptfoo 的對抗測試紀錄和 AgentOps 的執行軌跡裡。把這些紀錄留存,等於把稽核證據先備好。

上線前檢查清單

直接照做:

  • 有一套至少涵蓋常見與邊界情況的測試題庫,跑在 Promptfoo 上
  • 每次改 prompt 或換模型,都跑過完整評測,分數沒退步才上
  • 做過至少一輪紅隊測試,試過 prompt injection、越界、唬爛
  • 對「事實宣稱」類回答,有斷言檢查來源真實存在
  • 多步驟流程接了 AgentOps,出錯能回放定位到哪一步
  • 線上接了 Langfuse,能看品質漂移與成本
  • 危險動作(付款、刪除、對外發送)前有護欄或人工確認
  • 設了 token 與成本上限,避免背景 Agent 燒錢
  • 危險的程式碼執行跑在沙箱裡
  • 有一個人,在出事時知道第一個該看哪裡

TheAI學院 總結與評語

Agent 上線最大的風險,從來不是技術不夠強,是「你不知道它什麼時候做錯了」。評測讓你事前知道,可觀測性讓你事後查得到,護欄讓你當下攔得住——這三件事的價值,平常感覺不到,出事那天會救你一命。

「一個你看不見內部、量不出品質的 Agent,跑得再順都是定時炸彈;能被檢查的平庸,遠勝看不見的聰明。」

給台灣讀者的具體建議:上線前,逼自己回答一個問題——「如果它明天在客戶面前做錯一件事,我多久能查出是哪一步、為什麼?」答不出「十分鐘內」,就先別上線,回去把 Promptfoo、AgentOps、Langfuse 這三層補好。完整的工具鏈怎麼搭,可以回頭看〈2026 開發者工具鏈全圖解〉。

常見問題

為什麼 AI Agent 的錯誤比傳統軟體難發現?

因為 Agent 的輸出是生成的,語言永遠通順,錯誤答案會被包裝得跟正確答案一樣有條理,不會像傳統軟體那樣噴 error 或 stack trace。多步驟流程中,某一步偏掉後面會基於錯誤繼續推論,最終給出『自洽但錯誤』的結果,光看答案看不出問題。

Promptfoo 主要解決什麼問題?

它把 Agent 的品質從『我覺得變好了』變成可量化的數字。你建立一組固定測試案例與判斷標準,每次改 prompt、換模型就跑一遍看分數有沒有退步,同時可做紅隊測試,主動找出會被繞過或讓 Agent 唬爛的漏洞。

AgentOps 和 Langfuse 有什麼差別,需要都用嗎?

AgentOps 偏開發期的單次深度 debug,把一輪執行串成可回放的軌跡,方便定位是哪一步出錯;Langfuse 偏線上長期的群體監控,記錄每次對話、成本、延遲,追蹤品質漂移。兩者側重不同,實務上很多團隊會搭配使用。

護欄(guardrails)和評測有什麼不同?

評測是事前知道品質如何,監控是事後查得到問題,護欄則是『當下攔截』——在 Agent 執行付款、刪除、對外發送等危險動作前,加上規則檢查或人工確認,例如金額超過門檻轉人工、偵測到 prompt injection 就中止。

資料來源:theai