tw-legal-rag ⚖ mcp-taiwan-legal-db
兩套判例檢索工具的深入比較
兩者常被當成競品二選一,實際上是同一檢索生態系中的互補元件——一個負責「語義召回相似判決」,另一個負責「精確取回官方原文與法規」。本報告拆解其判決檢索機制、資料來源與適用場景。
先講最關鍵的發現
在逐項比較前,先釐清一個容易誤解的關係:這兩個 repo 背後其實共用同一套後端與 CLI。
它們不是競品,而是「語義層」與「官方層」的互補堆疊
比對端點與可執行檔名稱後可確認三條連結——若你已安裝 mcp-taiwan-legal-db,等於同時擁有了 tw-legal-rag 的檢索能力:
tlr.dr-lawbot.com/mcp
=
你本機已連線的 MCPdr-lawbot
twlegalrag
=
安裝 mcp-taiwan-legal-db 時附帶的twlegalrag.exe
作為 hybrid retrieval 檢索層
兩套工具的身分卡
tw-legal-rag
以自然語言檢索台灣法院判決的開源工具,把海量判決預先向量化,主打「白話找相似案例」。
- 定位判決語義檢索(CLI+REST+遠端 MCP)
- 資料來源Legal Detective TLR 端點
約 2,200 萬筆判決(已結構化+向量化)README 宣稱值 - 涵蓋僅判決(無法規、無憲法解釋)
- 介面
search/pack/health/check;REST/v1/search、/v1/fulltext - 依賴極輕:
httpx/typer/rich - 授權MIT · 不呼叫 LLM、不產生法律意見
mcp-taiwan-legal-db
讓 AI 代理查詢台灣官方法律資料庫的 MCP server,一站涵蓋判決、法規與憲法解釋,回傳結構化原文。
- 定位綜合官方法律資料 MCP server
- 資料來源司法院、法務部、憲法法庭
官網即時查詢+本機快取 - 涵蓋判決+法規 11,700++憲法(釋字 813/憲判 55)
- 介面8 個 MCP 工具(見下方比較表)
- 依賴FastMCP+httpx+Playwright(WAF fallback)+SQLite
- 授權程式 MIT/憲法資料 CC0 · 不呼叫 LLM
判決檢索的核心分野
兩者對「搜尋判例」給出的答案完全不同層次——這是整份報告最該記住的一組對照。
召回相似 · SEMANTIC / RECALL
「不知道字號,用白話講情境」
以向量語義比對,找出「概念相似但用詞不同」的判決,不必輸入正確關鍵字或案號。
適合:找類似案例、案例研究、法律諮詢初探、探索性檢索。
精確取原文 · PRECISION / AUTHORITATIVE
「知道關鍵字/案號,要官方原文」
直接查詢司法院官網,以關鍵字或案號精確定位,回傳拆解好的結構化欄位。
適合:引用查證、抓判決書原文、需要權威官方來源與可信引用。
逐項比較表
| 維度 | tw-legal-ragtwlegalrag / dr-lawbot | mcp-taiwan-legal-dblawchat-oss |
|---|---|---|
| 判決檢索方式 | 語義向量為主(hybrid),另支援 keyword / phrase | 關鍵字/案號精確查詢;遇 F5 WAF 自動 fallback 到 Playwright。非向量/RAG |
| 判決資料源 | Legal Detective TLR(約 2,200 萬筆,已向量化) | 司法院 judgment.judicial.gov.tw 即時查詢 |
| 涵蓋範圍 | 僅判決 | 判決+法規 11,700++憲法(釋字 813/憲判 55) |
| 搜尋回傳欄位 | citation_id/text/url、fulltext_excerpt、case_history(上訴鏈)、allowed_citations | case_id, court, date, main_text, facts, reasoning, cited_statutes, cited_cases, source_url |
| 快取/離線 | 全在雲端,本機零索引 | 判決/法規即時查+SQLite 快取(判決 30 天);憲法解釋離線預打包 |
| 對外介面 | CLI + REST API + Remote MCP | MCP(8 tools) |
| MCP 工具 | 單一語義檢索端點(透過 tlr.dr-lawbot.com/mcp) | search_judgments、get_judgment、query_regulation、search_regulations、get_interpretation、get_citations… |
| 技術棧 | Python(極輕量 client) | Python+FastMCP+Playwright+SQLite |
| 是否呼叫 LLM | 否(純檢索) | 否(純檢索) |
| 授權 | MIT | 程式 MIT/憲法資料 CC0 |
本機實測:語義檢索的實際效果
用 twlegalrag CLI 以一句白話(非關鍵字、非案號)查詢,驗證語義檢索的召回能力。
該用哪一個?
選 tw-legal-rag / dr-lawbot
- 只有案情描述、不知道確切字號時
- 要大量找「概念相似」的類似案例
- 諮詢初探、案例研究、判決趨勢探索
- 想要零本機索引、輕量雲端檢索
選 mcp-taiwan-legal-db
- 需要法規條文檢索(tw-legal-rag 沒有)
- 要抓判決書官方原文與結構化欄位
- 引用查證,需權威來源與正確字號
- 查憲法解釋(釋字/憲判,可離線)
對 law-powers 技能包的建議
兩個都留,分工使用
判例檢索預設走 dr-lawbot:search_bundle(語義召回,legal-research 技能已定為預設入口);查法規條文、抓判決官方原文走 taiwan-legal-db(精確取回)。兩者互補而非取代。
法規檢索只能靠 mcp-taiwan-legal-db
tw-legal-rag 沒有法規庫;法規條文須走 taiwan-legal-db 的 search_regulations / get_pcode,釋字憲判走 search_interpretations,此路徑非它不可。
用「語義找案 → 官方驗證」的兩段式流程
先用語義檢索召回候選案號,再用 get_judgment 抓官方全文確認字號與原文,恰好落實 AGENTS.md 的「嚴格引用驗證」防幻覺原則。
語義檢索走原生 MCP,不走 CLI(防幻覺關鍵)
實測同一題、同參數(read_top=3)下,兩者查出的判決逐筆相同(同一後端);差別在引用閘門:CLI(twlegalrag pack)會把未讀取理由書的判決也列入 allowed_citations,MCP dr-lawbot:search_bundle 則正確歸入 unread_candidates。故技能一律走 MCP;若改用 CLI,務必令 read-top = 檢索筆數。