Drill Library:附引用的知識庫問答子系統
指導教授實驗室自動化研究平台 Drill 的知識庫子系統:文件上傳一次,同時供研究者預覽與 agent 檢索;人與 agent 皆可依庫內文件問答,回答附引用出處。自願參與,子系統獨立完成。
- 期間
- 2026-08 起(8 月受指派,8-26 至 9-10 開發;持續參與平台開發)
- 角色
- 自願參與;子系統獨立完成,於例會報告並依審查意見修改,向指導教授展示
- 技術
- TypeScript、React、Cordis 插件框架、TF-IDF 加中日韓雙字組檢索、工具權限受限的子 agent、markitdown
- 規模
- 5 個套件、4 個 agent 工具、47 項測試;DRCD 測試集 3,493 題評估
書審對應:附件 B-1

需求與難點
Drill 是實驗室建置的全自動研究平台,涵蓋從知識來源到報告的研究流程,原本沒有知識庫元件。需求是:研究資料上傳一次,同時保存原始檔(供人預覽、下載)與 Markdown(供 agent 檢索),多本知識庫並存,不把整份文件塞進對話脈絡,且 agent 的回答必須附出處。
難點有三:中英混寫與簡繁漂移的文本如何檢索;agent 如何在不遞迴、不寫入的前提下存取知識庫;「回答是否真的來自文件」如何量測。
架構:三條路徑
子系統以插件方式擴充平台、不改核心,分成五個套件:核心服務(儲存、轉換、索引、檢索、問答)、瀏覽器閘道(遠端呼叫、上傳、預覽與下載路由)、agent 工具(ask、structure、read、ingest 四個)、librarian 子 agent,以及側欄與整頁介面。
儲存、轉換與索引
- 每份文件同時保存原始檔與 Markdown;Office、PDF、EPUB、HTML 以 markitdown 子行程轉換,另有無相依的文字轉換器作為後援。
- 入庫即重建索引
index.json:大綱、摘要與預先斷詞的段落。查結構與搜尋只需讀一個檔再計分,查詢時不再讀文件、不再重新分詞;索引遺失或過期時於第一次讀取自動重建。 - 索引與問答紀錄存成獨立檔而非資料表,讀取邊界經結構驗證,可重建而非承重。
檢索:TF-IDF 加中日韓雙字組
研究筆記常中英混寫,專案沒有中文分詞器。檢索採 TF-IDF 搭配中日韓雙字組斷詞,不需分詞器即可命中;知識庫標題比對簡繁不敏感。這個設計在後述評估中以對照組量化:對照組只把雙字組換成單字,chunk 與計分公式完全相同,因此差距來自斷詞設計本身。
提問委派與引用
- 問答交給 librarian 子 agent 處理,其工具權限受限(不可再呼叫 ask 或 ingest),因此不會遞迴、不能寫入。
- 回答附引用;點選引用直接開啟被引文件的 Markdown 預覽。
- 主聊天中的 agent 以
library_ask委派給子 agent,接著以library_structure、library_read讀結構與內容;人與 agent 的問答紀錄合流於同一討論串並持久化,agent 提問標示「Agent 提問」。
介面
三區版面:來源|問答|預覽。上傳與預覽、下載路由每次請求重新驗證,檔案路徑不取自用戶端輸入;Markdown 與 PDF 分開預覽,不必進聊天即可閱讀;深連結可還原到指定知識庫與文件。
評估
評估方法於執行前寫定,對實際部署組合量測:資料集為台達電子釋出的繁體中文閱讀理解資料集 DRCD v1.3 測試集(378 篇文章、1,000 段落、3,493 題),模型為實驗室主機上的開源模型。
| 檢索(全部 3,493 題) | Library | 對照組(單字 TF-IDF) |
|---|---|---|
| 標準段落排第一 | 76.8% | 53.7% |
| 標準段落進入送給模型的 8 段 | 98.1% | 87.5% |
| MRR@100 | 0.853 | 0.662 |
| 端對端問答(抽樣 200 題,真實模型) | 結果 |
|---|---|
| 回答包含正確答案 | 96.5%(193/200) |
| 引用到正確段落 | 98.0%(194/198) |
| 回答延遲中位數 | 9.4 秒 |
評估報告載明資料集、抽樣方式與各項指標的計算方法,附 200 題逐題紀錄與可重跑的程式。
測試、文件與審查
- 47 項自動化測試全數通過:核心服務 32、agent 工具 6、UI 9。
- 子系統文件三語版、6 份套件 README、2 份設計決策紀錄。
- 承接 Issue 後於例會報告;reviewer 提出的四項修改要求(對齊 DeepWiki 式三工具設計、入庫時建索引、問答委派子 agent、介面依平台設計語言)全數完成後提交 PR,並向指導教授展示。
影片
流程:側欄入口 → 三區版面 → 雙份保存與 PDF/Markdown 切換 → 頁內問答與引用 → 主 agent 委派 librarian 子 agent → 問答紀錄合流 → 深連結重新整理還原。知識庫內容為本子系統自己的技術文件。





