name: knowledge-engineering description: "工業級RAG切片工具「可落地、可量化、可最佳化」,將RAG知識庫長文件拆解為語義完整、檢索就緒的原子化知識切片,內建多層質量門禁(校驗→審計→檢索可達性評估),確保切片可用性與RAG檢索命中率。" keywords: [ "rag", "切片", "知識庫", "語義分割", "檢索增強生成", "chunking", "文件拆分", "質量門禁", "embedding-hint", "self-check", "PurePythonEmbedder", "retrieval-evaluation", "cross-refs", ] version: "1.0.13" metadata: domain: "knowledge-engineering" author: "智慧半島" platform: windows: full linux: full macos: full openclaw: requires: bins: - python emoji: "📚"
文件結構:SKILL.md = 核心執行時指令(Agent 執行必讀),REFERENCE.md = 擴充套件參考與運維細節。
| 級別 | 內容 | 適用場景 |
|---|---|---|
| L1 | 核心紅線 + 速查工作流 | 首次載入,建立安全邊界和執行路徑 |
| L2 | §0 預處理CoT → §4 自檢協議(核心執行流程) | 執行切片任務時必須完整遵循 |
| L3 | REFERENCE.md(詳細表格/完整規則/FAQ/運維細節) | 遇到邊界情況、異常或需要完整規則時按需讀取 |
🟢 最小可用示例:
python scripts/slice_generator.py input.md slices/。完整工作流見 §0-§11。
從原始檔到檢索就緒切片的完整路徑,5 步閉環:
| 步驟 | 動作 | 工具/方式 | 輸出 | 對應章節 |
|---|---|---|---|---|
| ① 分析 | 結構掃描 + Token預算 + 熔斷預演 + 目錄決策 | <analysis> CoT |
切片計劃清單 | §0 |
| ② 計劃 | 自動生成分類路由與拆分方案 | slice_generator.py --json |
JSON 切片計劃 | §8 |
| ③ 生成 | 逐切片填充語義內容 + 寫入磁碟 | Agent 按 §3 模板生成 | 帶完整 YAML 的 .md 切片 | §3, §6-7 |
| ④ 校驗 | 單切片完整性 + 跨切片審計 | validate_slice.py --fix → batch_audit.py |
致命項重生成 / 警告標記 | §4, §8 |
| ⑤ 終檢 | 檢索可達性評估(R@1/R@5/MRR) | evaluate_retrieval.py --fix |
檢索報告 + 死片/弱片修復 | §8 |
長文件切片、批次知識庫匯入、檢索評估和斷點續傳必須採用 Init → Step → Poll。該協議不替代標準工作流,而是把標準工作流拆成可恢復、可驗證的小步,防止 Token 溢位、長時間生成中斷或部分切片失敗後無法歸因。
| 階段 | 動作 | 輸出 | 失敗回退 |
|---|---|---|---|
| Init | 完成結構掃描、Token 預算、熔斷點預演、切片計劃生成和輸出目錄確認 | task_id、切片計劃、總切片數、批次大小、進度 0/N |
原始檔不可讀、計劃為空或輸出目錄衝突時停止,等待使用者確認 |
| Step | 每次只生成 1-2 個切片,立即寫入、執行 validate_slice.py --fix 並記錄 SELF_CHECK |
已生成切片 ID、校驗結果、下一批切片範圍 | 單片校驗失敗時重生成該片;仍失敗則暫停並輸出失敗欄位 |
| Poll | 彙總已生成/已驗證/失敗/待生成數量,必要時執行 batch_audit.py 或檢索抽檢 |
running/success/failed/paused、進度百分比、失敗清單、續跑入口 |
中斷後從最後一個 SELF_CHECK 通過的切片繼續,不得覆蓋已驗證切片 |
執行約束:
batch_audit.py 和 evaluate_retrieval.py,並輸出審計/檢索驗證證據。作為 RAG/知識庫管線的核心 ETL 引擎,將長文件拆解為語義完整、物理隔離、自包含、檢索就緒的 L0 級原子切片。核心使命:在嚴格執行目錄隔離的同時,確保切片既是獨立的檢索單元,又是原文語義的無損投影。
this, it, 上述, 如下 等依賴外部上下文的指代詞。> [!CAUTION] 警告,並在 YAML 中標記 status: deprecated。若版本號未知,寫"某個版本"並標記 human_review_required: true。embedding_hint、qa_pairs、hybrid_keywords、tags 等語義後設資料必須由 Agent 自身推理生成。python_executor。rm -rf/del /f /s 等遞迴強制刪除、git destructive 操作、資料庫 DROP/TRUNCATE 等命令,必須輸出完整命令預覽並等待使用者顯式確認。| 依賴項 | 最低版本 | 安裝命令 | 說明 |
|---|---|---|---|
| Python | 3.8 | — | 全平臺通用 |
| sentence-transformers | — | pip install sentence-transformers |
檢索評估(§8),首次執行自動下載 ~90MB;缺失時自動降級 PurePythonEmbedder |
| numpy | — | pip install numpy |
數值計算支撐 |
| pyyaml | — | pip install pyyaml |
YAML 切片後設資料解析 |
一鍵安裝:pip install sentence-transformers numpy pyyaml
在生成任何切片檔案之前,必須先在 <analysis> XML標籤內完成以下推理(此標籤內容不計入最終切片輸出):
核心四步(必須完成):
⚠️ 未完成
<analysis>直接輸出切片視為嚴重違規。🛑 STOP CHECKPOINT:
<analysis>完成後必須暫停,將分析結果摘要輸出給使用者確認。確認後開始生成切片檔案。禁止跳過確認直接進入批次生成。💡 完整 10 步 CoT 細節(含命令有效性預檢、Token 估算公式等)見 REFERENCE.md §1-§2。
{Source-ID}/ 資料夾作為所有輸出的根容器。version, author, last_updated,注入到每個切片的 YAML 頭中。在 {Source-ID}/ 內部按內容屬性路由:api/(函式簽名/類定義)、config/(配置項說明,與 api/ 互斥)、guide/(操作指南/故障排查)、concepts/(架構原理/術語定義)、misc/(Changelog/FAQ/附錄)、multimodal/(多模態元素 ≥5 且佔比 ≥25% 時建立)。
動態降級規則:某分類下切片數 ≤2 且總字數 <1500 字 → 合併至根目錄,檔名保留分類字首;緩衝區 1300~1700 字按切片數和各片字數綜合判斷。單切片不建子目錄。完整降級策略(含防抖動、結構穩定性)見 REFERENCE.md §1。
version_matrix.md 索引切片(含版本差異摘要表)。採用 "語義優先,字數兜底,回溯保護" 三重判定機制。
| 優先順序 | 觸發條件 | 執行動作 |
|---|---|---|
| P0 | 獨立 API/類/配置項 | 立即切分為獨立檔案。超長示例程式碼(>40行)獨立為 {prefix}_examples.md 切片 |
| P1 | 並列結構 (Step/List) | 每個頂層步驟/條目獨立成切片 |
| P2 | 語義段落自然邊界 | 在段落/章節交界處切分,禁止在句子中間切分 |
| P3 | 字數軟上限觸發 | 尋找最近語義邊界切分。回溯保護:若邊界在程式碼塊/表格內,回溯至該塊起始處;回溯後 >1500 字則整體移至下一切片 |
字數軟上限:純文本 700 字 / 程式碼 500 字+40 行 / 混合內容加權 (文本字數×1.0 + 程式碼字數×1.4 + 表格單元格數×0.3) / 內容段數。
多模態切分策略、自包含轉換 8 條完整規則見 REFERENCE.md §1-§2。
每個切片必須嚴格遵循 YAML + Markdown 模板。14 個必填欄位:title, source_id, category, index, version, status, tags, embedding_hint, structural_context, hybrid_keywords, cross_refs, qa_pairs, multimodal_refs, human_review_required。正文必須覆蓋:概念定義 → 使用場景 → 核心內容 → 注意事項 → 相關連結。
完整模板及後設資料欄位精化規則(含 embedding_hint ≤200字 + 實體名、structural_context 格式、hybrid_keywords 泛化詞排除、qa_pairs 唯一性驗證)見 REFERENCE.md §3。
每個切片寫入磁碟後,必須立即執行校驗。命中任何 🔴 致命項 → 立即重生成該切片直至通過。
重新讀取剛寫入的檔案,檢查 14 個必填欄位是否全部存在。若檢測到外部水印覆蓋標準 YAML 塊,必須強制追加第二個 --- 塊寫入完整標準後設資料。校驗失敗立即重寫,禁止延遲處理。
| 級別 | 含義 | 處理方式 |
|---|---|---|
| 🔴 致命 | 檢索或語義完整性被破壞 | 立即停止當前批次,重生成該切片 |
| 🟡 警告 | 影響質量但不致命 | 標記 human_review_required: true,允許繼續 |
| 🟢 建議 | 規範合規性 | 記錄但允許通過 |
🔴 致命項(必須重生成):目錄隔離違規 | 語義完整被破壞(程式碼塊/表格/列表截斷) | 零指代違規 | 事實保真失敗(原文關鍵數值/引數/錯誤碼未被保留) | YAML 14 欄位缺失。
完整檢查項(含 🟡 警告 10 項、🟢 建議 3 項、自檢註釋格式)見 REFERENCE.md §4。
當預估切片數 > 10 或總 Token 接近上下文視窗 70% 時觸發分批。
🔴 CHECKPOINT:觸發分批後必須暫停,先輸出
<analysis>摘要和切片清單預覽,等待使用者確認後再逐批(每批 3~5 個切片)生成。
每批結束後強制追加批審計註釋(索引連續性/孤立切片/大小異常),全部批次完成後強制執行終結校驗(索引連續性/cross_refs 有效性/廢棄命令檢測)。終結校驗不通過不得聲稱任務完成。
每片生成後逐項自檢五維(必須全部 ✅):上下文自足性(模組錨定/術語本地定義)、示例可執行性(import 補全/I/O 標註/環境宣告)、知識層級(五段完整)、負面資訊(限制/邊界/陷阱顯式化)、檢索訊號(qa_pairs 覆蓋 how-to/what-is/troubleshooting 三類意圖)。
完整檢查表格(含合規/違規示例)見 REFERENCE.md §4。
| 維度 | 檢查項 | 失敗特徵 |
|---|---|---|
| 事實保留 | 數值/引數/錯誤碼/路徑/命令逐項與原始檔核對 | YAML fact_violations 非空 |
| 隱含假設 | 環境/許可權/前置依賴/預設值/互斥關係五類均已顯式宣告 | 正文含模糊限定詞("一般"/"通常")但未標註條件 |
| 因果鏈 | 標註規則:起點(觸發條件)→ 中間(轉換邏輯)→ 終點(預期結果) | 缺少任一環節導致步驟斷鏈 |
| 檢索消歧 | 名稱空間字首/引數特徵/版本標記/場景限定均已嵌入 | 同名概念跨切片 keyword 相同 |
| 精度自檢 | batch_audit.py 報告同名衝突=0、語義重疊=0、泛化詞殘留=0 |
衝突數 > 0 或泛化詞未淨化 |
完整驗證規則(含事實型別檢測方法、隱含假設標註格式、消歧策略表)見 REFERENCE.md §5。
🩺 症狀→指令碼速查(無需通讀全文):
| 症狀 | 執行 | 章節 |
|---|---|---|
| 單切片 YAML 缺欄位 / 內容不規範 | python scripts/validate_slice.py <file> --fix --json |
§8.2 |
| 批次切片索引不連續 / 死鏈 | python scripts/batch_audit.py <dir> --fix |
§8.3 |
| 需要生成切片計劃 JSON / stub | python scripts/slice_generator.py <src> <out> --stubs --json |
§8.4 |
| 檢索評估:想知道 R@1/R@5/MRR | python scripts/evaluate_retrieval.py <dir> --fix |
§8.5 |
| 全域性索引重排(插入/刪除切片後) | python scripts/slice_generator.py --renumber <dir> |
§8.4 |
| 不確定當前環境平臺/模型能力 | python scripts/platform_detect.py |
§8.6 |
| 計劃中斷,需要恢復 | python scripts/slice_generator.py <src> <out> --resume |
§8.4 |
標準工作流:slice_generator.py --json → Agent 逐切片填充 → validate_slice.py --fix(每片)→ batch_audit.py(每批/全部)→ evaluate_retrieval.py --fix(終檢)。
各指令碼詳細用法(引數說明、呼叫時機、輸出格式)見 REFERENCE.md §6。
使用者操作:說"把 xxx.md 切片"即可。Agent 分析 10~30s → 確認計劃 → 逐批生成 → 驗收結果。支援增量追加、先看計劃、從 docx 開始等常見操作。
能力邊界:支援 md/txt/yaml/json/PDF,不支援圖片直接切片/資料庫/動態網頁。完整使用者指南(含實操案例、FAQ)見 REFERENCE.md §7;能力邊界細節見 REFERENCE.md §9;更新記錄見 REFERENCE.md §11。
7w4.net收錄了海量優質技能外掛。
所有錯誤資訊必須遵循三段式:[型別]: 發生了什麼 → 原因: 為什麼發生 → 操作: 如何修復。
| 錯誤型別 | 症狀 | 處理方式 |
|---|---|---|
| 原始檔不可讀 | 切片計劃為空、檔案不存在或無許可權 | 驗證路徑可達性;網路驅動器走 python_executor |
| 切片數異常 | 實際生成數與計劃不符 | slice_generator.py --json 獲取修正計劃 |
| 校驗致命失敗 | validate_slice.py 返回 FAIL |
--fix --json 輸出完整日誌,定位後重生成 |
| 索引不連續 | batch_audit.py 報告 index 跳躍 |
列出缺失索引,--resume 斷點續傳 |
| 死鏈 | cross_refs 引用不存在 |
batch_audit.py --fix 自動檢測並修復 |
| 依賴缺失 | ModuleNotFoundError |
pip install 後重試;評估層自動降級 PurePythonEmbedder |
| 檢索死片 | R@1=0 | 重寫 embedding_hint 加入正文精確關鍵詞 |
| Token 溢位 | 生成中斷、上下文超限 | 分批模式,每批 ≤2 片 |
| 編碼錯誤 | 切片中文變亂碼 | 檢測實際編碼後重新以 UTF-8 另存 |
完整異常處理(含靜默失敗防護清單、通俗錯誤速查指南、精確處理命令)見 REFERENCE.md §12。
| # | 禁止行為 | 正確做法 |
|---|---|---|
| 1 | 跳過 <analysis> 直接生成切片 |
必須完成 §0 CoT 並通過 CHECKPOINT 確認 |
| 2 | 用指令碼模板生成後設資料(語義空洞導致檢索命中率低) | Agent 逐片手工填充 embedding_hint/qa_pairs/hybrid_keywords |
| 3 | 未完成 analysis 就寫檔案 / 單切片塞全部內容 | 分批協議 + §2 拆分閾值 |
| 4 | 忘記校驗(低質量切片流入下游) | 每片寫入後立即 validate_slice.py --fix,每批後 batch_audit.py |
| 5 | 假設閱讀順序(切片被跨順序檢索時上下文斷裂) | 每片自包含:術語定義 + 前置依賴宣告 + 版本號 |
完整 13 條反模式清單(含症狀診斷、危害說明)及 FAQ 見 REFERENCE.md §8。
Windows / Linux / macOS 三平臺完全支援。關鍵約束:網路驅動器用 python_executor;evaluate_retrieval.py 三層嵌入降級路由(SBERT → 自動安裝 → PurePythonEmbedder);所有指令碼使用 pathlib.Path。詳見 REFERENCE.md §10。
這個工具質量不錯,能把長文件自動拆成適合 RAG 知識庫檢索的小片段,自帶多層檢查確保切片質量,還能自動評估檢索效果。文件分層清晰,新手有快速入門指南,深入有詳細參考。不足的是說明書本身有點長讀起來費勁,另外對圖片、圖表等多模態內容的處理能力比較有限。總體來說是一款認真做的專業工具,適合需要整理技術文件的使用者使用。