name: super-search description: "通用网页搜索、爬取、交叉验证与研究报告生成。用户说 search、搜索、查一下、帮我搜、调研、collect information、find sources、verify facts、交叉比对、验证真实性、收集资料、整理信息、查证某个说法、看看网上怎么说、有没有证据支持、信息可信度如何时触发。自动搜索多源内容,抓取并缓存,分析内容质量(评分仅作参考,低质直接舍弃),交叉比对事实一致性,对高严谨度内容(医学、法律、金融等)自动触发对抗性审查。最终输出结构化研究报告到指定目录。≠ hv-analysis(那是深度产品/公司分析框架)。"
Super Search
IRON LAW: NEVER GENERATE ANSWERS FROM TRAINING DATA. Every factual claim in the report must be traceable to at least one URL fetched during this session.
核心定位
通用网页调研与事实核查工具。与 hv-analysis(强制横纵轴框架、产出 10K-30K 字 PDF 的深度产品/公司研究)的关键差异:
| hv-analysis | Super Search | |
|---|---|---|
| 研究框架 | 纵轴+横轴+交叉洞察(强制) | 无预设框架,按需灵活 |
| 适用范围 | 产品/公司/概念/人物 | 任意主题 |
| 报告深度 | 10K-30K 字 PDF | 轻量到中等,按需 |
| 对抗审查 | 鼓励批评思考(非系统化) | 所有主题通用:时效性+真实性双重审查 |
| 缓存 | 无 | 内置 TTL 缓存层 |
Workflow
Copy this checklist and check off items as you complete them:
Super Search Progress:
- Step 1: Environment Check ⚠️ REQUIRED — 验证 search/fetch 工具可用,不可用则中断
- Step 2: Plan — 解析用户意图、扩展多语言关键词、确定搜索深度
- Step 3: Search — 多源搜索,收集结果 URL
- Step 4: Fetch — 批量抓取内容,先查缓存
- Step 5: Analyze — 质量评分(仅参考,低质舍弃),排序整理
- Step 6: Cross-Reference — 多源比对,矛盾标注
- Step 7: Review ⚠️ REQUIRED — 时效性+真实性双重审查所有关键数据
- Step 7.5: Template Selection ⚠️ REQUIRED — 根据主题特征选择报告模板
- Step 8: Report — 按选定模板生成结构化报告写入文件
- Step 9: Verify — 交付前检查
Step 1: Environment Check ⚠️ REQUIRED
Ask: 哪些 search/fetch 工具当前可用?
运行 node dist/env-check.mjs 输出环境中可用的 search/fetch 工具列表。
如果没有任何 search 工具且没有任何 fetch 工具同时可用:
- 立即中断,告知用户缺少必要能力,列出需要安装的工具
如果只有 fetch 无 search:
- 降级为"URL 分析模式",跳过 Step 3
⚠️ 不要在此步骤假设任何工具的可用性。
工具可用性铁律:记录所有可用工具的完整列表(如 tinyfish-search_search、webfetch 等)。后续每个搜索/抓取操作优先使用主要工具;失败时依次切换到列表中的下一个工具,直到成功或全部尝试完毕。
Step 2: Plan
解析用户输入,确定:
- 核心主题与搜索关键词
- 搜索深度:
quick(3-5 源)、normal(8-12 源)、deep(15-20 源) - 是否需要对抗审查(见
references/review-triggers.md) - 输出文件路径(用户指定或默认
./research-output/{date}-{topic-slug}.md) - 缓存目录(用户指定或默认
~/.super-search-cache/)
Ask: "对以下问题,我应该额外搜索哪些对立面/反面/批评性关键词?" 例如:搜索"AI 取代程序员"时,同时搜索"AI 不会取代程序员的理由""AI 编程工具的局限性"。
多语言关键词扩展 ⚠️ 必须执行
识别主题所属领域,推断可能的原始信息语言,使用多语言关键词扩大搜索范围。扩展规则:
| 领域 | 扩展语言 | 说明 |
|---|---|---|
| 科技/AI/编程 | + 英文 | 科技内容主要信息源为英文,多数研究论文、官方文档和一手资料首发于英文 |
| 动漫/ACG/日式游戏 | + 日文 + 英文 | 日本动漫内容的原始来源为日文,使用日文关键词可获取一手资料(如官网、访谈、制作组发布);英文社区也有大量讨论 |
| 日本文化/任天堂/JRPG | + 日文 + 英文 | 同上,日本文化相关信息的原始来源为日文 |
| 韩国流行文化/K-pop | + 韩文 + 英文 | 韩国文娱内容原始来源为韩文 |
| 其他/通用 | + 英文(最低) | 英文为互联网主要语言,至少添加英文搜索扩展 |
扩展策略:
- 中文关键词 → 翻译为目标语言关键词(使用内置术语映射表)
- 添加混语言查询(如
"中文词" site:en.wikipedia.org、"translated topic" Reddit) - 在
deep模式下添加学术搜索维度(如"translated topic" research paper、"translated topic" arXiv) - 对日本动漫使用罗马音和日文汉字双重搜索
运行 node dist/search.mjs --topic '...' --depth normal 时,脚本会自动生成 multiLanguageQueries 字段。AI 在执行搜索时,必须对每类多语言查询执行搜索,不可跳过。
Step 3: Search
运行 node dist/search.mjs --topic '...' --depth normal --cache-dir '...' 生成搜索计划。
根据计划执行搜索。搜索执行顺序:
- 先执行主查询(
queries字段) - 再执行多语言查询(
multiLanguageQueries字段),不可跳过 - 最后执行对抗查询(
counterQueries字段)
工具降级策略:
- 优先使用主要 search 工具(如 tinyfish-search_search)
- 该工具返回错误/超时/无结果 → 自动切换到下一可用 search 工具
- 全部 search 工具失败 → 将搜索词作为 URL 尝试直接 fetch(如 site:xxx 搜索变体),或跳过该关键词并记录
- 每个搜索词至少尝试 2 种不同的工具或查询变体
数据充分性铁律:每个关键维度(如"价格""规格""政策")至少需要 2 个来源覆盖。不足时立即触发搜索引擎补充发现——使用所有可用 search 工具,变换关键词(加"对比""排行""价格表""2026"等后缀),迭代搜索直到找到足够数据或确认该维度确实没有公开可查的数据。禁止在数据不足时直接跳过该维度。
多语言搜索结果合并:不同语言搜索返回的结果按同一标准纳入质量分析流程,来源权威度评估会考虑是否为该领域的原始信息语言。例如,日文官方页面在动漫相关主题中的权威权重高于中文转载页面。
搜索终止条件
满足以下条件时停止搜索并进入抓取阶段:
- 每个关键维度至少有 2 个来源覆盖
- 官方页面已全部尝试抓取(成功获取数据或确认无法获取并记录原因)
- 已执行 2 轮关键词变体搜索,新增结果趋于重复(>80% 重复)
- 对高风险主题(医学/法律/金融)已执行对抗性搜索
不满足时继续触发搜索引擎补充发现,不可在数据不足时跳过。
Step 4: Fetch
运行 node dist/fetch.mjs --cache-dir '...' 检查缓存。
- 命中缓存 → 直接使用缓存内容(
node dist/cache.mjs get --url "..." --type fetch) - 未命中 → 抓取内容。工具降级策略:
- 优先使用主要 fetch 工具(如 webfetch 或 tinyfish-search_fetch)
- 返回 403/404/Transport Error/JS 空壳 → 自动切换到下一个可用 fetch 工具
- 全部 fetch 工具失败 → 进入 搜索引擎替代抓取 流程(见下方)
- 抓取后必须立即回写缓存:
默认 TTL:搜索结果 30min,网页内容 24h。
Step 5: Analyze
运行 node dist/analyze.mjs 对每条内容评分。
质量评估维度(见 references/quality-criteria.md):
- 来源权威度(官方 > 知名媒体 > 个人博客 > 不可信;涉及数值/规格/定价时,必须优先采用官方页面数据)
- 信息完整度(日期、作者、引用、数据)
- 内容新鲜度
- 语言质量(排除机翻/低质内容)
评分仅作相对参考,评估后明确低价值的内容直接舍弃。
Step 6: Cross-Reference
对关键事实进行多源比对:
- 一致 → 标注"多源确认"
- 矛盾 → 立即触发事实核查:直接 fetch 各方引用的原始来源/官方页面,以官方第一手数据为准裁定。多个第三方来源的一致意见不能覆盖官方页面的明文数据
- 孤立 → 只有一个源提及,标注"待验证",同时尝试搜索官方来源确认
第三方转载数据的比对标准:
- 第三方数据至少需要 2 个独立来源 交叉确认,才可标注为"已核实"
- 第三方来源间的矛盾不能通过"多数投票"解决 —— 必须尝试找回原始官方数据
- 仅有一个第三方来源的数据,标注为"待验证(第三方单源)",置信度最高 medium
输出置信度矩阵。
事实核查铁律:当数值/规格类声明出现矛盾时,必须直接抓取官方定价页/规格页作为终极裁决依据,不得仅凭第三方文章数量做判断。
多语言交叉验证:当多语言搜索返回不同语言来源时,优先以该领域的原始信息语言为准:
- 科技/AI → 英文一手资料(研究论文、官方博客)权威度 > 中文翻译/转载
- 动漫/ACG → 日文官方页面权威度 > 中文转载 > 英文讨论
- K-pop/韩流 → 韩文官方/韩媒权威度 > 中文翻译/英文报导
Step 7: Review ⚠️ REQUIRED(对抗性审查)
审查不是可选的附加项,而是保证报告质量的必要环节。以事实为第一要义,不因追加速而牺牲准确性。
审查的两个维度:
时效性审查(所有主题通用)
Ask:
- 每条数据的发布时间是什么?距今多久?
- 是否存在比"最新"数据更旧的过时信息被引用?
- 第三方转载文章的价格/规格数据是否标注了更新日期?
- 如果关键数据来源日期 > 6 个月前,触发补充搜索确认是否有更新版本
真实性审查(所有主题通用)
Ask:
- 这条声明的原始来源能否追溯到官方页面?
- 如果数据来自第三方转载,转载者是否有动机扭曲数据(如推广佣金/商业合作)?
- 不同来源对同一事实的描述是否一致?不一致时哪个更可信?
- 本报告中哪些声明存在"孤立来源"风险?
自动触发(更严格的反驳搜索 + 官方核实):
- 医学、法律、金融、安全等高风险主题
- 物理、化学、数学等科学主题(从基础原理出发核查)
- 关键发现置信度低于阈值
- Step 6 交叉验证中发现矛盾或孤立声明
- 涉及金钱的声明(定价、费率、佣金)—— 必须双源以上确认
运行 node dist/review.mjs 执行对抗审查:
- 对每个主要结论搜索反驳证据
- 检查来源多样性
- 标注遗漏风险
- 如发现重大疏漏,回到 Step 3 补充搜索
Step 7.5: Template Selection ⚠️ 生成报告前必须执行
根据主题特征,对照 references/report-templates.md 模板选择指南确定报告模板:
| 主题特征 | 模板 | 关键判别依据 |
|---|---|---|
| 多产品/方案价格或功能对比 | 对比型报告 | 主题含"对比/比较/哪个好/排行" |
| 问题/错误的根因排查 | 诊断型报告 | 主题含"错误/报错/问题/bug/原因" |
| 市场/赛道生态调研 | 对比型报告(按平台分组) | 主题含"生态/平台/聚合/中转" |
| 简单事实查证 | 快速摘要模板 | 仅需确认 1-2 个事实 |
选定模板后,按模板结构组织报告内容。不允许跨类型混用模板结构,不允许使用 _(请手动填写)_ 类占位符。
Step 8: Report
运行 node dist/report.mjs --output 'path/to/report.md' 生成报告。
报告按 Step 7.5 选定的模板撰写。完整模板和写作规范见 references/report-templates.md。
Step 9: Verify
交付前检查:
- 报告模板与主题类型匹配(对比型 vs 诊断型 vs 快速摘要)
- 报告中每条事实声明都有可追溯的 URL
- 低质量来源(评分低于阈值)已排除
- 所有引用的 URL 已通过来源可信度核查(高风险 TLD 已标注/排除)
- 矛盾点已通过官方来源核查并标注结论
- 关键数值/定价/费率数据有 2 个以上独立来源确认
- 时效性审查已通过:所有数据的来源日期在可接受范围内
- 输出文件已写入指定位置
- 对比表/关键数据优先链向官方页面而非第三方文章
- 第三方转载数据已满足 2 源交叉比对要求,并在报告中明确标注数据来源类型
- 推广性质内容已在来源表中标注(
⚠️ 推广性质) - 无
_(请手动填写)_类占位符
Anti-Patterns
搜索阶段 (Step 1-3)
- 不检查环境可用性就直接搜索
- 用模型训练数据代替实际搜索结果
- 只看第一条搜索结果就下结论
- 一个 search/fetch 工具失败就放弃,不尝试其他可用工具
- 跳过多语言扩展搜索,仅用单语种关键词搜索,导致遗漏一手信息来源
- 在搜索日韩内容时仅使用中文关键词,未添加日文/韩文和英文搜索
抓取阶段 (Step 4)
- 跳过缓存检查重复抓取同一 URL
- 抓取失败的直接用 AI 训练数据中的记忆"补全"数据
- 发现关键维度数据缺失时不通过搜索引擎补充搜索,直接标注为"信息不足"放过
分析阶段 (Step 5-6)
- 把质量评分当绝对标准而非相对参考
- 只找到一个第三方转载来源就采纳数据,不做多源交叉比对
- 第三方来源间的矛盾用"多数投票"解决而非追溯原始官方数据
- 引用第三方文章中的数值而不核实官方来源
- 交叉验证发现矛盾时不抓取官方页面做二次确认
- 发现孤立声明后不做补充搜索就直接标注"待验证"并放过
- 引用 .cc/.xyz/.top/.tk 等低成本 TLD 域名作为官方来源而不做二次核实
- 将代理商/推广站(如 xxx.cc)的内容等同于官方信息
- 在对比表/详情中优先使用第三方链接而非官方链接
审查与报告阶段 (Step 7-9)
- 对医学/法律/金融声明不触发对抗审查
- 对涉及定价/费率/佣金的声明只用一个来源确认
- 因担心"查太多浪费时间"而跳过时效性或真实性的审查步骤
- 报告中的事实声明不附来源 URL
- 对高严谨主题不标注置信度
- 报告模板与主题类型不匹配(如对比型主题用诊断型模板)
- 报告中遗留
_(请手动填写)_占位符
脚本设计原则
- 脚本输出 JSON 指令,由 AI 执行实际的 search/fetch 工具调用
- 脚本不直接依赖任何具体的 search/fetch API
- 缓存路径可由用户通过
--cache-dir覆盖 - 所有时间敏感操作记录时间戳