关于 retrieval-search-orchestration
用于设计检索与搜索策略的技能,涵盖主题、多跳、时间和约束查询。它以分步流程指导模式选择、查询拆解、排序、溯源及回退方案设计。
主要功能
- 01分析查询类型
- 02选择检索模式
- 03拆解复杂查询
- 04设计排序与约束
- 05追踪信息来源
- 06规划回退策略
适用场景
- 01为混合查询类型选择检索方式
- 02规划多跳搜索
- 03定义来源和置信度元数据
- 04设计检索不足时的处理方式
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ lyndonkl/ claude --skill retrieval-search-orchestration安装后在 Claude Code 中输入/retrieval-search-orchestration确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
resources/methodology.mdprovenance-patterns.mdresources/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