Search Layer v2.2 是一个意图感知的多源检索协议,定位为面向所有搜索/查询需求的默认搜索工具。它由多源搜索与去重层构成,带有意图感知评分能力。
【用途】 当需要搜索或查询资料时,Search Layer 作为默认工具使用。它面向多来源检索场景,把 Brave Search(web_search)与 Exa、Tavily、Grok 作为四个同级来源,按查询意图自动选择检索策略、调整权重并进行结果合成。工具内置对搜索意图的判断,用户无需指定使用哪种模式。
【主要能力与执行流程】 执行流程分为五个阶段:意图分类、查询分解与扩展、多源并行检索、结果合并与排序、知识合成。
-
意图分类:识别查询属于哪类意图,据此决定搜索策略。意图类型包括 Factual、Status、Comparison、Tutorial、Exploratory、News、Resource,各自对应不同 Mode(answer/deep/fast)、Freshness 设置和权重偏向。判断规则为扫描查询信号词,多类型匹配时选最具体的,无法判断时默认 exploratory。
-
查询分解与扩展:把查询扩展成一组子查询。通用规则包括技术同义词扩展(如 k8s→Kubernetes、JS→JavaScript、Go→Golang、Postgres→PostgreSQL)以及中文技术查询同时生成英文变体。不同意图有不同扩展策略,例如 Factual 加 definition/explained,Status 加年份/latest/update,Comparison 拆成三个子查询,Tutorial 加 tutorial/guide/step by step,News 加 news/announcement/日期,Resource 加具体资源类型。
-
多源并行检索:所有模式下对每个子查询调用 web_search(Brave),如有 freshness 要求则传参。Deep/Answer 模式下再调用 search.py 使用 Exa、Tavily、Grok。模式与来源参与矩阵为:fast 模式 Exa 优先、无 Exa key 时用 Grok;deep 模式三源并行;answer 模式仅用 Tavily(含 AI answer)。search.py 支持 --queries、--mode、--intent、--freshness(pd/pw/pm/py)、--domain-boost、--num 等参数。Grok 源通过 completions API 调用 grok-4.1-fast,自动检测时间敏感查询并注入当前时间上下文,需配置 apiUrl、apiKey、model,缺失时自动降级为 Exa+Tavily 双源。
-
引用追踪(Phase 3.5):当搜索结果含 GitHub issue/PR 链接且意图为 Status 或 Exploratory 时自动触发。可用 search.py --extract-refs 批量提取引用图,或用 --extract-refs-urls 对已知 URL 提取;也可用 fetch-thread 对单个 URL 拉取完整讨论流与结构化引用,支持 json、markdown、--extract-refs-only 等格式。GitHub 场景通过 API 拉取正文、全部 comments 和 timeline 事件,提取 issue/PR 引用、Duplicate 标记、Commit 引用、关联 PR/issue 及外部 URL;通用 web 场景用 web fetch + 正则提取引用链接。
-
结果合并与排序:按 canonical URL 去重并标记来源,用意图权重公式计算评分:score = w_keyword × keyword_match + w_freshness × freshness_score + w_authority × authority_score。keyword_match 为查询词在标题+摘要中的覆盖率;freshness_score 基于发布日期(无日期=0.5);authority_score 基于域名权威等级(Tier 1 如 github.com、stackoverflow.com、官方文档站,Tier 2 如 HN、dev.to,Tier 3 如 Medium、掘金、InfoQ,Tier 4 为其他)。--domain-boost 可手动加权指定域名。
-
知识合成(Phase 5):按结果数量选择策略。≤5 条逐条展示并带源标签与评分;5-15 条按主题聚类加每组摘要;15+ 条做高层综述 + Top 5 + 深入提示。合成规则包括先给答案再列来源、按主题聚合而非按来源聚合、冲突信息显性标注,并按多源一致/单源或较旧/冲突或不确定分别表达置信度。
【使用方式】 通过命令行调用,典型调用方式如: python3 /home/node/.openclaw/workspace/skills/search-layer/scripts/search.py --queries "子查询1" "子查询2" "子查询3" --mode deep --intent status --freshness pw --num 5
快速参考场景命令包括:快速事实用 web_search + search.py --mode answer --intent factual;深度调研用 web_search + search.py --mode deep --intent exploratory;最新动信用 web_search(freshness="pw") + search.py --mode deep --intent status --freshness pw;对比分析用 web_search × 3 queries + search.py --queries "A vs B" "A pros" "B pros" --intent comparison;找资源用 web_search + search.py --mode fast --intent resource。
Grok 配置需在 ~/.openclaw/credentials/search.json 中配置 apiUrl、apiKey、model,或通过环境变量 GROK_API_URL、GROK_API_KEY、GROK_MODEL 提供。
【适用场景】 适用于需要多来源检索、去重与排序的搜索需求,包括快速事实查询、深度调研、最新动态跟踪、对比分析、教程查找、资源定位、新闻检索,以及 GitHub issue/PR 的引用追踪与讨论流深度抓取。
【限制与降级策略】 各来源失败有降级机制:Exa 429/5xx 时继续 Brave+Tavily+Grok;Tavily 429/5xx 时继续 Brave+Exa+Grok;Grok 超时/错误时继续 Brave+Exa+Tavily;search.py 整体失败时仅用始终可用的 Brave web_search。原则是不因某个来源失败而阻塞主流程。向后兼容方面,不带 --intent 参数时 search.py 行为与 v1 一致(无评分,按原始顺序输出),现有调用方无需修改。
【资料未提供的部分】 关于该工具的收费、价格、官方托管平台、具体安装命令、许可协议等信息,暂未提供。