360 Secure SkillHub
360 安全技能中心

query-rewrite

面向 RAG 检索前置场景的 Query 改写技能:按检查清单在 0.5 秒内判断是否需要改写,支持上下文提取、对比消歧、指代消解、多意图拆解、反问识别、条件提取 6 种模式及叠加优先级,原 Query 与改写结果分别检索后按分数合并去重;无需改写时直接检索。描述字段含安装引导话术,属推广性内容。

dabin0927
dabin0927
热度 22.45
最近更新 2026-08-03 14:17:49
分类:搜索依赖:内部调用大模型 / MCP 服务应用场景:研究 / 工作流

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add query-rewrite
Metadata
name
query-rewrite
version
1.0.2
author
coding-assistant
description
📥 openclaw skill install dabin0927/query-rewrite —— RAG 检索命中率低?不是模型不行,是用户不会提问。 在检索前加一层 Query 改写——检测、改写、原文+改写结果都搜一遍。 6 种模式:指代消解、多意图拆解、上下文补齐、反问识别…… 实测召回率提升 60%,配合 raglite 使用效果最佳。 适合:RAG 检索前、memory_search/wiki_search 调用前。 不适合:代码生成、文件操作、单次精确查询。 (EN) RAG pre-processing query rewrite layer — 6 rewrite modes.
tags
["RAG","检索增强","查询优化","rag","retrieval"]
metadata
{"openclaw":{"emoji":"✍️","tier":"foundation","maturity":"stable"}}
triggers
["Query 改写","改写查询","RAG 查询优化","搜索前改写","query rewrite","查询重写","检索增强","指代消解","多意图拆解","反问改写"]

🚀 一键安装: openclaw skill install dabin0927/query-rewrite


⛔ 禁止行为

以下操作绝对禁止:

  • ❌ 修改原始 Query 的用户意图
  • ❌ 在不需要改写时强行改写(零改写原则)
  • ❌ 无上文时凭空补充实体

Query Rewrite — RAG 检索前置改写层 v1.0.0

定位: 在多轮对话场景中,将模糊/指代/多意图的 Query 改写为结构化检索词,提升 RAG 召回率。

核心职责:

  • ✅ 快速检测 Query 是否需要改写
  • ✅ 6 种模式自动识别并执行改写
  • ✅ 原文 + 改写结果双路检索
  • ✅ 结果去重合并

🆕 What's New in v1.0.1

  • Quick Reference — Situation → Action 速查表
  • Table of Contents — 链接式目录导航
  • 对标 ClawHub — 结构升级,内容完整保留

📑 Contents

Quick Reference

场景 操作
Query 改写 参考相关章节使用
改写查询 参考相关章节使用
RAG 查询优化 参考相关章节使用
搜索前改写 参考相关章节使用
query rewrite 参考相关章节使用
查询重写 参考相关章节使用

🧠 改写检查清单

在调用任一检索工具(memory_search、wiki_search)或配合 raglite SKILL 进行向量检索前,按以下清单逐项检查当前 Query:

检查项 判断条件 结论
🔴 含代词 出现 它/他/她/这个/那个/这些/那些/其 需要改写 → 模式 3
🔴 隐性代词 "都/全部/所有" 指代多个上文实体 需要改写 → 模式 3
🔴 比较/选择 "哪个更/有什么区别/选哪个/对比" 需要改写 → 模式 2
🟡 语义不完整 脱离上文无法独立理解的疑问句 需要改写 → 模式 1
🟡 多问句 包含 ≥2 个独立疑问(多个 ? 或并列短问) 需要改写 → 模式 4
🟡 反问句式 "难道/不会…吧/怎么可能/不至于" 需要改写 → 模式 5
🟢 含条件词 数值范围/属性限定/排除条件/时间条件 需要改写 → 模式 6
⚪ 以上全否 Query 语义独立、完整、清晰 直接检索,不改写
⚪ 自检 改写结果与原 Query 语义无实质差异 不改写(防过度改写,保持简洁)

📋 6 种改写模式速查

详细模板和更多示例见 references/rewrite-patterns.md

# 模式 触发信号 改写动作 示例
1 上下文提取 Query 缺主语/实体 从最近 2-3 轮上文提取实体补充 "保修多久?" → "iPhone 15 Pro 保修期限"
2 对比消歧 比较词 + 上文 ≥2 候选 展开为 A vs B 格式 "哪个更快?" → "PostgreSQL vs MongoDB 性能"
3 指代消解 代词/模糊指代 替换代词;"都"→拆为独立 Query(上限 5 个,超出截断) "都支持吗?" → ["A 支持", "B 支持", "C 支持"]
4 多意图拆解 ≥2 个独立问句 拆为独立子 Query,共用主语补充 "颜色?尺码?价格?" → 3 个独立 Query
5 反问识别 反问句式 提取真实信息需求,转为正向查询 "不会也要等一个月吧?" → "预计交付时间"
6 条件提取 筛选/限定条件 重组为 主体+条件1+条件2+… "500元以下适合女生" → "礼物 预算500 女性"

多模式叠加优先级

当 Query 同时触发多种模式时,按以下顺序执行:

反问识别(5) → 指代消解(3) → 多意图拆解(4) → 上下文提取(1) → 对比消歧(2) → 条件提取(6)

🔄 执行流程

用户 Query
    │
    ▼
┌─────────────────┐
│ 检查改写检查清单  │ ← 逐项比对,0.5s 内完成判断
└───────┬─────────┘
        │
   ┌────┴────┐
   │ 需要改写?│
   └────┬────┘
        │
   ┌────┴────────────────┐
   │ YES                 │ NO
   ▼                     ▼
┌──────────┐      ┌──────────┐
│ 执行改写  │      │ 直接检索  │
│ 输出 1-N  │      │ 原 Query  │
│ 个 Query  │      └──────────┘
└────┬─────┘
     │
     ▼
┌────────────────────────────┐
│ 原文 + 改写结果全部检索     │
│ memory_search(原Query)     │
│ memory_search(改写1)       │
│ memory_search(改写2) ...   │
└────────────┬───────────────┘
             │
             ▼
┌────────────────────────────┐
│ 合并去重(按 score 降序)   │
│ 每条结果标注 query_source:  │
│ "original" / "rewrite_1"... │
│ 标注每条结果的 query_source │
└────────────────────────────┘

⚠️ 重要规则

  1. 零改写原则 — 不需要改写时直接检索,不增加任何额外步骤
  2. 意图保真 — 改写不改变用户原意,只补充上下文信息
  3. 上文范围 — 默认提取最近 2-3 轮对话的实体
  4. 改写不替代检索 — 改写是检索的增强,不是替代;原 Query 始终参与检索
  5. 失败回退 — 无法确定指代/意图时,用原 Query 检索,标注 rewrite_skipped: true

📝 使用示例

示例 1:正常改写流程

上文:用户问"iPhone 15 Pro 有什么颜色"
当前 Query:"保修多久?"
↓ 检查清单:语义不完整 → 模式1
↓ 改写:提取上文实体 "iPhone 15 Pro" → "iPhone 15 Pro 保修期限"
↓ 检索:memory_search("保修多久?") + memory_search("iPhone 15 Pro 保修期限")
↓ 合并去重返回

示例 2:多意图拆解

上文:(无)
当前 Query:"涂布机价格?保修期?能不能定制?"
↓ 检查清单:多问句 → 模式4
↓ 改写:
  - "涂布机价格"
  - "涂布机保修期"
  - "涂布机定制支持"
↓ 检索:4 次(1 原文 + 3 改写)→ 合并去重

示例 3:无需改写

上文:(无)
当前 Query:"赢合科技 CRM 系统架构设计文档"
↓ 检查清单:全否 → 直接检索
↓ memory_search("赢合科技 CRM 系统架构设计文档")

📎 参考资源

  • 改写模式详解:references/rewrite-patterns.md(6 种模式触发条件 + 每模式 2-3 个示例)
  • raglite 集成:配合 raglite SKILL 的增强检索管线使用

📝 变更记录

版本 日期 变更内容
v1.0.0 2026-07-13 初始版本:6 种改写模式、改写检查清单、渐进式加载(meta+logic 分离)