Domain Knowledge Builder — 領域知識庫生成器
給我 N 篇論文 + 領域名 → 產出一個可查詢的 A 級領域知識庫 skill。 知識庫結構:DAG(5 類型節點 + 10 關係)+ 心智模型 + Query 協議 + 誠實邊界。 品質門:darwin 2.0 的 9 維評分,≥B+ (80) 才算生成成功。
核心心智模型
1. 知識 ≠ 定義堆砌
一個能用的領域知識庫不是把定義/定理逐條搬進來,而是提煉這個領域用什麼鏡片看世界(心智模型),再用知識節點支撐鏡片。問"我的數據流非交換,CP 會怎麼幫我"——純定義堆砌答不出,心智模型驅動的知識庫能推斷立場。所以 ingest 流程必須有心智模型提煉步驟(S5),不是只提取節點。
2. Karpathy 生命週期 × DAG 結構
- Karpathy LLM Wiki 提供「生命週期」:raw(不可變源)→ wiki(LLM 維護)→ SCHEMA(規範)三層 + Ingest/Query/Lint 三工作流。知識庫是會成長的有機體,不是一次提取的快照。
- DAG 提供「結構」:節點間不只是分類,是關係——
guarantees/generalizes/contradicts/depends_on。定理 A 推出定理 B、方法 C 與方法 D 矛盾,這些關係是領域知識的核心,扁平目錄承載不了。 - 融合:Karpathy 管"知識怎麼長"(生命週期),DAG 管"知識怎麼連"(結構)。
3. 生成器必須可控(D7)
meta-skill ≠ 普通 skill 的本質是生成其他 skill——大量 FS 寫、subagent spawn、網路。這必須可控:每次 ingest 可 checkpoint 恢復、darwin 不過門可 git revert、每個節點可追溯(provenance)、同論文重跑產生同 node ID(determinism)。否則 6 個月後不可維護。這四支柱(可回滾/可審計/確定性/預檢)是 generator-skill 合規的標準(darwin 第 9 維 generator 子類)。
何時用 / 何時不用
用:
- "給某專家建一個能回答『專家怎麼看X』+『為什麼(依據)』的顧問 skill"
- "把專家的論文/訪談/部落格變成心智+知識雙引擎"
- "把這幾篇論文變成可查詢的知識庫"
- "給 X 領域建一個 DAG 知識庫"
- "我有 N 篇 PDF,想要一個能推斷立場的領域助手"
路由區分:
- 純領域知識庫(不要專家視角)→ DKB 原模式(
examples/conformal-prediction) - 專家視角(要專家判斷+依據)→ 本擴展(expert-advisor 模式)
不用(路由到其他 skill):
- "什麼是 Split CP?" → 查詢已存在的 CP 知識庫(
examples/conformal-prediction) - "總結這本書" → 用 book-to-skill 直接生成單本書 skill
- "蒸餾一個人怎麼想(不要領域知識)" → 用 nuwa-skill
架構(5 層)
domain-knowledge-skill/
├── SKILL.md # 本文件(meta-skill 入口)
├── schema/schema.md # 知識規範(5 類型 + 10 關係 + D7 可控性)
├── pipeline/ # Ingest/Query/Lint 工作流
│ ├── ingest.md # 7 步流水線契約(S1-S7)
│ ├── query.md # 5 步 DAG 遍歷查詢
│ ├── lint.md # 結構 + Generator 合規檢查
│ ├── run-dag-pipeline.js # workflow 編排腳本
│ └── state/ # D7 執行時
│ ├── init_run.py # UUID + git + run-manifest + preflight
│ └── lint_d7.py # 四支柱 Lint
├── engines/ # 復用的引擎
│ ├── book_to_skill/ # virgiliojr94 提取引擎(technical 模式)
│ ├── darwin-rubric.md # 9 維品質評分(第 9 維雙子類)
│ └── nuwa-validation.md # 領域化三重驗證
├── references/ # 模板(規劃中)
└── examples/
└── conformal-prediction/ # 黃金參照(88 分 A-,懶載入)
7 步 Ingest 流水線(D3 階段性質拆分)
確定性(workflow fan-out) 互動/判斷(subagent chain)
───────────────────── ─────────────────────
S1 提取 ──┬─▶ S2×N 並行 ──┐
└─▶ ... ├─▶ S3 合併 ──▶ S4 導航 ──▶ S5 心智模型 ──▶ S6 驗證 ──▶ S7 組裝 ──▶ darwin 門
│ (contradicts (並行 3) (三重驗證) (fresh) (<4K) (≥B+)
│ 人工確認)
詳細契約見 pipeline/ingest.md。關鍵約束:
- S1 必做 docling preflight(schema §12.4,technical 模式硬依賴)
- S2 節點 ID 遵
<type>-<source>-<canonical-term>(schema §10 Determinism) - S3遇
contradicts/does_not_guarantee邊必須contact_supervisor人工確認 - S5 載入
engines/nuwa-validation.md做三重驗證 - S6/S7 用 fresh-context 子 agent(獨立驗證/評分,禁自評)
- 全程每節點寫 provenance(generated_by_step/run_id/source_span)
品質門(darwin 2.0,9 維)
載入 engines/darwin-rubric.md,fresh-context 子 agent 評分:
| 維度 | 權重 | 關注點 |
|---|---|---|
| ①結構完整性 ②清晰度 ③內容完整性 ④可操作性 | 15%×4 | frontmatter/工作流/覆蓋/可執行 |
| ⑤準確性 ⑥一致性 | 10%×2 | 定理原文精確/無斷裂引用 |
| ⑦執行效率 ⑧強健性 | 8%/7% | token 預算/誠實邊界 |
| ⑨元技能合規 | 5% | generator-skill 子類:四支柱 |
第 9 維雙子類(oracle 洞察):query-skill(CP 型,唯讀)vs generator-skill(本 skill 型,允許受控寫入但須滿足四支柱:可回滾/可審計/確定性/預檢)。這讓生成器能公平過品質門。
棘輪機制:darwin <B+ → git revert 最後 stage → 診斷低分維度 → 修復重評。連續 3 輪無改進 → 提議探索性重寫。
5 個參考源的去向
| 源 | 去向 | 複用方式 |
|---|---|---|
| Karpathy LLM Wiki | schema/ + pipeline/ | 乾淨繼承:3 層架構 + Ingest/Query/Lint 生命週期 |
| book-to-skill | engines/book_to_skill/ | 乾淨 vendor:提取引擎(technical 模式保留公式) |
| nuwa-skill | engines/nuwa-validation.md | 方法論提煉:三重驗證(去 expression DNA) |
| darwin-skill | engines/darwin-rubric.md | 雙源重構:validation-report 的 9 維 + 舊版 8 維對照 |
| dag-executor | 僅哲學參考 | wave-based 並行 + 檔案鎖(實現用 pi workflow/subagent) |
examples/conformal-prediction(黃金參照)
懶載入——不參與預設 skill 路由,顯式請求時啟用:
- v1.1.0 / 50 節點 / 138 邊 / 0 斷裂 / darwin 88 分(A-)
- 3 篇來源(Angelopoulos 2022 / Teneggi 2025 / Min 2026)
- 用法:(1) 新領域 ingest 時作為品質基準;(2) 用戶顯式查"共形預測"時載入
約束與誠實邊界
硬約束:
- docling 是 technical 模式硬依賴(學術論文沒公式=沒價值,不可犧牲)
- SKILL.md body <4K tokens(compaction 從末尾截斷)
- 所有節點 provenance 必填(新 ingest)
- generated skill 路徑只用 skill-root-relative(防連結斷裂)
做不到:
- 蒸餾不了直覺——框架能提取,靈感不能
- 覆蓋不了領域所有論文——只覆蓋用戶提供的來源
- 自動判斷不了來源品質——garbage in garbage out(低品質論文 → 低品質知識庫)
- 替代不了專家判斷——contradicts 邊必須人工確認
已知局限:
- docling 版本漂移可能靜默降質提取(無測試捕獲)
- canonical-term 的 LLM 抽取非完全確定性(同論文兩次抽取可能差 hash,Lint 會報告)
- 大論文(>50K tokens)提取成本高(建議分批 ingest)
快速上手
用戶: 給我建一個 diffusion-models 領域知識庫,論文在 ~/papers/ddpm.pdf, ~/papers/score-sde.pdf
→ 本 skill:
1. 確認領域 + 來源 + preflight docling
2. 跑 7 步 pipeline(pipeline/ingest.md)
3. darwin 評分,≥B+ 則交付生成的 skill 到 ~/.pi/agent/skills/diffusion-models/
4. 用戶可後續查詢該生成的 skill
詳見 pipeline/ingest.md 的完整契約。
本 meta-skill 版本:v0.1 | 5 源複用 + D7 可控性 + darwin 2.0 品質門 | 黃金參照:examples/conformal-prediction (88/A-)