信息综合搜索(Synth Search)
> 定位:日常搜索主力 = 搜索引擎 + 智能助手。任何联网检索需求都走这里,
> 统一质量标准「多源、交叉验证、给结论」——求真、求快,不求全。
目的
不是"只验证一个说法"的窄工具,而是所有日常检索的质量关卡:查事实、查近况、
做对比、核实传闻、查规定,统一经过「多源检索 → 真实性/合理性交叉验证 →
结论 + 建议」流水线。本质是证据加权综合:给你的不是"搜到的答案",
是"验证过的答案"。
何时使用
用户说这些话时触发(覆盖日常检索全谱):
- "帮我查一下 XX"(事实/资讯类)
- "XX 和 XX 到底哪个对?"(对比类)
- "核实一下 XX" / "XX 是真的吗"(验证类)
- "查一下 XX 的最新规定/标准"(时效类)
- "XX 该怎么选 / 哪个更适合我"(决策类)
- "XX 现在怎么样了 / 最新进展"(追踪类)
不触发(边界):
- "深度研究一下 XX 公司/人物/行业"(对一个对象一无所知、要全面了解、产出深度报告)
→ ray-deep-research(那边求全面完整,这边求真实高效)
- "查 GB/T 5028 的条款" → ray-standard-search
- "问一个知识点(无需检索验证)" → 直接回答
- "查一下 XX 的股价" → 金融专用工具
与 ray-deep-research 的分工(重合点:都要高质量检索 + 真实性交叉验证):
| | ray-synth-search(本技能) | ray-deep-research |
|---|---|---|
| 输入 | 一个问题(疑问句) | 一个对象(名词:产品/公司/技术/人物/行业) |
| 场景 | 已知道要查什么,要一个可信答案 | 对事物一无所知,要方方面面搞懂 |
| 侧重 | 真实性 + 效率(分钟级) | 全面性 + 完整性(万字报告) |
使用方式
检索源
| 源 | 用途 | 优先级 |
|---|---|---|
| WebSearch | 通用多关键词检索 | 主源 |
| references/source-database.md | 高价值渠道库(按任务类型选 ≥2 源) | 首选参考 |
| ima-mcp 知识库 | 化工/安全/工程领域知识 | 领域源(化工场景) |
| 已连接的垂直 MCP | 标准/法规/金融等 | 按需 |
| 本地文件/文档 | 用户提供的资料 | 用户附时 |
> 🔑 选源规则:任务开始时先读 references/source-database.md,按任务类型(通用/化工安全/学术/政策/公众号/金融/健康/数据/图片/AI 工具生态与开发者变现共 10 分类)查对应分类,选 1 主源 + 1 交叉源(A 级优先)。任务中发现的新渠道→ 记入库中「待沉淀区」,任务结束汇报前正式入库——渠道库随任务动态生长。
执行步骤
Step 1:问题解构
- 拆成 2-4 个可检索子问题
- 每条子问题生成 2-3 个关键词变体(同义/中英)
- 写清检索目标(要找什么证据)
Step 2:多源并行检索
- 每个子问题用 ≥2 个不同关键词/来源检索
- 用 WebSearch 至少查 2 轮(不同措辞)
- 涉及标准/法规 → 追加 ima-mcp 或标准检索
- 记录每条结果的来源(网站/机构)与要点
Step 3:信息对齐
- 把各来源的说法按「事实点」归类(同一问题不同说法并排)
- 每个事实点列出:各来源说法 + 来源可信度
Step 4:交叉验证
对每个事实点标注验证状态,并计算一致性分数(0-100):
| 状态 | 分数区间 | 含义 | 判定 |
|------|---------|------|------|
| ✅ 一致 | 80-100 | ≥2 独立来源说法一致,且≥1 权威源 | 可采信 |
| ⚠️ 一致(弱源) | 60-79 | ≥2 来源一致但均为一般源 | 可采信,置信中高 |
| ⚠️ 单一 | 40-59 | 仅 1 来源(或同源转载) | 需标注置信度低 |
| ⚠️ 矛盾 | 20-39 | 来源间说法冲突 | 需进一步判定 |
| ❓ 未覆盖 | <20 | 所有来源都没找到 | 明确说"未查到" |
一致性分数计算(3 维度加权 + 矛盾封顶):
- 来源独立度(×0.4):≥2 独立来源 = 1.0;单一来源 = 0.4
- 说法契合度(×0.3):完全一致 = 1.0;部分一致 = 0.6;矛盾 = 0.0(否决级)
- 来源权威度(×0.3):官方/权威 = 1.0;专业机构 = 0.8;博客 = 0.5;自媒体 = 0.3
分数 = (独立度×0.4 + 契合度×0.3 + 权威度×0.3) × 100
矛盾封顶规则:若存在实质矛盾(说法冲突而非表述差异),契合度直接取 0.0,分数强制封顶 ≤ 39(归入 ⚠️ 矛盾),不受权威度拉升——矛盾是信号不是噪音,不能因来源权威而掩盖。
Step 5:综合结论
- 按证据权重加权:官方/权威 > 专业机构 > 博客 > 自媒体
- 输出结论分级:
- ✅ 确认:多源一致
- ⚠️ 存疑:来源矛盾或单一
- ❓ 无法确认:证据不足
- 关键事实标明置信度(高/中/低)
Step 6:建议输出
- 立即行动(高置信结论对应的行动)
- 进一步查证(存疑项:给出具体可查的方向)
- 若用户有决策场景,补「决策建议」
输出格式
任务分级先行:先判断问题重量,再选输出模式——闲问闲答不铺全套表格(效率优先),重问才走完整流水线(质量优先)。
| 级别 | 判断标准 | 输出模式 |
|---|---|---|
| 轻量 | 单点事实/简单确认("XX 是谁""XX 现在多少钱"),1-2 源即可验证 | 3 行快答(见下) |
| 标准 | 对比/核实/决策/时效类,需 ≥2 独立源交叉验证 | 完整六段模板(见下) |
轻量模式(3 行快答):
**答**:[结论一句话]
**据**:[来源A(权威度)] + [来源B] — [一致性:✅/⚠️]
**注意**:[如有矛盾或时效性提醒,没有就省略此行]
标准模式(完整六段):
## 检索矩阵
| 子问题 | 关键词变体 | 检索源数 | 覆盖情况 |
## 验证结果
| 事实点 | 来源A | 来源B | 来源C | 状态 | 一致性分 | 置信度 |
## 综合结论
- 结论1:✅ 确认 — 说明 + 证据链 + 一致性分
- 结论2:⚠️ 存疑 — 说明 + 矛盾点 + 一致性分
- 结论3:❓ 未覆盖 — 说明 + 一致性分
## 建议行动
- 立即做:...
- 进一步查:...
## 未覆盖缺口(GAPS)
- [检索后仍没查到的点,显式列出——让用户知道边界在哪,而不是假装查全了]
Few-shot 示例
示例1(对比类)
> 输入:"硝酸铵溶液浓度多少有爆炸危险?网上说法不一"
> 输出:
> - 检索矩阵:浓度阈值(3 个关键词)/ 爆炸条件(3 个)/ 权威标准(2 个)
> - 验证结果:浓度 80% 以上才具爆炸性(✅ 多源一致);纯硝酸铵爆炸需引爆源(✅);溶液稀释后危险性下降(✅)
> - 结论:✅ 确认 — 浓度 ≥80% 且密闭/受限空间才有爆炸风险,低浓度溶液主要风险是分解产气
> - 建议:涉及硝酸铵储运按《危险化学品目录》管理;浓度 <60% 通常不作为爆炸品监管
示例2(验证类)
> 输入:"网上说某事故是工人操作失误导致的,是真的吗?"
> 输出:
> - 检索矩阵:事故原因(2)/ 官方通报(3)/ 调查报告(2)
> - 验证结果:官方通报(✅ 权威源);自媒体说法(⚠️ 与官方矛盾)
> - 结论:⚠️ 存疑 — 仅自媒体说法,官方调查未确认操作失误是主因
> - 建议:以官方调查报告为准;提醒用户勿采信单一自媒体来源
失败分支
| 场景 | 处理 |
|---|---|
| WebSearch 无结果 | 换措辞重试 1 次;仍无 → 标注 ❓ 未覆盖 |
| 来源间矛盾 | 不调和,列矛盾点 + 各自来源,标注 ⚠️ |
| 只有单一来源 | 标注 ⚠️ 单一且置信度低,建议追加验证 |
| 检索结果全是广告/低质 | 过滤后重搜,注明"过滤 N 条低质结果" |
| 用户问题太模糊 | 先反问澄清(问 1 个关键点即可),不硬猜 |
| ima-mcp 不可用 | 降级用 WebSearch,标注"领域源未接入" |
参考资料
references/source-database.md— 高价值搜索渠道数据库(10 分类 40+ 渠道,三维评分 + A/B/C 分级 + 动态演进机制)——每次任务开跑必读,选 1 主源 + 1 交叉源references/changelog.md— 维护记录(v1.7.0 卸载,按需加载)
Definition of Done
- [ ] 完成 ≥2 个独立来源的检索(单一来源不算完成)
- [ ] 每个事实点都有验证状态标注(✅/⚠️/❓)
- [ ] 输出前先分级:轻量问题用 3 行快答,标准问题走完整六段(含 GAPS)
- [ ] 标准模式输出含完整段落:检索矩阵 / 验证结果 / 综合结论 / 建议行动 / 未覆盖缺口
- [ ] 矛盾项明确列出(不回避、不调和)
- [ ] 置信度标注(高/中/低)
- [ ] 关键结论的引用是否为深链(给不出深链的项已判 ❓,未标 ✅/⚠️)
- [ ] 待核对象的多条事实是否条数守恒(逐条有结论,未只挑好查的)
- [ ] 涉及时间的结论是否区分了媒体日/发布日/生效日
核查纪律(硬性约束)
> 本节四条约束「怎么取证」——不是建议,是必须。每条对应一类静默出错(输出看着完整、实则错)。
① 深链证据:每条关键结论的引用必须给直达具体内容页的链接。给不出深链(只能到首页/栏目页)→ 一律判 ❓ 未覆盖,不得标 ✅ 或 ⚠️。深链 = 具体新闻页 / 公告页 / 数据页 / 标准条款页,而非 www.xxx.com 这类站点首页。
② 防火墙(反循环论证):用户提供的文档/截图只是被核查对象(靶子),不得充当证据(子弹)。若某说法只能被其自身材料支持 → 判 ❓,并写明「未找到外部独立信源」。(唯一例外:核查的正是「该文档与其发布方官方口径是否一致」——此时官方源仍属外部源。)
③ 时间错位:区分三个时点、不得混用——媒体报道日 / 官方发布日 / 生效(执行)日。三者常相差数日;只找到媒体报道日时,须标注「官方发布日未取证」,不得默认等同。
> 口诀:看到「某规定 X 月 X 日起施行」,先找发布该规定的原始文件,再读其落款日期与施行日期。
④ 穷尽待核项:待核对象含多条可验证事实时(长文常 10 条以上),全部列出并逐条给结论;不得只挑好查的几条,「看起来没问题」不是跳过理由。条目多时可只给逐条状态,但条数必须守恒。
反例黑名单(❌ 不要做)
> 上面的「失败分支」讲外部出错怎么办(搜不到、源矛盾);本表讲自己不要做什么。每条都对应一次真实发生过的静默出错。
❌ 用单一来源当定论 —— 1 个来源一致就报 ✅(同源多家转载也只算 1 个来源)
❌ 用首页链接糊弄 —— 给不出深链却标 ✅/⚠️,而不是判 ❓
❌ 用靶子当子弹 —— 拿用户附的文档去证明用户自己的说法
❌ 把媒体报道日当官方发布日 —— 二者常差数日,必须分别标注
❌ 把矛盾调和掉 —— 冲突时折中/取平均/只写「存在不同说法」,而不并列原始说法
❌ 把推测写成事实 —— 未查到的部分用流畅文字掩盖,而不是进「未覆盖缺口」
❌ 为凑完整性编造 —— 宁可显式留白,也不可用合理想象填格
Gotchas
> 环境专属怪癖。构建中踩的坑、验证时发现的行为记这里,随运行累积。
> ⚠️ None known 是合法值——禁止编造 gotcha 凑数。
- WebSearch 对中文长句查询效果差 → 拆成 2-3 个短关键词变体再查
- ima-mcp 需已连接才可用;未连接时降级纯 WebSearch
- 官方/政府域名(gov.cn/标准官网)可信度最高,自媒体仅作参考不单独定论
- 部分平台「模型清单/定价页」需登录,WebFetch 只能拿到登录页 HTML(实测:硅基流动
cloud.siliconflow.cn/models回落为「硅基流动统一登录」,拿不到模型与价格)→ 改走其 release notes 页(免登录) + 聚合站交叉,并在结论标注"定价页未取证" -
判断第三方平台"某新模型上没上线",比搜新闻可靠的是看它自己的 release notes / 模型广场「最新条目日期」——搜不到新闻 ≠ 没上线,搜到新闻也只说明别人上线了
-
「给得出深链」是分辨「真查过」与「看着像查过」的最省判据——只能给首页,通常是没真正打开过内容页
- 时效类结论务必落到原始文件:搜到「XX 新规 6 月 1 日施行」只是线索,要读该规定原文的落款日期与施行日期,才能判报道是否滞后/提前
维护记录
完整维护记录见 references/changelog.md(v1.7.0 卸载,按需加载)。最近变更:v1.8.0(补「核查纪律」与「反例黑名单」)。