mcpField
R
retrieval-search-orchestration

retrieval-search-orchestration

github.com/lyndonkl数据与数据库18769 次安装10 周前更新
代码仓库

关于 retrieval-search-orchestration

用于设计检索与搜索策略的技能,涵盖主题、多跳、时间和约束查询。它以分步流程指导模式选择、查询拆解、排序、溯源及回退方案设计。

主要功能

  1. 01分析查询类型
  2. 02选择检索模式
  3. 03拆解复杂查询
  4. 04设计排序与约束
  5. 05追踪信息来源
  6. 06规划回退策略

适用场景

  1. 01为混合查询类型选择检索方式
  2. 02规划多跳搜索
  3. 03定义来源和置信度元数据
  4. 04设计检索不足时的处理方式

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/lyndonkl/claude --skill retrieval-search-orchestration

安装后在 Claude Code 中输入/retrieval-search-orchestration确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

resources/
methodology.md
provenance-patterns.md
resources/evaluators/
rubric_retrieval.json

详细介绍

目录

检索与搜索编排

工作流

复制此清单,并逐步完成各项:

  • 1. 分析查询类型和需求
  • 2. 选择检索模式
  • 3. 设计查询分解策略
  • 4. 配置排序和约束
  • 5. 设计溯源跟踪
  • 6. 定义回退策略
  • 7. 编写检索策略规范

步骤说明

步骤 1:分析查询类型和需求

对系统必须处理的查询进行分类。常见类别包括:

  • 事实查询:单实体、单跳查询(例如:“法国的首都是哪里?”)
  • 探索性/主题性查询:需要汇总多个实体信息的宽泛问题(例如:“该语料库中的主要主题有哪些?”)
  • 多跳推理:需要遍历多个关系的问题(例如:“哪些药物可以治疗由基因 X 导致的疾病?”)
  • 时间查询:受时间范围限制或需要理解顺序的问题
  • 受限查询:包含类型或属性筛选条件的问题(例如:“列出 2020 年之后针对药物 Y 的所有临床试验”)

确定用例中这些查询类型的分布,以指导模式选择。

步骤 2:选择检索模式

使用下方的检索模式选择指南,根据查询分布选择合适的方法。有关各模式的详细实现指南,请参阅 resources/methodology.md。

步骤 3:设计查询分解策略

对于复杂查询,将其拆分为可独立解决并随后汇总的子查询。方法包括以大模型作为控制器进行分解、自问链,以及 ReAct 风格的交错推理与检索。详情请参阅下方的查询分解模式部分和 resources/methodology.md。

步骤 4:配置排序和约束

定义如何对检索结果评分、排序和筛选:

  • 嵌入相似度阈值
  • 图距离惩罚
  • 基于类型的预筛选或后筛选
  • 最低置信度分数
  • 针对时效性数据的时间衰减函数
步骤 5:设计溯源跟踪

确保每条检索到的信息都带有来源元数据。这包括源文档 ID、抽取时间戳、置信度分数,以及证据链构建信息。有关标注方法、置信度评分和大模型集成模式,请参阅 resources/provenance-patterns.md。

步骤 6:定义回退策略

设计主要检索失败或结果不足时的处理方式:

  • 迭代加深(增加跳数)
  • 放宽查询(逐步移除约束)
  • 并行探索(同时尝试多种模式)
  • 优雅降级(返回带置信度指示的部分结果)
步骤 7:编写检索策略规范

使用下方的输出模板编写完整规范。


检索模式选择指南

模式最适合机制权衡章节参考
全局优先广泛的主题查询、语料库级摘要社区检测、自顶向下遍历摘要索引覆盖范围广;可能遗漏具体细节3.1
局部优先以实体为中心的查找、邻域探索种子实体链接,通过嵌入门控扩展 1-2 跳邻域对已知实体的精确度高;范围有限3.2
U 形混合需要兼顾广度和深度的复杂查询由粗到细的双向搜索,先自顶向下,再自底向上细化覆盖范围最佳;延迟和复杂度较高3.3
查询分解多跳推理、复合问题大模型将查询拆分为子查询,依次检索并汇总能处理复杂问题;依赖分解质量3.4
时间型有时间范围限制或依赖顺序的查询时间片筛选、情节窗口化、时间衰减排序能捕捉时间动态;需要时间元数据3.5
约束引导按类型筛选或受规则约束的查询预筛选 + 向量搜索、符号查询后再进行神经重排序缩小搜索范围;需要类型定义完善的架构3.6

选择启发式:从系统中占主导地位的查询类型入手。如果查询类型混合,可考虑默认采用 U 形混合模式,并在必要时回退到专用模式。


查询分解模式

LLM 作为控制器

大模型接收原始查询,并生成子查询计划:

Original: "Which drugs treat diseases linked to mutations in BRCA1?"
Sub-query 1: "What diseases are linked to mutations in BRCA1?"
Sub-query 2: "What drugs treat [diseases from sub-query 1]?"
Aggregation: Combine results, deduplicate, rank by evidence strength
自问链

模型迭代地向自己提出后续问题,并在每次提问后进行检索:

Q: "What is the relationship between company X and technology Y?"
Follow-up 1: "What products does company X produce?" -> retrieve
Follow-up 2: "Which of those products use technology Y?" -> retrieve
Follow-up 3: "What partnerships exist between X and Y providers?" -> retrieve
Synthesize: Combine all retrieved evidence into final answer
ReAct 模式

交替进行推理和检索操作:

Thought: I need to find the connection between entity A and entity C
Action: Search KG for paths between A and C (max 3 hops)
Observation: Found path A -> B -> C via relationship R1 and R2
Thought: I should verify this path with supporting evidence
Action: Retrieve source documents for edges A-B and B-C
Observation: Edge A-B supported by [doc1, doc2], edge B-C supported by [doc3]
Answer: A connects to C through B, supported by 3 source documents
工具增强检索

为结构化图遍历生成形式化查询(Cypher、SPARQL):

LLM generates: MATCH (d:Drug)-[:TREATS]->(dis:Disease)<-[:CAUSES]-(g:Gene {name: 'BRCA1'})
               RETURN d.name, dis.name, g.name
Execute against graph database
Post-process results with LLM for natural language answer

输出模板

# Retrieval Strategy Specification

## System Context
- **Domain**: [e.g., biomedical, legal, financial]
- **Knowledge Graph Type**: [e.g., property graph, RDF, hybrid]
- **Primary Query Types**: [list dominant query categories]
- **Scale**: [approximate node/edge counts, query volume]

## Retrieval Pattern
- **Primary Pattern**: [selected pattern from guide]
- **Rationale**: [why this pattern fits the query distribution]
- **Secondary/Fallback Pattern**: [if applicable]

## Query Decomposition
- **Strategy**: [LLM-as-controller / self-ask / ReAct / tool-augmented / none]
- **Max Sub-queries**: [limit per original query]
- **Aggregation Method**: [union / intersection / ranked merge / LLM synthesis]

## Ranking & Constraints
- **Similarity Threshold**: [minimum embedding similarity score]
- **Max Hop Distance**: [maximum graph traversal depth]
- **Type Filters**: [entity/relationship type constraints]
- **Temporal Constraints**: [time windows, decay functions]
- **Confidence Minimum**: [minimum source confidence for inclusion]

## Provenance Design
- **Annotation Method**: [metadata fields / evidence nodes / named graphs / reification]
- **Confidence Scoring**: [source reliability tiers, aggregation rules]
- **Citation Format**: [inline / post-hoc / both]
- **Conflict Resolution**: [timestamp priority / source authority / LLM adjudication]

## Fallback Strategy
- **Primary Fallback**: [iterative deepening / query relaxation / parallel exploration]
- **Max Retry Depth**: [number of fallback attempts]
- **Degradation Policy**: [partial results with confidence / explicit uncertainty / escalation]

## Evaluation Criteria
- Reference: `resources/evaluators/rubric_retrieval.json`
- **Target Score**: [minimum acceptable weighted score]

评论

支持 Markdown