本体知识库问答 (Ontology Chat)
基于本地本体知识库回答,而非依赖模型记忆。
定位知识库
解析相对于本 SKILL.md 的 scripts/ontology_kb.py。CLI 按如下顺序定位知识库根目录:
- 显式的
--root PATH ONTOLOGY_KB_ROOT环境变量~/.config/ontology-chat/config.json- 当前目录及其父目录
- 技能源目录及其父目录
如果发现失败,需解释如何运行仓库中的 scripts/install.py 或设置 ONTOLOGY_KB_ROOT。不得基于已有知识静默回答。
在开始陌生会话时,首先执行:
python3 <skill-dir>/scripts/ontology_kb.py status --json
选择响应模式
根据问题推断模式:
- 解释 (Explain): 定义一个概念,并将其与具体的标准或项目联系起来。
- 比较 (Compare): 为每个被比较项检索证据,并按维度陈述差异。
- 推荐 (Recommend): 从笔记中推导出评判标准,呈现权衡,并将最终推荐标注为编辑性建议。
- 操作指南 (How-to): 根据文档化的工具和格式,组装出一个有依据的工作流程。
- LLM 模式 (LLM patterns): 区分直接的 LLM 实现、编目提及、经典 ML、嵌入和通用知识图谱的使用。
- 来源审计 (Source audit): 将声明从综合结论追溯到笔记,并在本地可用时追溯到抓取的文本或仓库文档。
- 学习路径 (Learning path): 从基础概念到工具和高级模式,对阅读材料进行排序。
- 探索 (Explore): 展现相关的条目、章节、注意事项和后续问题。
检索工作流
- 识别任何明确提到的项目、标准、本体或词汇表。首先运行
sources <名称> --json,以便在更广泛的搜索之前显示跳过的条目和已记录的证据缺口。如果条目被跳过,则以此限制作为开场;其他笔记中的间接提及仅可作为次要证据进行总结。 - 将剩余问题转化为两到四个简短、具体的搜索查询。如果已知,请包含被比较项的名称。
- 对每个查询运行检索:
python3 <skill-dir>/scripts/ontology_kb.py search "<查询>" --limit 8 --json
有用的过滤器包括 --section 和 --kind。
4. 合并结果,并打开最佳的四到八个 notes/<slug>.md 文件。不要将片段视为充分证据。
5. 对于比较,确保每个被命名的项都有其自己的笔记。如果检索未将其呈现,则使用 show <slug>。
6. 仅将 SYNTHESIS.md 用于定位和跨源结构。在重复其主张之前,需根据引用的笔记进行验证。
7. 对于有争议的、令人惊讶的或需要进行来源审计的主张,运行 sources <slug> --json。如果存在 sources/<slug>.txt 或 repos/<slug>/ 目录,请检查相关的源段落或 README/文档。公共安装可能省略了这些第三方制品;应披露此限制,而不是即兴编造。
8. 仅在确定了一个有用的锚点笔记后,才使用 related <slug> --limit 8 --json。
依据规则
- 事实性声明必须基于已打开的笔记。不得从通用本体知识中填补空白。
- 每个实质性的段落或列表项都必须附上仓库相对路径的 Markdown 链接,例如
[OntoLearner](notes/ontolearner.md)。 - 将特定来源的声明归因于该来源。对于跨源结论,需使用多个引用。
- 明确将基于证据组合的建议标注为 推荐 (Recommendation) 或 编辑性综合 (Editorial synthesis)。
- 保留限定条件,包括版本时效、归档状态、不完整的文档、配置文件限制、规模限制以及仅限目录的证据。
- 不得将“列出了指南”当作指南内容的证据。
- 不得将普通的图数据库、嵌入、符号推理或经典机器学习称为“LLM 集成”。
- 如果一个明确命名的条目被跳过,请在回答开头说明,并引用或密切改写其记录的
skip_reason。不得用间接提及替代不存在的专用笔记,也不得编造其内容。 - 如果知识库不支持该回答,请说明原因,并指出缺失的证据。
默认回答结构
使用最轻量级的合适结构:
- 直接回答
- 基于证据的解释或比较
- 重要的注意事项
- (可选)后续问题或阅读建议
除非用户要求审计,否则避免转储检索分数或内部搜索步骤。优先使用少量强有力的引用,而不是冗长的参考书目。
CLI 参考
ontology_kb.py search <查询> [--limit N] [--section TEXT] [--kind KIND] [--json]
ontology_kb.py show <slug或名称> [--json]
ontology_kb.py related <slug或名称> [--limit N] [--json]
ontology_kb.py sources <slug或名称> [--json]
ontology_kb.py status [--json]
选项可以出现在子命令之前或之后。该 CLI 是确定性的、无外部依赖的,且不执行任何网络请求。