這一課會完成什麼
- 文件切片全程保留責任歸屬、版本、時效與權限中繼資料
- 語意或關鍵字排序前先做租戶與文件 access 篩選
- 比較基準版本、附脈絡的文件片段、關鍵字搜尋與重排
- 檢索漏找與引註忠實程度不得和文字品質混成一個分數
開始前先準備
- • 模組 03 的限定租戶範圍的狀態與來源紀錄模型
- • 基本搜尋、向量嵌入與測試測試資料概念
先把定義說清楚
RAG 與知識檢索
檢索增強生成(RAG)在執行時選取已授權的外部資料,連同來源紀錄交給模型。檢索與生成答案會在不同地方出錯:前者可能漏掉必要段落、抓到過期資料,後者可能把資料解讀錯誤,或把有限觀察寫成一般結論。因此要分開評測。先確認正確且有權限閱讀的段落進入模型脈絡,再檢查答案是否忠於來源;找不到足夠資料時,也要能明確回報缺口。
答案寫得再流暢,也補不了缺少或未授權的證據。必要段落沒進脈絡,模型只能承認缺口,或拿先前知識與推論填空;後者通常就是不受支持的主張的起點。
文件權限必須一路穿過資料匯入、文件片段、索引、篩選、排序、快取、引註與刪除。等檢索完成才做 access 檢查,禁止內容已經進過系統路徑,甚至可能留在執行軌跡或快取。
現場情境
Cedar policy answer service
具名合成情境。Cedar Systems、員工、規則文件、預期段落與檢索分數全為教學虛構。
- 負責人
- 你替兩個合成區域團隊使用的內部規則助理實作檢索。
- 要做的決策
- 從候選檢索設定選出同時通過命中率與未授權命中為零的版本。
- 目前狀態
- Cedar 有 6 份公開規則、4 份 EU-only 附錄與 4 份 US-only 附錄。原型只建立向量嵌入純文字文件片段,權限中繼資料沒跟進索引,團隊也只看最終答案是否流暢。
- 預期成果
- Selected 設定能替標準題目找到預期已授權文件片段;真的沒證據就記空結果結果,也從不回傳另一個區域的 canary。
限制條件
- • 每個文件片段繼承租戶、可閱讀對象、文件版本、生效日期與刪除狀態。
- • 授權篩選在語意/關鍵字評分前執行,快取回內容前也要再檢查。
- • 答案引用文件片段 ID、文件 ID、標題、版本與來源 URL 或內部紀錄路徑。
- • 標準答案集同時包含已授權命中、空結果結果、過期版本與禁止證據 canary。
實作範例
段落答得出問題,使用者仍可能無權閱讀
證據類型: 具名模擬情境問題 CDR-09 問未使用的訓練預算是否會延到下一季。唯一寫延續的段落位於 EU 附錄;進行中的使用者在 Cedar US,目前規則只說管理者逐案決定,沒有延續規則。未過濾的語意搜尋把 EU 段落排第一。
檢索層在評分前先過濾 Cedar US 與公開文件,只回 US 段落並標 evidence_gap。答案明說目前可看的 US 規則沒有定義延續,將問題交給規則負責人;EU 規則不引用、不摘要,也不暗示存在。
驗收報告記 US 段落的授權命中、0 次受限 canary 命中,以及 1 個預期證據缺口。指標只適用課程的 30 題資料集,不代表一般 RAG 正確率。
主張限制
Anthropic 的 Contextual Retrieval(附脈絡檢索)數字來自其實驗,不能當 Cedar 的預期收益。託管檔案搜尋會隱藏部分匯入與排序細節;採用前仍須確認權限篩選、刪除、中繼資料與結果檢查能力。
做法
照著做,每一步都有檢查點
現場情境
從候選檢索設定選出同時通過命中率與未授權命中為零的版本。
- 01把上層中繼資料帶進文件片段
- 02先按權限篩選,再產生候選資料
- 03比較 4 種檢索路徑
驗收條件
一份能按已授權證據召回率、空結果如實回報、延遲與成本選設定的檢索報告。討論答案說明文字前,證據層已先過關。
- 01
把上層中繼資料帶進文件片段
切文件片段時保留文件 ID、租戶、可閱讀對象、版本、生效日期、已刪除狀態與來源路徑。文件片段 ID 要穩定,才能追更新與刪除。
檢查點 · 抽查每個文件片段都能回到唯一上層文件,權限與版本沒有遺失。
- 02
先按權限篩選,再產生候選資料
存取篩選從可信的工作階段取得,套在向量、關鍵字、快取與重排器輸入之前。用 EU/US canary 驗證任何中間層都不漏。
檢查點 · EU 和 US 使用者在排序前候選資料、快取、軌跡及最後結果中,都看不到對方的 canary。
- 03
比較 4 種檢索路徑
同一批 30 題跑基準版本向量嵌入、附脈絡的文件片段、混合關鍵字與重排。報 top-5、top-20 漏找、空結果、禁止命中、延遲與成本。
檢查點 · 每個設定都有完整指標;選擇不能只看其中一個平均分數。
- 04
只用通過的證據生成
從已授權結果建答案脈絡,保留穩定引註欄位。證據無法支援問題要求時,必須回 evidence_gap。
檢查點 · 每個事實句都能對到已包含的文件片段;CDR-09 不洩漏 EU 延續規則。
- 05
刪除後重跑
先把一份文件標成已刪除,再讓移除事件傳到文件片段、索引、快取與引註查詢。重跑相關標準題目,確認各層都不再回傳已刪除的內容。
檢查點 · 候選資料與引註都找不到已刪除片段;系統明確回報預期證據缺口,不回過期內容。
實務脈絡
展示版之後
實作拆解
權限從完整文件一路帶到片段。建立片段時複製租戶、可閱讀對象、版本、生效日期、來源路徑、刪除狀態與穩定文件 ID;缺欄位就不進索引。查詢依已驗證工作階段建立篩選條件,再產候選資料。向量搜尋、BM25、重排器與快取共用同一套權限。等到答案輸出才遮段落太晚,因為資料可能已進第三方重排器、軌跡或共用快取。
標準答案集先標必要來源、可接受替代資料、預期空結果、禁止命中的洩漏探針與時效條件,答案內容可以晚些再補。四種檢索版本共用 30 題,報 top-5/top-20 的授權來源漏找、空結果是否如實回報、禁止命中、延遲與成本。未授權命中大於 0 就淘汰;通過存取檢查後,才比較附脈絡片段、關鍵字補充與重排帶來的收益。
引註驗證器確認來源 ID 存在、使用者有權閱讀、版本有效,且引用段落真的出現在已檢索脈絡中。每個事實句至少對應一個證據 ID;缺證據時回報缺口,不靠反覆生成掩蓋。刪除測試一路查文件清單、片段、索引、快取、候選資料與引註解析器,任何一層仍回過期內容,就不能通過上線準備。
營運檢查
檢索報告需要逐題檢視,不只列整體命中率。每個問題保存查詢、使用者身分、套用的權限條件、候選清單、分數、重排前後位置、預期來源、實際來源與缺口原因。漏掉正確段落時,先判斷是文件根本沒進索引、切段把關鍵上下文切斷、查詢詞不符、詞彙檢索缺席、語意排序失敗,還是重排器把它降下去。這些原因對應不同修法。直接調整生成提示,無法讓缺席的證據出現,反而可能提高模型用既有知識補洞的機率。
權限測試要放故意醒目的金絲雀內容,並從所有中間產物搜尋。美國身分查歐洲限定政策時,不只最終答案不得出現,候選、重排輸入、除錯畫面、追蹤紀錄與共用快取也必須為零。更新與刪除則用固定時間測傳播上限:來源版本改變後,舊分段何時退出索引、快取何時失效、引用解析器何時拒絕舊版,都要有可觀測時間。若使用託管式檔案搜尋,無法檢查的中間層要明列為供應商責任或殘餘風險,不能假設服務名稱已涵蓋權限治理。
驗證與上線
切段策略不能只看固定字數。政策標題、適用對象、例外與生效日期若分散在不同段落,單一段落可能失去決定語意。建立段落時保留父文件摘要與章節路徑,再用金題檢查必要句是否能連同限制一起取回。若上下文補強提升命中,也要報增加的索引成本與查詢時間;公開研究的改善幅度只供設計實驗,不能先寫進 Cedar 驗收門檻。
混合檢索要讓每一層可替換。語意搜尋找概念相近內容,詞彙搜尋補專名、代號與精確用語,重排器只處理通過權限的有限候選。報告分別保存每層輸入與輸出,才能判斷某題是在哪一步掉下去。若所有查詢一律跑最昂貴流程,延遲與成本會在容易問題上浪費;可先由便宜路徑判斷信心,只有模糊或高風險問題才啟用重排,但路由規則同樣要用固定資料集驗證。
引用畫面要讓讀者能檢查,不只顯示一個編號。至少呈現文件標題、版本、生效日期、對應段落與存取範圍;內部路徑依權限顯示,不能把受限網址放進未授權畫面。當來源更新,舊簡報應標成使用過期版本,而非悄悄改連結指向新內容。這讓研究結果具可追溯性,也避免同一個引用識別碼在重新切段後指到不同文字。
正式發布門檻先看禁止命中,再看命中率。任一未授權候選都算重大失敗,即使答案沒有使用;任何已刪內容仍出現在快取或引用,也直接停止。通過後才檢查必要來源在前幾名的比例、證據缺口是否誠實、引用是否支持句子,以及延遲與費用是否符合服務目標。這個順序明確表達取捨:較高平均召回不能交換較寬的資料外洩風險。
補強練習
請領域人員審查命中失敗,而不是只由工程師看相似分數。他要標出真正支援結論的最小段落、必要上下文、可接受替代來源與不能跨越的適用範圍。這些標註回到金題,往後切段或模型更新時都能重跑。
快取要以身分、權限版本、查詢、文件版本與檢索設定組成鍵。任一權限或來源更新就不能命中舊結果。測試刻意讓兩個區域問同一句話,再更新其中一份政策,確認回傳與快取事件都分離,沒有先命中再過濾。
把證據不足納入介面設計。畫面要說目前查了哪些核准來源、缺哪一類資料、應找哪位負責人,不用生成一段看似完整的猜測。分析師若補新文件,走正常擷取、權限與版本流程,再重跑原問題,不能臨時貼文字繞過索引治理。
交付前最後檢查
金題每季由文件擁有者重看生效日期與正確來源,避免評測本身過期。更新答案時保留舊版本與變更理由,讓檢索退步和政策內容改變能分開判斷;不可直接覆寫期望值,造成歷史候選看似突然錯誤。
延伸實作
檢索設定變更要附差異報告。列出新增或移除的文件、切段規則、權限欄位、向量模型、詞彙索引、候選數、重排器與快取版本,再以相同金題比較。對每個新命中與新遺漏抽查來源,確認改善不是因權限放寬或舊版文件重新出現。若命中率上升但禁止金絲雀出現在任何中間層,候選直接淘汰。這份差異報告讓資料更新、模型更新與排序更新不會混成一個難以歸因的發布。
動手實作
建立並評測 Cedar 檢索
替合成規則建立帶中繼資料的索引,用 30 個標準題目比較 4 種檢索版本;只要出現未授權命中就淘汰。
準備項目
- • 建立公開、EU、US 文件與 2 個 canary 字串的本機資料集。
- • 沒有核准向量嵌入服務時,可用模擬向量嵌入或本機確定性的相似度模擬替身。
- • 測試資料清單鎖定文件版本與生效日期。
- • 存取與命中檢查未通過前,不啟用答案評分。
本課產出
資料集清單、附帶權限資訊的文件片段、30 個標準題目、4 種檢索執行、引註驗證器、刪除測試與比較報告。
起始模板: 帶權限的文件片段測試資料
JSONL{"chunkId":"pub_001_00","documentId":"pub_001","tenant":"cedar","audience":["public"],"region":null,"version":3,"effectiveAt":"2026-07-01","deletedAt":null,"title":"Learning budget policy","text":"Managers approve learning spend against the current quarter budget."}
{"chunkId":"eu_004_02","documentId":"eu_004","tenant":"cedar","audience":["employee"],"region":"EU","version":2,"effectiveAt":"2026-06-15","deletedAt":null,"title":"EU learning addendum","text":"Unused approved learning budget may roll into the next quarter. CANARY_EU_771."}
{"chunkId":"us_003_01","documentId":"us_003","tenant":"cedar","audience":["employee"],"region":"US","version":4,"effectiveAt":"2026-08-01","deletedAt":null,"title":"US learning addendum","text":"Managers decide exceptions case by case. This addendum does not define automatic rollover."}
{"queryId":"CDR-09","user":{"tenant":"cedar","audience":["employee"],"region":"US"},"question":"Does unused training budget roll over?","expectedChunkIds":["us_003_01"],"forbiddenChunkIds":["eu_004_02"],"expectedStatus":"evidence_gap"}預期結果
一份能按已授權證據召回率、空結果如實回報、延遲與成本選設定的檢索報告。討論答案說明文字前,證據層已先過關。
留給下一課
保留資料集、權限資料包、標準題目、evidence_gap 與引註驗證器;總整專案會直接沿用這層受管理的知識。
驗收條件
- 01所有設定與使用者測試資料的未授權命中次數都是 0。
- 02選定版本在 30 題標準答案集,達到事先設定的授權來源 top-k 召回目標。
- 03每個事實答案句子引用已包含的已授權文件片段與文件版本。
- 04在測試指定的傳播時間內,刪除索引、快取、候選資料及引註中的內容。
常見故障
故障診間
F1Wrong-region 段落出現在候選版本,雖然最終答案沒寫出來。
- 先檢查
- 檢查排序前候選版本、從工作階段取得的篩選、快取鍵值、重排器輸入與執行軌跡敏感資訊遮蔽。
- 可能原因
- 權限在檢索後才套,或某個快取/重排服務漏掉。
- 修復方式
- 候選版本生成前先授權,所有中間儲存區都保留限制。
- 下次怎麼避免
- 放禁止 canary 文件片段;任何未授權候選版本命中都讓發布 fail。
F2答案很順,標準答案段落卻很少出現在前 k 筆。
- 先檢查
- 檢索獨立評分,按查詢型別、文件片段邊界、中繼資料與排序階段分析漏找。
- 可能原因
- 團隊只看撰寫格式,默許模型依先前知識或推論補洞。
- 修復方式
- 先修資料集、文件切片、查詢、混合檢索或重排,再調產生器。
- 下次怎麼避免
- 檢索門檻是答案層級評測的前置驗收門檻。
F3來源更新後,已被新版取代的規則仍反覆出現。
- 先檢查
- 追上層版本、文件片段版本、索引文件、快取項目與引註解析器。
- 可能原因
- 版本/刪除事件沒傳到所有衍生交付檔案。
- 修復方式
- 用穩定上層 ID、刪除標記、重建索引工作、快取失效與讀取時時效檢查。
- 下次怎麼避免
- 以最大過期時段測更新與刪除傳播。
F4重排提升召回率,延遲卻超過服務目標 2 倍。
- 先檢查
- 按百分位數拆查詢、向量嵌入、關鍵字、重排器、快取與生成時間差。
- 可能原因
- 所有查詢都走昂貴的路徑,沒有判斷歧義或基準版本信心水準。
- 修復方式
- 只有不確定查詢才重排,或量過召回率影響後降低候選版本次數。
- 下次怎麼避免
- 每個檢索設定一起公布品質、延遲與成本。
展示版之後
正式上線前的邊界
- 01文件清單保存負責人、來源、版本、生效日期、權限與刪除狀態。
- 02權限中繼資料傳到文件片段、索引、快取、重排器與引註紀錄。
- 03存取篩選來自可信的工作階段,排序前就套用。
- 04已授權檢索召回率與答案正確性/撰寫品質分開評估。
- 05保留精確來源紀錄,證據不足就明確回空結果或證據不足。
- 06更新與刪除在測過的服務時段內同步所有衍生儲存區。
- 07監控漏找、禁止 canary 命中、時效、延遲百分位數、token 與成本。
- 08已檢索的文字要做提示注入 red 團隊,不能直接影響高權限的脈絡或工具呼叫。
證據類型
資料來源與主張限制
資料來源只支撐本課標示的主張,不代表換一個系統也會得到相同結果。
- [1]Contextual Retrieval 介紹檢索基準 · 帶有文件脈絡的 chunk · BM25 與 reranking
Anthropic · 已發表研究 · 2026-08-20
- [2]File search託管式檢索 · vector stores · 檢索結果處理
OpenAI · 官方文件 · 2026-08-20
- [3]建置 agent 的安全指引prompt injection · 結構化資料邊界 · MCP 核准
OpenAI · 官方文件 · 2026-08-20
- [4]AI Risk Management Framework風險治理 · 衡量方式 · 營運責任
NIST · 官方文件 · 2026-08-20
延伸的 Tenten 資源