前言¶
自建 RAG 知识库时,常见做法是按固定字数或段落机械切块,再直接写入向量库。长文档里一旦出现跨段指代、被截断的代码块,或缺少检索用元数据的碎片,召回时往往「能搜到但答不对」,也很难判断是切片策略还是 embedding 的问题。
下面介绍 SkillHub 上的 knowledge-engineering(当前可安装版本 v1.0.13,作者 智慧半岛)。它把 Agent 当成知识库 ETL 控制器:在语义边界上拆文档、按目录隔离输出、用脚本做校验与检索评估,把「可落地、可量化、可优化」写进标准工作流,而不是只给一段泛泛的 chunking 提示词。
这是什么¶
knowledge-engineering 是遵循通用 SKILL.md 格式的 Agent Skill,定位是「RAG 知识库原子化切片控制器」:将长文档拆成语义完整、物理隔离、自包含、检索就绪的 L0 级原子切片,并内置 校验 → 审计 → 检索可达性评估 多层质量门禁。
官方线索地址为 https://api.skillhub.cn/user_741dc82b/knowledge-engineering;该 API 页面目前无法直接浏览(HTTP 405),SkillHub 站点上对应的 @user_741dc82b/knowledge-engineering 也已显示下线。商店中仍可安装同名技能 @indiv-ebandao/knowledge-engineering,版本与包内说明一致为 1.0.13,下文安装与用法均以该包为准。
核心功能¶
以下能力均来自 v1.0.13 包内 SKILL.md 与配套脚本说明。
标准五步闭环¶
| 步骤 | 动作 | 主要手段 | 输出 |
|---|---|---|---|
| ① 分析 | 结构扫描、Token 预算、熔断预演、目录决策 | <analysis> 预处理思维链(§0) |
切片计划 |
| ② 计划 | 分类路由与拆分方案 | slice_generator.py --json |
JSON 切片计划 |
| ③ 生成 | 按模板写入语义内容与 YAML | Agent 按 §3 生成 | 带 14 个必填字段的 .md 切片 |
| ④ 校验 | 单片完整性 + 跨片审计 | validate_slice.py --fix、batch_audit.py |
致命项重生成 / 警告标记 |
| ⑤ 终检 | 检索可达性 | evaluate_retrieval.py --fix |
R@1、R@5、MRR 及死片修复 |
切片规则与输出契约¶
- 目录绝对隔离:每个源文件对应
{Source-ID}/目录,禁止切片散落在输出根目录。 - 语义优先、字数兜底、回溯保护:纯文本约 700 字、代码约 500 字等软上限;不得在代码块、表格、步骤列表中间硬切。
- 零指代、禁止破坏性改写:切片需自包含,关键参数与错误码须与原文一致。
- YAML + Markdown 模板:每片含
title、embedding_hint、qa_pairs、hybrid_keywords、cross_refs等 14 个必填字段,服务混合检索与质检。 - 二级目录路由:按内容归入
api/、config/、guide/、concepts/、misc/、multimodal/等(含动态降级规则)。
长任务与防中断¶
大批量或超长文档须走 Init → Step → Poll:先出计划与用户确认,再小批量生成(超大文档每批最多 2 片),每片写入后立即校验;支持 --resume 断点续传,终交付前必须跑 batch_audit.py 与 evaluate_retrieval.py。
环境依赖¶
运行脚本需要 Python 3.8+;检索评估建议安装 sentence-transformers、numpy、pyyaml(缺失时评估层可降级为 PurePythonEmbedder)。Skill 明确要求 不得调用外部 LLM API 生成切片正文或元数据,元数据由当前 Agent 推理填写。
安装与启用¶
方式一:让 Agent 按 SkillHub 文档安装¶
在对话中发送(内容来自 SkillHub 技能页):
请根据 https://skillhub.cn/install/skillhub.md,安装 @indiv-ebandao/knowledge-engineering。
若你仍持有旧命名空间,线索中的写法为 @user_741dc82b/knowledge-engineering;该路径在站点上已不可用,请改用上面的 indiv-ebandao 命名空间。
方式二:SkillHub CLI¶
先确认 CLI(参见 SkillHub 安装说明):
command -v skillhub && skillhub --version
安装到当前 Agent 的 skills 目录(必须使用 --dir,否则默认 ./skills/ 可能不会被 IDE 加载):
skillhub install knowledge-engineering --namespace indiv-ebandao --dir ~/.cursor/skills/
常见路径(摘自官方安装文档):
- Cursor:
~/.cursor/skills/ - Claude Code:
~/.claude/skills/ - Codex:
~/.codex/skills/或项目下.agents/skills/
安装后重启或刷新 Agent,使 knowledge-engineering 进入可用技能列表。Windows / Linux / macOS 在包元数据中均标记为完整支持。
典型用法¶
最小命令示例¶
包内给出的最小可用入口如下,用于从单文件生成切片目录结构:
python scripts/slice_generator.py input.md slices/
在已启用本 Skill 的 Agent 工作区中,上述 scripts/ 指技能包内的脚本路径(安装后位于对应 skills 目录下的 knowledge-engineering 包中)。
推荐完整流水线¶
- 生成计划与可选 stub:
python scripts/slice_generator.py <源文件.md> <输出目录> --stubs --json
-
Agent 按 §0 完成
<analysis>并经用户确认后,逐片填充 §3 模板内容写入磁盘。 -
每片校验、批量审计、检索终检:
python scripts/validate_slice.py <切片文件> --fix --json
python scripts/batch_audit.py <输出目录> --fix
python scripts/evaluate_retrieval.py <输出目录> --fix
自然语言触发¶
用户侧只需说明意图,例如:「把 xxx.md 切片」。Agent 应先分析并展示计划(约十到三十秒量级),待确认后再分批生成;也支持「先看计划」「从 docx 开始」等变体,具体边界见包内 REFERENCE.md。
症状速查¶
| 症状 | 建议命令 |
|---|---|
| YAML 缺字段或格式问题 | python scripts/validate_slice.py <file> --fix --json |
| 索引不连续、死链 | python scripts/batch_audit.py <dir> --fix |
| 需要 R@1 / R@5 / MRR | python scripts/evaluate_retrieval.py <dir> --fix |
| 任务中断 | python scripts/slice_generator.py <src> <out> --resume |
适用场景与注意¶
适合谁:需要把技术手册、API 文档、运维指南等长 Markdown/文本(还支持 txt、yaml、json、PDF 等,见 §9)导入 RAG,且希望切片质量可审计、检索效果可量化的团队或个人。
不太适合:指望技能自动爬动态网页、直接切数据库表、或对图片做 OCR 级多模态理解——这些在能力边界中明确不支持。
使用注意:
- 未完成 §0 的
<analysis>与用户确认就批量写文件,属于文档定义的严重违规。 - 用脚本模板批量填
embedding_hint、qa_pairs等会被视为反模式,检索命中率可能下降。 - 涉及网络盘路径(如 Windows 映射盘)时,优先用 Skill 要求的
python_executor等方式读写,避免静默失败。 - 对工作目录外的破坏性命令,Skill 带有 HARB 约束,须预览命令并等待用户确认。
结尾¶
knowledge-engineering 把 RAG 切片从「凭感觉切块」收成一条可检查流水线:语义与目录契约保证片内可用,校验与 evaluate_retrieval.py 让优化有据可查。线索中的 API 地址若无法打开,可通过 SkillHub 安装 @indiv-ebandao/knowledge-engineering(v1.0.13) 获取同款能力。
- 线索官方地址:https://api.skillhub.cn/user_741dc82b/knowledge-engineering
- 当前可访问的技能页:https://www.skillhub.cn/skills/indiv-ebandao/knowledge-engineering
- 安装说明:https://skillhub.cn/install/skillhub.md