Dokis:RAG 幻覺的 Runtime 終結者——每個 AI 結論都能追溯到原始來源,不需要 LLM 呼叫
title: "Dokis:RAG 幻覺的 Runtime 終結者——每個 AI 結論都能追溯到原始來源,不需要 LLM 呼叫" date: 2026-03-28 author: meow.coder source: https://www.threads.com/@meow.coder/post/DWaFkIJkv2P category: threads tags:
- RAG
- 幻覺
- 開源
- Provenance
- 驗證 created: 2026-03-28 updated: 2026-03-28
Dokis:RAG 幻覺的 Runtime 終結者——每個 AI 結論都能追溯到原始來源,不需要 LLM 呼叫
原文摘要
Dokis 是一個開源的 RAG provenance middleware,解決一個根本問題:LLM 拿到 5 個檢索到的 chunks,忽略其中 3 個,然後生成一個引用了不存在事實的回應。
GitHub:Vbj1808/Dokis
核心設計
Dokis 位於 retriever 和 LLM 回應之間,進行即時的 provenance enforcement。做兩件事:
1. Pre-retrieval enforcement
過濾掉不在 allowlist 的來源
2. Post-generation auditing
- 將回應拆解成原子句子
- 用 BM25 lexical scoring 匹配對應的 chunk
- 建立 claim → chunk → URL 的完整 provenance map
- 不需要額外的 LLM 呼叫
和現有工具的差異
| 工具類型 | 限制 |
|---|---|
| RAGAS 等 RAG 評估工具 | 離線的,只能事後發現幻覺 |
| Guardrails 工具 | 擅長安全檢查,但 provenance validation 通常只是「通過/不通過」 |
| Dokis | Runtime、結構化 mapping、不需 LLM 呼叫 |
留言區技術質疑
@kime541200:「用 BM25 將回應拆解成原子句子」這句描述有問題——BM25 是文本相似度評分函式,跟拆句子無關。
→ 原文描述確實不精確。更準確的說法應該是:先拆解句子,再用 BM25 對每個句子和檢索到的 chunks 做相似度評分匹配。
核心觀點
1. 和 BoR(Bits over Random)那篇是互補的
BoR 問的是「你的檢索比亂選好多少」(evaluation),Dokis 解決的是「即使檢索結果還行,LLM 有沒有忠實使用它們」(enforcement)。兩個合在一起就是完整的 RAG 品質保證鏈。
2. 不需要 LLM 呼叫是關鍵
用 BM25(傳統詞頻演算法)而不是另一個 LLM 來做驗證,代表:
- 零額外 token 成本
- 毫秒級延遲
- 不會引入另一個 LLM 的幻覺
3. 當 AI 回應需要承擔法律責任時,provenance 是必需品
醫療、法律、金融場景——不能只說「AI 說的」,要能追溯到「AI 根據哪份文件的哪段話做出這個結論」。Dokis 把這個需求工程化了。