MCP 代理可以同時查詢資料庫、搜尋工具與文件,再把資訊整理成一段答案。句子在某份資料裡找得到,不代表答案標示的來源正確。Hugging Face 刊出的研究介紹 ProvenanceGuard,讓驗證器保留每份 MCP 工具輸出的來源身分,逐項檢查答案主張是否受到指定來源支持。這補上一種常被「整體內容有沒有根據」評分漏掉的錯誤,但研究結果仍屬特定測試設定,不能直接當成各產業的成效保證。
一、答案有證據,為什麼仍可能引用錯來源?
同一事實可能出現在某份資料,答案卻把它歸到另一份資料。 若驗證時把所有工具輸出合併,只確認「有地方支持」,便可能放過錯誤歸因。
想像客服代理讀取帳戶紀錄與退款政策後回答:「依帳戶紀錄,這個方案提供 30 天退款期。」30 天退款期可能確實寫在政策文件,帳戶紀錄卻沒有這項資訊。只看兩份資料的合併內容,文字似乎有根據;把來源分開檢查,才會發現答案指錯了依據。使用者可能因此依錯誤的帳戶紀錄判斷退款資格;團隊事後也難以追溯答案究竟依據哪份文件。
檢索增強生成(RAG)會先檢索資料,再把資料交給模型補充回答;其忠實度評分可檢查答案是否受到檢索脈絡支持,適合發現部分無根據內容。不過,當多份來源一起成為脈絡,分數未必指出哪一個工具輸出支持哪一項主張。ProvenanceGuard 將問題拆成兩個判斷:主張是否有證據支持,以及答案指出或暗示的來源是否就是支持它的來源。來源歸屬因此成為另一個評測面向。

二、MCP 代理如何逐項驗證答案引用來源?
它保留工具與來源識別碼,把答案拆成可查核主張,再路由至個別來源檢查支持度與歸因。 檢查後會提供逐項判定及整體允許、阻擋或修復的結果。
第一步是保存 MCP trace,也就是代理呼叫工具及取得輸出的記錄。每筆證據帶有工具類型、來源識別碼與輸出內容;同一工具的不同文件或查詢結果,仍要能區分。若來源沒有穩定識別碼,研究方法會退回以工具名稱作為來源標記,這會降低判斷細節。沒有足夠 trace,驗證器就無法可靠重建答案的資料來處。
接著,驗證器把答案切成原子主張,每句只保留一個可檢查的事實,也留下句中的來源說法、數字、日期、單位與識別碼。路由器為每項主張找出最相關的來源專屬證據,再用自然語言推論(NLI)模型判斷該資料支持、矛盾,或不足以判定。方法還會檢查文字對齊和重要數值是否真的出現在指定來源,最後獨立比對答案的明示或暗示來源與實際路由來源。
沿用退款例子,答案若寫「帳戶紀錄顯示可在 30 天內退款」,拆解後會留下「退款期限為 30 天」這項主張,以及「帳戶紀錄」這個來源歸屬。系統先從 trace 找出退款政策和帳戶紀錄,再把主張分別對照來源專屬內容;即使政策支持 30 天,帳戶紀錄沒有這項資訊,來源比對仍會標出歸因不一致。若 trace 只保留合併後的文字,這一步便無從判斷,需回到補記原始輸出和來源識別碼處理。
驗證結果可逐項呈現來源判定,並彙整成答案層級的允許或阻擋決策。遭阻擋的答案也能進入類似 RARR 的修復流程,改寫成有來源支持的說法,或退回保守文字,再重新驗證。這仍是事後檢查層,不能替來源本身背書,也不會自動證明所有未列出的事實都正確。
三、ProvenanceGuard 評測數字能說明什麼?來源準確率有哪些限制?
論文顯示,在其保留測試資料中,阻擋錯誤主張的表現良好,且能額外輸出主張對應來源;但相似來源間的精確辨認仍有明顯限制。
這篇 arXiv 預印本以 281 筆醫療領域 MCP trace 為測試場景,其中 266 筆建立主張標註子集,再依 trace 切分訓練、驗證與保留測試資料。標註由模型協助產生;保留測試集的 361 項主張經人工專家覆核,訓練與驗證標註則未宣稱有同樣覆核。
保留測試的 361 項主張中,139 項應阻擋、222 項有來源支持。阻擋 F1 為 0.802(精確率 0.673、召回率 0.993):應阻擋者有 138 項被攔下、1 項放行;受支持者有 155 項放行、67 項遭誤攔。論文描述誤攔後會送交覆核或修復,這是工作流處置,不是分類指標。
另以 260 項具來源標註的測試主張計算,來源準確率為 0.858。
這些數字不能壓成一個「可靠度」分數。另一組多來源裁定測試包含 59 個問題、254 個主張候選案例與 2,587 筆來源候選列;路由與 NLI 評測則以同批問題另行抽取、凍結的 263 項主張為單位。該組阻擋 F1 為 0.846、來源準確率為 0.503,來源與關係皆正確的比例為 0.229。
這組資料加入同主題干擾來源,增加辨認來源及其關係的難度;它與前述 40 筆 trace、361 項主張的保留測試,資料與計算單位不同,兩組阻擋 F1 不宜直接比較。阻擋 F1 衡量放行或阻擋判定,來源準確率看是否找對支持來源;來源加關係指標則要求兩者都符合標註。
“A claim may be supported somewhere in the evidence while being attributed to the wrong source.” ProvenanceGuard 論文作者在摘要中以此描述跨來源混淆:某份證據支持主張,不代表答案歸因的來源正確。
“We do not claim to solve open-domain factuality detection.” 論文作者在研究範圍說明中明確指出,這項方法不涵蓋開放領域事實偵測;作者也將領域安全驗證及模型內部知識校正列在研究範圍之外。
主張標註由模型協助,人工檢查限於保留測試子集;資料來自單一醫療代理堆疊,50 個來源置換案例也屬受控測試。這是 arXiv 預印本,尚不能視為業界標準或長期部署成效證明;使用醫療 trace 測試也不代表方法已驗證適用於臨床決策。
- 「答案有支持」與「答案歸因正確」應分開評估。
- 看成績時同時檢查阻擋指標、來源識別及來源加關係正確度,也要計算誤攔所需的人工作業。
- 預印本的單一場景測試可提供評估線索,不能直接代表跨產業或長期部署表現。
四、接進現有 RAG 或代理流程,要付出哪些成本?
先確認 trace 保留來源與原始輸出的能力,再用自家案例衡量誤放、誤擋、延遲和覆核負擔。 來源資料不完整時,驗證器可能只能降階判斷,必須預先設計人工覆核或拒答路徑。
工程盤點可從 trace 格式開始:是否留有工具呼叫、完整輸出、穩定來源識別碼,以及答案中明示或暗示的出處?若舊系統只保存最後答案或合併後的脈絡,就得調整記錄方式和資料保留政策。接著要測試答案拆句和來源路由是否會錯把相似文件配在一起;不同資料結構、繁簡用語、表格與數值都可能改變判讀難度。
營運成本包含額外模型呼叫、等待時間、誤攔覆核、答案修復與重新查核。論文在多來源測試的凍結主張資料包上,按問題群組計算的檢查平均約 0.189 秒;資料已提供拆好的主張,因此不含拆解或修復。
另一項答案層級重跑以 59 個重建答案為單位,包含規則式拆解、一次修復及重新驗證,平均每個答案約 0.498 秒。這批答案都先遭阻擋並進入修復,其中兩個最後使用備援回覆。
兩個數字的流程、計時單位與工作內容不同,論文也未提供足以核實硬體是否相同的資訊,不能直接比較或視為其他環境的服務水準。導入前應記錄基準延遲,分開量測一般檢查與修復流程,再決定驗證要放在 RAG 後處理、代理輸出閘門或高風險問題的人工作業環節。
實務上可先抽取一批真實多來源問題,由人逐項標出主張、正確來源與可接受歸因,再比較現有評測與來源感知驗證的漏判、誤擋及處理時間。
論文以醫療領域 trace 作為測試場景,但研究不是臨床介入或醫療器材驗證,未驗證方法對臨床決策的效用。本文不是健康建議或醫療工具推薦;研究結果不能用來指導孕婦、兒童、慢性病患者或長期服藥者的醫療決策或工具選擇。若評估醫療使用,應由合格醫療專業人員依實際情境判斷。若 trace 含病歷或其他敏感資料,部署團隊也要評估去識別化、存取權限與保存期限。來源識別缺失時,應設定人工覆核或拒答路徑,避免把低把握的歸因呈現成確定答案。

常見問題
Q1:MCP 代理來源驗證和一般 RAG 忠實度評測方法有什麼差別?
一般忠實度評分多檢查答案主張是否受提供的脈絡支持;來源感知驗證還要確認每項主張實際由哪一份工具輸出支持,以及答案是否把來源說對。
Q2:MCP 代理的 trace 沒有來源識別碼,還能驗證嗎?
可能只能以工具名稱等較粗略資訊判斷。若同一工具回傳多份文件,缺少穩定識別碼會使精確歸因更困難,應在系統中補記來源資訊,並為不能判定的案例設定覆核或拒答。
Q3:ProvenanceGuard 已證明適合醫療或其他產業嗎?
尚未。論文使用醫療代理 trace 測試方法,但作者指出目前證據受單一代理堆疊、模型協助標註、小型保留資料及受控混淆案例限制。各團隊應用自身代表性資料重新驗收;醫療部署尤其不能把來源驗證當作臨床判斷。
Q4:團隊導入前第一步該做什麼?
先挑一批真實多來源問題,逐項標記答案主張、支持來源與可接受歸因,接著量測現有檢查和新驗證方法的漏判、誤擋、延遲及人工處理量,再選擇部署位置。
參考來源
- Alvarez A, et al. (2026). *ProvenanceGuard: Source-Aware Factuality Verification for MCP-Based LLM Agents*. arXiv:2606.18037(預印本)
- Tiene A, Alvarez A, Wirjadi O (2026). *Getting the Source Right, Not Just the Fact: Source-Aware Verification for MCP Agents*. Hugging Face Blog
- Ragas Team (n.d.). *Faithfulness*. Ragas Documentation