AI Agent幻覺治理:三類成因與三層防線解析)
前兩天有位做企業(yè)服務(wù)的讀者跟老王聊說他們團(tuán)隊(duì)花了三個(gè)月做的第一個(gè)Agent上線兩周就下了線。原因不復(fù)雜客戶詢問某個(gè)新功能是否支持Agent特別篤定地回答“支持”還順手給出了一套操作步驟產(chǎn)品經(jīng)理一核對(duì)這個(gè)功能根本不存在。這種情況放在2026年已經(jīng)是企業(yè)落地AI時(shí)最常見的高頻翻車現(xiàn)場(chǎng)。我的一個(gè)明顯體感是去年大家聊Agent聊的是“能不能做”今年大家問的幾乎全是“做完怎么不翻車”。翻車的根源就是AI幻覺。這篇我把企業(yè)場(chǎng)景下幻覺的成因、舊辦法為什么治不了本、以及我跑過幾個(gè)項(xiàng)目后沉淀的結(jié)構(gòu)性解法完整寫出來給已經(jīng)上車或正準(zhǔn)備上車的團(tuán)隊(duì)做個(gè)參考。1. 先認(rèn)清病灶2026年的企業(yè)幻覺到底是怎么發(fā)生的1.1 幻覺不是大模型犯傻是三類錯(cuò)誤在交錯(cuò)很多人一提到幻覺就認(rèn)為是大模型“知識(shí)不夠”或者“太愛編”。實(shí)際上落到企業(yè)系統(tǒng)里幻覺至少分三類表現(xiàn)完全不同治理手段也完全不一樣。第一類是知識(shí)性幻覺也就是模型確實(shí)不知道答案但為了保持對(duì)話流暢它生成了一個(gè)聽起來合理的回答。比如業(yè)務(wù)人員問Agent“去年Q3華東區(qū)的退貨率是多少”這個(gè)數(shù)據(jù)既不在模型的訓(xùn)練語料里Agent又沒有接上數(shù)據(jù)系統(tǒng)它就根據(jù)其他季度或者其他區(qū)域的數(shù)據(jù)“推測(cè)”出一個(gè)數(shù)還說得有鼻子有眼。這叫編造事實(shí)。第二類是忠實(shí)性幻覺模型拿到了準(zhǔn)確信息但在生成回答時(shí)把信息“說走樣”了。比如工具接口明明返回“庫(kù)存32件”Agent卻在回答里寫成“庫(kù)存充足可以放心下單”知識(shí)庫(kù)里寫著“售后服務(wù)僅面向企業(yè)年費(fèi)客戶”模型回答時(shí)卻丟掉了“年費(fèi)”這個(gè)前置條件。這叫事實(shí)扭曲。它比編造更隱蔽因?yàn)閬碓词菍?duì)的錯(cuò)在生成環(huán)節(jié)。第三類是邏輯性幻覺常見于多步驟推理或多次工具調(diào)用的鏈路里。Agent先查匯率再算稅額最后生成財(cái)務(wù)摘要任何一步取錯(cuò)值、用錯(cuò)參數(shù)后面幾步全都跟著錯(cuò)但模型不會(huì)中途停下來承認(rèn)錯(cuò)誤它會(huì)非常自信地沿著錯(cuò)誤路徑繼續(xù)輸出。這類問題在純問答場(chǎng)景下很少見一旦進(jìn)入Agent多步任務(wù)就成了主要翻車來源。把大模型類比成一個(gè)口才極好的實(shí)習(xí)生它最大的問題不是不懂而是不懂時(shí)寧可現(xiàn)編也不愿意說“我不知道”。企業(yè)環(huán)境恰恰最不能容忍這種“裝懂”。理解了三類幻覺的差異后面所有方案才有落腳點(diǎn)。1.2 Agent場(chǎng)景把幻覺概率放大了十倍單輪問答的幻覺大家多少有點(diǎn)心理準(zhǔn)備。但Agent讓問題嚴(yán)重了一個(gè)量級(jí)原因是多步任務(wù)的錯(cuò)誤會(huì)累積。假設(shè)模型在單步工具調(diào)用中的事實(shí)出錯(cuò)概率只有1%看起來很低對(duì)吧一個(gè)需要調(diào)用五步工具的Agent任務(wù)鏈路完整走對(duì)的概率是99%的5次方約等于95.1%如果任務(wù)復(fù)雜到需要十步調(diào)用完整走對(duì)的概率就降到90.4%。這意味著每十個(gè)復(fù)雜任務(wù)就可能有一個(gè)在某個(gè)環(huán)節(jié)悄悄出錯(cuò)。而且Agent出錯(cuò)有一個(gè)特點(diǎn)前半段越順利后半段模型越自信用戶很難在結(jié)果里察覺中間哪一步偏了。2026年的企業(yè)場(chǎng)景里還有三個(gè)放大器在起作用。第一是企業(yè)私有術(shù)語多。訓(xùn)練語料里幾乎沒有公司內(nèi)部的產(chǎn)品名、流程名、部門縮寫模型遇到“某某系統(tǒng)”“某某單號(hào)”時(shí)沒有可靠記憶只能靠語義相近的詞去猜而猜測(cè)正是幻覺的溫床。第二是多系統(tǒng)信息沖突。同一個(gè)客戶在CRM里是“已簽約”在售后系統(tǒng)里卻是“已到期”Agent檢索到兩條互相矛盾的數(shù)據(jù)后通常會(huì)選擇描述更詳細(xì)的一條而詳細(xì)的那條往往恰恰是舊狀態(tài)。模型沒有業(yè)務(wù)判斷力它只會(huì)挑“看起來更可信”的。第三是Agent的設(shè)計(jì)趨向于“自主”。為了讓Agent顯得聰明很多團(tuán)隊(duì)刪掉了人工確認(rèn)環(huán)節(jié)讓它在一次任務(wù)里連續(xù)改寫、連續(xù)決策。模型一旦在沒有校驗(yàn)的情況下自由發(fā)揮幻覺就從偶發(fā)變成了系統(tǒng)性問題。所以我的結(jié)論很直接幻覺不是某個(gè)模型升級(jí)就能解決的因?yàn)槟P吞烊徊欢愕臉I(yè)務(wù)事實(shí)。這是一個(gè)結(jié)構(gòu)性問題必須用結(jié)構(gòu)性解法來應(yīng)對(duì)。2. 為什么“加個(gè)RAG、多寫Prompt”治不了幻覺2.1 RAG不是銀彈檢索相關(guān)不等于事實(shí)正確這幾年RAG幾乎是企業(yè)做AI的標(biāo)配思路是先把文檔切碎存進(jìn)向量庫(kù)用戶提問時(shí)檢索相關(guān)內(nèi)容再拼進(jìn)Prompt讓模型參考。聽起來很合理但實(shí)際跑下來它只是部分改善了“無中生有”遠(yuǎn)沒到“事實(shí)可信”的程度。第一個(gè)問題是檢索噪聲。向量檢索比的只是語義相似度語義相似不等于事實(shí)正確。你問“取消訂單的流程”它召回的可能是一份“退款流程”文檔兩段文字在表達(dá)上確實(shí)很像但講的是另一套業(yè)務(wù)規(guī)則。模型拿著這份文檔當(dāng)依據(jù)自然就回答偏了。第二個(gè)問題是分塊不科學(xué)。很多團(tuán)隊(duì)圖省事用固定長(zhǎng)度切文檔比如512字一塊。一段完整的業(yè)務(wù)規(guī)則如果被攔腰斬?cái)嗪蟀雺K缺少前提條件模型只能靠上下文腦補(bǔ)。腦補(bǔ)出來的內(nèi)容看起來通順其實(shí)前提錯(cuò)位。第三個(gè)問題是知識(shí)版本沖突。企業(yè)知識(shí)庫(kù)更新頻繁新功能上線后產(chǎn)品文檔沒同步或者數(shù)據(jù)庫(kù)里的規(guī)則還是舊版本RAG檢索回來的就是過期事實(shí)。模型不知道哪個(gè)版本是當(dāng)前的它只會(huì)照著檢索到的內(nèi)容回答。所以RAG的本質(zhì)是“給模型一沓參考資料”而不是“給模型裝事實(shí)護(hù)欄”。參考資料本身有錯(cuò)、有過期、有沖突模型照樣會(huì)把錯(cuò)的說成對(duì)的。2.2 Prompt工程和微調(diào)邊際效應(yīng)已經(jīng)非常明顯前兩年流行“把問題都寫進(jìn)Prompt里”比如“請(qǐng)嚴(yán)格基于以下資料回答不要編造”。我見過團(tuán)隊(duì)在系統(tǒng)提示詞里寫了幾百字的防幻覺要求實(shí)測(cè)下來該錯(cuò)還是錯(cuò)。原因很簡(jiǎn)單Prompt只能影響模型的表達(dá)傾向無法約束它的事實(shí)來源。模型可能確實(shí)會(huì)增加引用來源但資料本身錯(cuò)了它引用錯(cuò)資料照樣信心滿滿更麻煩的是它還可能出現(xiàn)“張冠李戴”把資料A的事實(shí)安到問題B上。長(zhǎng)Prompt就一定會(huì)被遵守這是錯(cuò)覺。微調(diào)的路子同樣不好走。為了壓幻覺去做微調(diào)首先得準(zhǔn)備大量高質(zhì)量的業(yè)務(wù)標(biāo)注數(shù)據(jù)標(biāo)注本身昂貴且容易出錯(cuò)標(biāo)錯(cuò)一條等于教會(huì)模型一條錯(cuò)誤事實(shí)。其次微調(diào)改變的是模型權(quán)重它會(huì)帶來不可控的副作用比如通用能力回退、生成風(fēng)格變化。最要命的是微調(diào)后的模型很難審計(jì)出了問題你甚至說不清是訓(xùn)練數(shù)據(jù)帶偏的還是權(quán)重更新引入的。這幾年我越來越傾向于一個(gè)判斷幻覺的單點(diǎn)補(bǔ)丁時(shí)代已經(jīng)過去了。RAG、Prompt、微調(diào)都是必要的組件但它們解決不了“系統(tǒng)級(jí)可信”的問題。要讓Agent在企業(yè)場(chǎng)景里真正可用必須把幻覺治理從“模型層”上移到“架構(gòu)層”和“流程層”。3. 結(jié)構(gòu)性解法把幻覺防治拆成三層防線所謂結(jié)構(gòu)性解法核心思路不是“換一個(gè)更能避免幻覺的模型”而是讓系統(tǒng)在“生成前”“生成中”“生成后”都有攔截點(diǎn)和校驗(yàn)位。我習(xí)慣把它拆成三層防線。3.1 第一層用“可引用知識(shí)單元”管住事實(shí)來源第一層防線解決的是“模型拿什么當(dāng)依據(jù)”的問題。傳統(tǒng)RAG最大的問題在于知識(shí)是被動(dòng)檢索、零散使用的模型拿到什么算什么。我的做法是反過來的先建立企業(yè)知識(shí)基座把知識(shí)整理成結(jié)構(gòu)化的“可引用知識(shí)單元”每個(gè)單元都自帶元數(shù)據(jù)。一個(gè)知識(shí)單元不是一段隨便切的文本而是一條完整的業(yè)務(wù)事實(shí)它必須至少包含四個(gè)字段單元ID、知識(shí)內(nèi)容、生效版本、適用條件。舉個(gè)具體例子產(chǎn)品說明里有一句話“家庭版賬號(hào)最多支持5個(gè)成員”這可以是一個(gè)知識(shí)單元它帶著“家庭版、2026-01版本、適用于新增購(gòu)買用戶”這些元數(shù)據(jù)。當(dāng)Agent生成回答時(shí)凡是涉及事實(shí)的斷言都必須攜帶知識(shí)單元ID。這就像一位嚴(yán)謹(jǐn)?shù)膶<以诮忉尳Y(jié)論時(shí)會(huì)說“這個(gè)數(shù)字來自某份報(bào)表第幾頁(yè)”回答本身就帶著出處。實(shí)際操作中知識(shí)治理有三件事必須做透。第一是文檔清洗PDF導(dǎo)出的內(nèi)容往往有頁(yè)眉頁(yè)腳、表格亂碼、嵌入圖片里的文字無法提取這些臟數(shù)據(jù)直接進(jìn)向量庫(kù)檢索命中率高但內(nèi)容不可用。第二是語義分塊代替定長(zhǎng)分塊遇到“前提條件”“適用范圍”這類關(guān)鍵信息寧可讓一個(gè)單元長(zhǎng)一些也不能把它劈成兩半。第三是版本控制和權(quán)限隔離Agent只能檢索當(dāng)前生效版本的知識(shí)銷售Agent不能檢索研發(fā)內(nèi)部文檔這既是安全要求也是減少跨域噪聲的關(guān)鍵手段。注意知識(shí)單元化改造本質(zhì)上是把“給模型喂資料”升級(jí)為“給模型配可追溯的事實(shí)源”。這一步最枯燥但也是后面所有防線能夠生效的前提。3.2 第二層在Agent執(zhí)行鏈路里嵌推理護(hù)欄第二層防線解決的是“模型邊說邊錯(cuò)”的問題也就是在生成和執(zhí)行過程中強(qiáng)制加入校驗(yàn)邏輯不讓模型裸奔輸出。一個(gè)企業(yè)Agent不管看起來多“智能”內(nèi)部執(zhí)行鏈路里至少要有三道硬性護(hù)欄。第一道是工具調(diào)用校驗(yàn)。給Agent定義工具時(shí)不僅僅是寫一段“工具描述”還要用嚴(yán)格的參數(shù)Schema約束輸入輸出。比如查詢庫(kù)存的工具輸入必須是合法的SKU編碼格式輸出必須是結(jié)構(gòu)化JSON如果模型傳進(jìn)來的參數(shù)不合法工具應(yīng)該直接拒絕執(zhí)行并返回錯(cuò)誤而不是模糊地“再試一次”。第二道是反事實(shí)生成校驗(yàn)。Agent在生成關(guān)鍵事實(shí)斷言之前要強(qiáng)制做一次自反檢把這條斷言拆成幾個(gè)可驗(yàn)證的聲明轉(zhuǎn)成檢索查詢?cè)倩刂R(shí)單元里核對(duì)。這一步可以寫成一個(gè)獨(dú)立的驗(yàn)證器模塊和主生成模型解耦。def verify_claim(claim, knowledge_units, retriever): # 將斷言轉(zhuǎn)成檢索查詢 query claim_to_query(claim) hits retriever.retrieve(query, top_k5) if not hits: return {pass: False, reason: no_source} # 對(duì)每個(gè)候選知識(shí)單元做聲明級(jí)一致性檢查 for unit in hits: if is_entailed(claim, unit.content, verifier_model): return {pass: True, source_id: unit.id, version: unit.version} # 有候選但無法佐證說明存在沖突 return { pass: False, reason: contradiction, candidates: [unit.id for unit in hits], }這段偽代碼看著簡(jiǎn)單卻是整個(gè)Agent架構(gòu)里最關(guān)鍵的一個(gè)環(huán)節(jié)。它把“模型說出來的話”從不可驗(yàn)證的文本變成了可以查詢、可以比對(duì)、可以拒絕執(zhí)行的對(duì)象。驗(yàn)證器模型可以選一個(gè)小一點(diǎn)的專用模型單獨(dú)訓(xùn)練或單獨(dú)調(diào)用盡量不要和主生成模型混在一起否則會(huì)互相干擾。第三道是降級(jí)路徑。當(dāng)工具返回異常、檢索結(jié)果為空、驗(yàn)證器判定“無法證實(shí)”時(shí)Agent絕對(duì)不能自由發(fā)揮。系統(tǒng)應(yīng)該硬編碼觸發(fā)降級(jí)路徑明確回復(fù)“我暫時(shí)無法確認(rèn)這個(gè)信息需要為您轉(zhuǎn)接人工”或者輸出一個(gè)預(yù)設(shè)的保守口徑。很多團(tuán)隊(duì)覺得這樣“顯得Agent笨”但老王在項(xiàng)目里見過太多企業(yè)恰恰是因?yàn)锳gent在不確定時(shí)選擇了“顯得聰明”才付出了極高的售后成本。3.3 第三層事后可觀測(cè)與自動(dòng)化審計(jì)第三層防線是兜底。再好的前置校驗(yàn)也沒法做到100%攔截所以必須讓每一次幻覺都有跡可循能夠被快速發(fā)現(xiàn)、快速定位、快速修復(fù)。實(shí)操層面需要給Agent的每一次回答都打上traceID記錄生成回答時(shí)使用的Prompt版本、模型版本、檢索到的知識(shí)單元、工具返回的原始數(shù)據(jù)以及驗(yàn)證器的判定結(jié)果。這些信息全部寫入日志系統(tǒng)一旦用戶投訴內(nèi)容有誤直接用traceID就能還原當(dāng)時(shí)的完整上下文而不是靠復(fù)述“當(dāng)時(shí)它好像說了什么”。光有日志還不夠得把它變成可量化的監(jiān)控指標(biāo)。我團(tuán)隊(duì)在項(xiàng)目里重點(diǎn)跟蹤三個(gè)數(shù)無引用率回答里沒有來源引用的斷言比例這個(gè)數(shù)字高說明模型在“自由發(fā)揮”。引用沖突率回答內(nèi)容與所綁定知識(shí)單元明顯不一致的比例這是忠實(shí)性幻覺的直接信號(hào)。人工修正率用戶或客服對(duì)Agent回答進(jìn)行糾錯(cuò)的頻率它是幻覺對(duì)業(yè)務(wù)產(chǎn)生實(shí)際影響的最真實(shí)指標(biāo)。這三個(gè)指標(biāo)配上自動(dòng)告警比如引用沖突率超過2%就立刻暫停高風(fēng)險(xiǎn)場(chǎng)景的Agent流量就構(gòu)成了一個(gè)可以持續(xù)運(yùn)營(yíng)的幻覺監(jiān)控閉環(huán)。再加上一個(gè)回歸評(píng)測(cè)集每次更換模型、調(diào)整Prompt、更新知識(shí)庫(kù)之后都自動(dòng)跑一遍才能防止“修好了A問題的同時(shí)弄壞了B問題”。4. 落地全指南從評(píng)測(cè)集到上線的八個(gè)關(guān)鍵環(huán)節(jié)三層防線是架構(gòu)層面的解法但真正落地時(shí)會(huì)發(fā)現(xiàn)工程細(xì)節(jié)比架構(gòu)更磨人。我把完整落地流程拆成八個(gè)關(guān)鍵環(huán)節(jié)按順序做能少走很多彎路。4.1 先建幻覺評(píng)測(cè)集而不是先調(diào)模型很多團(tuán)隊(duì)一上來就調(diào)Prompt、換模型折騰一個(gè)星期后自我感覺良好上線卻翻車。原因是缺少一把“尺子”。正確的第一步是建立一套面向自身業(yè)務(wù)的幻覺評(píng)測(cè)集。從真實(shí)的客服對(duì)話、銷售問題、工單記錄里抽300到500條作為種子問題刻意覆蓋三類純知識(shí)問答產(chǎn)品規(guī)則、政策說明、工具調(diào)用類查庫(kù)存、查訂單狀態(tài)、多跳推理類算報(bào)價(jià)、生成匯報(bào)摘要。每條問題都要標(biāo)注三樣?xùn)|西標(biāo)準(zhǔn)答案、可接受區(qū)間、禁區(qū)。標(biāo)準(zhǔn)答案用于判斷回答是否準(zhǔn)確可接受區(qū)間放行那些表達(dá)不同但不影響業(yè)務(wù)理解的回答禁區(qū)是絕對(duì)不能碰錯(cuò)的紅線比如財(cái)務(wù)金額、安全參數(shù)、法律條款。同時(shí)給幻覺分分級(jí)S級(jí)是財(cái)務(wù)、安全、法律等高風(fēng)險(xiǎn)類信息錯(cuò)誤A級(jí)是產(chǎn)品功能錯(cuò)誤B級(jí)是表述不精確但不誤導(dǎo)。不同級(jí)別對(duì)應(yīng)不同的處理策略S級(jí)出錯(cuò)立刻阻斷A級(jí)出錯(cuò)標(biāo)記人工復(fù)審B級(jí)允許事后改進(jìn)。有了評(píng)測(cè)集和分級(jí)標(biāo)準(zhǔn)后續(xù)所有技術(shù)決策都有了客觀依據(jù)。4.2 知識(shí)治理、工具邊界與降級(jí)策略評(píng)測(cè)集建好之后第二步就是做知識(shí)治理。把將要接入Agent的所有文檔過一遍做三件事格式清洗、語義分塊、元數(shù)據(jù)打標(biāo)。這里要特別提醒知識(shí)治理千萬不要試圖“一步到位”先挑業(yè)務(wù)價(jià)值最高、結(jié)構(gòu)最規(guī)整的三大類文檔做試點(diǎn)比如產(chǎn)品手冊(cè)、售后服務(wù)政策、訂單處理規(guī)范。跑通一個(gè)流程比把所有文檔一次性改造完再上線要?jiǎng)?wù)實(shí)得多。第三步是定義工具邊界。一件很重要的事是明確告訴Agent“哪些問題必須通過工具獲取答案”。訂單狀態(tài)、庫(kù)存數(shù)量、物流軌跡凡是系統(tǒng)里有數(shù)據(jù)的事實(shí)型問題一律不允許模型直接回答必須走工具查詢。工具的結(jié)果如果為空就按降級(jí)策略處理模型不能替數(shù)據(jù)系統(tǒng)回答。降級(jí)策略不是一句“抱歉我無法回答”這么簡(jiǎn)單它是一套預(yù)置話術(shù)和流轉(zhuǎn)邏輯。比如客服Agent在無法確認(rèn)寄送時(shí)效時(shí)話術(shù)可以是“當(dāng)前物流系統(tǒng)暫時(shí)無法返回準(zhǔn)確的時(shí)效信息我為您轉(zhuǎn)接人工客服進(jìn)一步確認(rèn)”同時(shí)后臺(tái)自動(dòng)創(chuàng)建一條轉(zhuǎn)人工工單把上下文一起帶過去。4.3 驗(yàn)證器、人工兜底與持續(xù)巡檢第四步是設(shè)計(jì)驗(yàn)證器接入點(diǎn)。不是所有回答都值得做代價(jià)高的反事實(shí)校驗(yàn)成本高且影響響應(yīng)速度。我的做法是“分級(jí)校驗(yàn)”S級(jí)和A級(jí)斷言強(qiáng)制過驗(yàn)證器B級(jí)斷言抽樣過金融、醫(yī)療、生產(chǎn)制造等高風(fēng)險(xiǎn)場(chǎng)景全量校驗(yàn)普通知識(shí)問答場(chǎng)景按10%比例抽取。第五步是部署Human-in-the-loop。即便有驗(yàn)證器企業(yè)也應(yīng)該保留人工確認(rèn)位。比如Agent在輸出“已為您退款”這類不可逆操作之前必須先彈一個(gè)確認(rèn)消息給用戶或客服人員得到明確授權(quán)后工具才執(zhí)行。這個(gè)確認(rèn)位不是為了讓Agent顯得低能而是把極端情況下的責(zé)任邊界劃清楚。第六步是搭建可觀測(cè)平臺(tái)。前文提到的traceID、監(jiān)控指標(biāo)、告警閾值都要在代碼層面落地不要等出事了再補(bǔ)日志。第七步是灰度與A/B評(píng)測(cè)。上線時(shí)不要全量開放先拿5%到10%的真實(shí)流量灰度一周對(duì)比四個(gè)數(shù)人工解決率、用戶投訴率、幻覺上報(bào)率、任務(wù)完成率?;叶葦?shù)據(jù)比任何內(nèi)部測(cè)試都有說服力。第八步是持續(xù)巡檢與回歸。每周抽測(cè)近期真實(shí)對(duì)話每月跑一次完整Golden Set回歸每次知識(shí)庫(kù)或模型更新后強(qiáng)制跑回歸?;糜X治理不是一個(gè)上線即結(jié)束的項(xiàng)目它是一個(gè)和業(yè)務(wù)一起持續(xù)演進(jìn)的運(yùn)營(yíng)過程。5. 我踩過的坑常見幻覺故障與排查實(shí)錄5.1 四個(gè)高頻翻車現(xiàn)場(chǎng)項(xiàng)目做多了發(fā)現(xiàn)企業(yè)Agent的幻覺故障其實(shí)高度重復(fù)翻來覆去就是那幾類。場(chǎng)景一檢索命中但答非所問。Agent確實(shí)召回了知識(shí)庫(kù)的內(nèi)容但回答的內(nèi)容和用戶問題對(duì)不上。做過一次根因分析發(fā)現(xiàn)是分塊策略問題那段業(yè)務(wù)規(guī)則的前提條件在上一塊文本里模型只看到了后半段自然理解偏了。解決方法是改成按業(yè)務(wù)語義邊界分塊并在每個(gè)知識(shí)單元里顯式寫入適用條件。場(chǎng)景二工具數(shù)據(jù)被“口語化”改到失真。工具返回“庫(kù)存32件”Agent回答“庫(kù)存充足”。這類問題出現(xiàn)頻率非常高原因是Agent的生成層對(duì)數(shù)值做了“概括式改寫”。我們的解法很粗暴關(guān)鍵業(yè)務(wù)數(shù)值根本不允許經(jīng)過口語化改寫層直接用模板語法把工具返回值嵌入回答比如“當(dāng)前庫(kù)存為{{stock_count}}件”。場(chǎng)景三多跳推理里張冠李戴。Agent先查了客戶A的欠款再匯總生成催收摘要結(jié)果把客戶B的金額算進(jìn)了客戶A名下。排查后發(fā)現(xiàn)問題是第二步的中間變量沒有綁定來源標(biāo)識(shí)。后來的修改是要求每一步工具調(diào)用結(jié)果都保留原始字段來源摘要生成時(shí)強(qiáng)制引用對(duì)應(yīng)字段ID。場(chǎng)景四Agent在不確定時(shí)硬要回答。工具超時(shí)、返回空數(shù)組、知識(shí)庫(kù)沒有命中但Agent還是給了用戶一個(gè)貌似合理的答案。根因是鏈路里缺少顯式的“我不知道”路徑。后來把降級(jí)策略做成了硬編碼分支一旦觸發(fā)異常狀態(tài)根本不給模型自由生成的機(jī)會(huì)。| 故障現(xiàn)象 | 根因 | 解法 | 預(yù)防優(yōu)先級(jí) | | 檢索命中但答非所問 | 分塊切斷前提條件 | 語義分塊并寫入適用條件 | 高 | | 工具數(shù)據(jù)被概括性改寫 | 生成層對(duì)數(shù)值做過度的自由改寫 | 關(guān)鍵數(shù)值走模板直引 | 高 | | 多跳推理張冠李戴 | 中間變量缺失來源標(biāo)識(shí) | 每一步結(jié)果綁定字段ID | 中 | | 不確定時(shí)硬要回答 | 缺少降級(jí)路徑 | 異常狀態(tài)硬編碼轉(zhuǎn)人工 | 極高 |5.2 排查五步法與避坑經(jīng)驗(yàn)團(tuán)隊(duì)如果遇到疑似幻覺問題我的建議是別憑感覺修Prompt按固定套路排查效率高得多。第一步復(fù)現(xiàn)問題并拿到traceID。沒有traceID的幻覺問題基本只能靠猜難有結(jié)論。第二步比對(duì)引用來源檢查回答中聲稱引用的知識(shí)單元ID是否真實(shí)存在、版本是否為當(dāng)前生效版本。第三步檢查工具返回的原始數(shù)據(jù)將原始JSON與Agent最終回答逐一比對(duì)看改動(dòng)了什么。第四步單獨(dú)觸發(fā)驗(yàn)證器把有問題的斷言丟給驗(yàn)證器重新核驗(yàn)判斷是驗(yàn)證器漏了還是壓根沒走驗(yàn)證流程。第五步無論結(jié)論如何都要在評(píng)測(cè)集里新增一條回歸用例確保同樣的問題下次能被攔截住。排查中還要強(qiáng)調(diào)三個(gè)避坑經(jīng)驗(yàn)。一是不要太信任模型的置信度分?jǐn)?shù)。有的模型在生成幻覺內(nèi)容時(shí)同樣會(huì)給一個(gè)極高的置信度這個(gè)分?jǐn)?shù)不能作為答案可信度的主要依據(jù)最多只能做參考。二是不要把所有知識(shí)塞進(jìn)同一個(gè)向量庫(kù)就完事?;旌隙鄻I(yè)務(wù)域的知識(shí)會(huì)顯著增加檢索噪聲至少按產(chǎn)品線、業(yè)務(wù)域拆分索引必要時(shí)加業(yè)務(wù)過濾器讓Agent只在當(dāng)前上下文所屬的范圍內(nèi)檢索。三是不要只在Prompt里寫“不要幻覺”。這句指令幾乎無效因?yàn)槟P蜎]有能力判斷自己哪句話是幻覺。要實(shí)現(xiàn)可信輸出靠的是強(qiáng)制的工具校驗(yàn)、驗(yàn)證器交叉核對(duì)、異常降級(jí)硬編碼而不是靠提示詞“祈禱”模型變誠(chéng)實(shí)。最后再分享一個(gè)特別費(fèi)錢踩出來的心得大模型版本升級(jí)要謹(jǐn)慎。每次模型廠商發(fā)布新版本看起來都“更強(qiáng)了”但很可能在某個(gè)你不關(guān)注的領(lǐng)域里行為發(fā)生了變化影響你現(xiàn)有的校驗(yàn)邏輯。我的做法是在黃金評(píng)測(cè)集上先跑一輪完整回歸確認(rèn)幻覺率沒有上升、關(guān)鍵場(chǎng)景沒有退化再?zèng)Q定要不要切換。現(xiàn)在回過頭來看幻覺治理做到最后做的不只是模型工程更是一套圍繞事實(shí)、來源和責(zé)任邊界的企業(yè)流程。想清楚這一點(diǎn)絕大多數(shù)坑都能繞得過去。