name: 递归知识处理 描述: “通过知识图谱构建和状态化多跳推理处理大型文档语料库(1000+文档,数百万词元)。适用于以下情况:(1)用户提供超出上下文限制的大型语料库,(2)问题需要跨多个文档建立连接,(3)复杂查询需要多跳推理,(4)用户希望从文档中获取持久可查询的知识。用智能图谱遍历替代暴力文档填充。”
递归知识处理
通过知识图谱构建和状态化多跳查询处理任意大小的文档集合。基于RLM研究,但具备适当的状态管理和终止逻辑。
核心概念
与将文档塞入上下文(会导致性能下降)不同,本技能:
- 将文档索引到知识图谱中(实体、关系)
- 通过遍历图谱来回答问题
- 跟踪状态以避免重复探索
- 使用置信度阈值来决定何时停止
工作流程
阶段1:索引
对于新的语料库,运行索引器:
python3 scripts/index_corpus.py --input /path/to/documents --output /path/to/graph.json
此过程提取:
- 实体:人物、组织、概念、日期、地点
- 关系:引用、提及、矛盾、支持、关联
- 元数据:源文档、位置、提取置信度
有关实体/关系模式的详细信息,请参阅 references/graph-schema.md。
阶段2:查询
针对已索引语料库的用户查询:
python3 scripts/query.py --graph /path/to/graph.json --query "用户问题在此"
查询引擎:
- 将查询解析为目标实体/关系
- 在图中找到入口点
- 进行状态跟踪遍历
- 当达到置信度阈值时停止
- 返回答案及来源
阶段3:增量更新
将新文档添加到现有图谱:
python3 scripts/index_corpus.py --input /path/to/new_docs --output /path/to/graph.json --append
状态管理(关键)
相对于朴素递归方法的关键改进在于状态化遍历。完整细节请参阅 references/state-management.md。
在查询执行期间,跟踪:
| 状态 | 目的 |
|---|---|
visited_nodes |
防止重复探索相同实体 |
visited_edges |
防止重复遍历相同关系 |
findings |
累积的证据及来源 |
confidence |
当前确定度(0-1) |
depth |
当前遍历深度 |
终止条件:
停止如果:
- 置信度 >= 0.85(高确定性)
- 佐证来源数量 >= 3(多方一致)
- 深度 > 最大深度(防止无限探索)
- 所有相关路径已穷尽
多跳推理
对于需要跨文档连接的问题:
- 识别查询组件(需要哪些实体/事实)
- 为每个组件找到入口点
- 从每个入口点开始遍历
- 寻找路径交叉点
- 在交叉点综合发现
示例:“谁与X在项目Y上合作过?”
- 入口点1:实体"X" → 关系 → 项目
- 入口点2:实体"项目Y" → 关系 → 人员
- 交叉点:与X和项目Y都关联的人员
有关模式,请参阅 references/traversal-patterns.md。
何时不应使用此技能
- 适合上下文的少量文档集合(<5万词元)- 直接使用上下文即可
- 简单的关键词搜索 - 使用grep/搜索工具代替
- 不需要多跳推理 - 更简单的方法即可
- 实时流数据 - 本技能适用于静态语料库
文件参考
scripts/index_corpus.py- 从文档构建图谱scripts/query.py- 执行带状态管理的查询scripts/graph_ops.py- 图谱CRUD工具references/graph-schema.md- 实体和关系类型references/state-management.md- 终止和置信度逻辑references/traversal-patterns.md- 多跳查询模式