Agentic Research
首頁/學習/AI 報告的八道驗收閘門

AI 報告的八道驗收閘門

2026/11/0210 分鐘Bryan Chan最後更新 2026/11/02
這篇屬於學習主題AIAgent品質驗收

AI 報告的八道驗收閘門:如何證明一份 AI 寫的報告可以交貨

AI 能在幾分鐘內生成一份排版整齊的盡調報告,也能生成一份你不敢簽名交付的報告。真正的問題從來不是「寫得快不快」,而是「你憑什麼證明它可以交貨」。

一個真實失敗:8 年財務表全部是「–」,評分器仍給 9.8

我們用 AI 生成港股盡調報告。這類報告的核心是財務數據——讀者會拿著它到披露易(https://www.hkexnews.hk)逐項核對。某次交付前的抽查中,我們發現報告裡那張覆蓋 8 年財務數據的摘要表,每一格都是「–」。而此時,流程末端的綜合評分器已經給了這份報告 9.8 分。

評分器沒有壞。它檢查的是結構:表格存在、行列整齊、沒有溢出、章節齊全——全部通過。它不檢查的,是格子裡到底有沒有內容。這次事件催生了八道驗收閘門:寧可交付慢一點,也不能讓「看起來完成」的報告出門。

為什麼「有 PDF」不等於「可交付」

先看我們自己的數據:近 30 日,17 次交付中,5 篇曾被退回(共 6 次退回事件),一次過關率 70.6%。退回的原因幾乎都不是「AI 寫錯了事實」,而是空表、字體方框、元素重疊、頁尾壓字——生成端全部顯示「成功」,問題只出現在交付那一刻被人眼看見。

gate funnel

「有 PDF」只證明生成管線跑完了。可交付意味著三件事:內容真實存在、版面無損、證據可回查。這三件事都不會寫在生成日誌裡,必須靠獨立的檢查層去證明——這就是閘門存在的理由。

八道閘門逐一道來

八道的順序是固定的:cover → design → tables → footer → area → layout → gates → verify。前七道查事實,第八道才評分,順序不可調換——原因讀到最後一道你就會明白。

empty table

(上圖為 mermaid 草圖,正式配圖由設計師重繪,語法參考 https://mermaid.js.org)

第 1 道 cover:封面品牌色像素 ≥8%

檢查什麼:渲染封面後統計品牌色像素佔比,門檻 8%。為何需要:封面是靜默失敗的高發區——生成引擎升級、色票名稱變更,色塊直接消失,全程零報錯,出來一張白底黑字的裸封面。實際抓到過:一次版面遷移後,封面品牌色整塊沒有渲染,縮圖上「好像有個框」,像素統計直接證明顏色根本沒畫出來。

第 2 道 design:字級、對比度與字體載入

檢查什麼:正文字號下限、文字與背景對比度、CJK 字體是否真的載入。為何需要:PDF 渲染環境少裝一個字體,中文全部變成方框,而生成過程不會有任何錯誤——文字層裡每個字都在,只有畫出來才看得出。實際抓到過:整份中文字體未載入的報告,截圖檢查滿頁「豆腐塊」;若只做文本層校驗,它會被當成正常報告放行。

第 3 道 tables:表格裡必須有真實內容

檢查什麼:表格存在性、行列結構,以及最關鍵的每格填充狀態。為何需要:「–」是合法的佔位符,但一張大表全部是「–」,代表數據源根本沒接上。實際抓到過:5 欄 × 84 格全部「–」的財務摘要表曾經一路綠燈,因為其他檢查只確認「表格畫出來了」。這道閘門上線後,填充率異常的表格直接紅燈,逼你先修數據、再談排版。

第 4 道 footer:頁尾間距用尺量,不用眼睛猜

檢查什麼:每一頁頁尾(頁碼、頁腳)與正文最後一行之間的最小間距。為何需要:頁尾重疊是典型的「肉眼看不出、讀者一定撞上」的缺陷,內容排滿時頁碼直接壓在正文上。實際抓到過:舊版第 5 頁(p5)的頁尾間距只剩 3.5mm,重排後拉開到 18.0mm——這個差距在縮圖上肉眼無法分辨,閘門用座標一量就現形。

第 5 道 area:內頁色帶與安全區,像素 ≥2%

檢查什麼:內頁品牌色區域佔比(門檻 2%)以及內容是否落在頁面安全區內。為何需要:內頁最常見的靜默失敗是「半版空白」——章節只剩標題,內容沒有排進來,版面看起來依然完整。實際抓到過:章節色帶沒有渲染的頁面,靠像素統計抓出「顏色不存在」,而不是被人眼對留白的容忍度糊弄過去。

第 6 道 layout:重疊、裁切與越界

檢查什麼:所有元素的邊界關係——文字框疊文字框、圖表被頁邊裁切、表格超出頁界。為何需要:絕對座標排版下,一處改動會讓另一處悄悄位移,錯誤從不出現在改動的地方。實際抓到過:調整上方章節後,下方圖表的底部被裁掉一條,渲染成圖逐頁檢查才發現——純文本層檢查永遠看不到這類問題。渲染截圖基於 headless Chrome(https://developer.chrome.com/blog/headless-chrome)。

第 7 道 gates:確保每一道都真的跑過

檢查什麼:不檢查 PDF,檢查流程本身——八道是否全部執行、每道 exit code 是否為 0、有沒有人只跑最後一道評分就宣布完成。為何需要:跳道是最大的漏洞,「單跑綜合評分不作準」正是這個教訓的產物。它防住的場景:聚合器發現某次執行只調用了評分器,前置七道一道未跑,直接判定不合格並要求重跑完整鏈路。

第 8 道 verify:評分放最後,因為分數會說謊

檢查什麼:綜合品質評分,把前七道結果換算成分數,用於品質分級與趨勢對比。為何放在最後:評分器看的是結構完整性——表格齊整、章節都在、無溢出,就會給高分。開場那個案例就是鐵證:結構完美、內容為零,9.8 分照樣亮出來。分數是有用的儀表,但只有放在七道事實檢查之後,它才不會淪為假綠燈的來源。

兩次真實攔截

攔截一:頁尾重疊 3.5mm。 舊版報告第 5 頁頁尾與正文間距 3.5mm,該頁內容排滿,頁碼壓在正文最後一行上。人工檢查沒有發現——縮放預覽下這個間距肉眼難辨。footer 閘門用座標量出間距並擋下交付,重排後間距達到 18.0mm,而「最小頁尾間距」從此成為硬性門檻。

攔截二:空表 84 格。 財務摘要表 5 欄 × 84 格全部「–」,綜合評分仍給出 9.8。這份報告若在舊流程下交付,讀者翻到財務章節就會發現核心數據是空的——對一份盡調報告來說,這等於整份作廢。tables 閘門上線後,「結構在、內容空」的表格直接紅燈。

兩次攔截的共同點:生成端全部顯示成功,問題只會出現在交付端。閘門的價值,就是把交付端的發現提前到交付之前。

五步建立你自己的驗收閘門

  1. 列出「絕對不可交付」清單:空表、字體方框、元素重疊、頁尾壓字……每一條都必須可量測——像素、間距、填充率——不寫「美觀」「專業」這類無法執行的形容詞。
  2. 一條對應一道閘門:每道只查一件事,輸出一個 exit code:0 通過、非 0 擋下。不要做「警告模式」,警告會被忽略,exit code 不會。
  3. 順序固定:先事實、後觀感、最後評分:內容為空、數據缺失先擋;再查版面缺陷;綜合評分永遠放最後,且單獨的評分通過一律不作準。
  4. 紅燈即回爐:閘門不通過,就修完重跑整條鏈,不存在「先交付、之後再修」。交付失敗的成本遠高於重跑一遍檢查。
  5. 每次退回,閘門加一條:每一次退回都是一個新增檢查點。你的退回率會先升後降——先升,因為抓得多了;後降,因為同類錯誤不再犯。近 30 日 70.6% 的一次過關率,就是這樣一條條累積出來的。

結語:閘門不是加分器,是防「假綠燈」

AI 把報告的生產成本壓到趨近於零,也讓「看起來完成」的報告產能過剩。9.8 分不是錯,錯的是把它當成終審。八道閘門的設計哲學只有一句話:用機器檢查代替肉眼抽查,用 exit code 代替「我覺得可以」。閘門不會讓報告加分,它只保證一件事——亮綠燈的時候,這份報告真的可以交貨。


給 Designer 的三個圖表建議(交付備註,非正文)

  1. 八道閘門流水線圖:用於「八道閘門逐一道來」開頭,替代 mermaid 草圖。橫向八節點 cover→design→tables→footer→area→layout→gates→verify;前七道灰階並標註「事實檢查」,第八道品牌色標註「綜合評分」;每道下方一行小字標門檻(≥8%、≥2%、18.0mm)。
  2. 空表對照圖:用於「兩次真實攔截」。左側:5 欄 × 84 格表格縮圖,全部灰格「–」,右上角貼綠色「9.8」分數標籤;右側:同一張表填入真實數據後的樣子。視覺重點是「綠燈」與「空表」並置的荒謬感。
  3. 頁尾間距示意圖:用於第 4 道段落。單頁局部放大,兩條水平線分別標正文最後一行與頁碼基線,左側紅色「舊版 3.5mm」、右側綠色「新版 18.0mm」,加毫米刻度強調肉眼難辨。