search-layer
npx skills add https://github.com/blessonism/openclaw-skills --skill search-layer
Agent 安装分布
Skill 文档
Search Layer v2.2 â æå¾æç¥å¤æºæ£ç´¢åè®®
åæºå级ï¼Brave (web_search) + Exa + Tavily + Grokãææå¾èªå¨éçç¥ãè°æéãååæã
æ§è¡æµç¨
ç¨æ·æ¥è¯¢
â
[Phase 1] æå¾åç±» â ç¡®å®æç´¢çç¥
â
[Phase 2] æ¥è¯¢åè§£ & æ©å± â çæåæ¥è¯¢
â
[Phase 3] 夿ºå¹¶è¡æ£ç´¢ â Brave + search.py (Exa + Tavily + Grok)
â
[Phase 4] ç»æåå¹¶ & æåº â å»é + æå¾å æè¯å
â
[Phase 5] ç¥è¯åæ â ç»æåè¾åº
Phase 1: æå¾åç±»
æ¶å°æç´¢è¯·æ±åï¼å 夿æå¾ç±»åï¼åå³å®æç´¢çç¥ãä¸è¦é®ç¨æ·ç¨åªç§æ¨¡å¼ã
| æå¾ | è¯å«ä¿¡å· | Mode | Freshness | æéåå |
|---|---|---|---|---|
| Factual | “ä»ä¹æ¯ X”ã”X çå®ä¹”ã”What is X” | answer | â | æå¨ 0.5 |
| Status | “X ææ°è¿å±”ã”X ç°ç¶”ã”latest X” | deep | pw/pm | æ°é²åº¦ 0.5 |
| Comparison | “X vs Y”ã”X å Y åºå«” | deep | py | å ³é®è¯ 0.4 + æå¨ 0.4 |
| Tutorial | “æä¹å X”ã”X æç¨”ã”how to X” | answer | py | æå¨ 0.5 |
| Exploratory | “æ·±å ¥äºè§£ X”ã”X çæ”ã”about X” | deep | â | æå¨ 0.5 |
| News | “X æ°é»”ã”æ¬å¨ X”ã”X this week” | deep | pd/pw | æ°é²åº¦ 0.6 |
| Resource | “X å®ç½”ã”X GitHub”ã”X ææ¡£” | fast | â | å ³é®è¯ 0.5 |
详ç»åç±»æåè§
references/intent-guide.md
夿è§åï¼
- æ«ææ¥è¯¢ä¸çä¿¡å·è¯
- å¤ä¸ªç±»åå¹é æ¶éæå ·ä½ç
- æ æ³å¤ææ¶é»è®¤
exploratory
Phase 2: æ¥è¯¢åè§£ & æ©å±
æ ¹æ®æå¾ç±»åï¼å°ç¨æ·æ¥è¯¢æ©å±ä¸ºä¸ç»åæ¥è¯¢ï¼
éç¨è§å
- ææ¯åä¹è¯èªå¨æ©å±ï¼k8sâKubernetes, JSâJavaScript, GoâGolang, PostgresâPostgreSQL
- ä¸æææ¯æ¥è¯¢ï¼åæ¶çæè±æåä½ï¼å¦ “Rust 弿¥ç¼ç¨” â é¢å¤æ “Rust async programming”ï¼
ææå¾æ©å±
| æå¾ | æ©å±çç¥ | ç¤ºä¾ |
|---|---|---|
| Factual | å “definition”ã”explained” | “WebTransport” â “WebTransport”, “WebTransport explained overview” |
| Status | å 年份ã”latest”ã”update” | “Deno è¿å±” â “Deno 2.0 latest 2026”, “Deno update release” |
| Comparison | ææ 3 ä¸ªåæ¥è¯¢ | “Bun vs Deno” â “Bun vs Deno”, “Bun advantages”, “Deno advantages” |
| Tutorial | å “tutorial”ã”guide”ã”step by step” | “Rust CLI” â “Rust CLI tutorial”, “Rust CLI guide step by step” |
| Exploratory | ææ 2-3 个è§åº¦ | “RISC-V” â “RISC-V overview”, “RISC-V ecosystem”, “RISC-V use cases” |
| News | å “news”ã”announcement”ãæ¥æ | “AI æ°é»” â “AI news this week 2026”, “AI announcement latest” |
| Resource | å å ·ä½èµæºç±»å | “Anthropic MCP” â “Anthropic MCP official documentation” |
Phase 3: 夿ºå¹¶è¡æ£ç´¢
Step 1: Braveï¼æææ¨¡å¼ï¼
对æ¯ä¸ªåæ¥è¯¢è°ç¨ web_searchã妿æå¾æ freshness è¦æ±ï¼ä¼ freshness åæ°ï¼
web_search(query="Deno 2.0 latest 2026", freshness="pw")
Step 2: Exa + Tavily + Grokï¼Deep / Answer 模å¼ï¼
å¯¹åæ¥è¯¢è°ç¨ search.pyï¼ä¼ å ¥æå¾å freshnessï¼
python3 /home/node/.openclaw/workspace/skills/search-layer/scripts/search.py \
--queries "åæ¥è¯¢1" "åæ¥è¯¢2" "åæ¥è¯¢3" \
--mode deep \
--intent status \
--freshness pw \
--num 5
忍¡å¼æºåä¸ç©éµï¼
| æ¨¡å¼ | Exa | Tavily | Grok | 说æ |
|---|---|---|---|---|
| fast | â | â | fallback | Exa ä¼å ï¼æ Exa key æ¶ç¨ Grok |
| deep | â | â | â | 䏿ºå¹¶è¡ |
| answer | â | â | â | ä» Tavilyï¼å« AI answerï¼ |
åæ°è¯´æï¼
| åæ° | 说æ |
|---|---|
--queries |
å¤ä¸ªåæ¥è¯¢å¹¶è¡æ§è¡ï¼ä¹å¯ç¨ä½ç½®åæ°ä¼ å个æ¥è¯¢ï¼ |
--mode |
fast / deep / answer |
--intent |
æå¾ç±»åï¼å½±åè¯åæéï¼ä¸ä¼ åä¸è¯åï¼è¡ä¸ºä¸ v1 ä¸è´ï¼ |
--freshness |
pd(24h) / pw(å¨) / pm(æ) / py(å¹´) |
--domain-boost |
éå·åéçååï¼å¹é çç»ææå¨å +0.2 |
--num |
æ¯æºæ¯æ¥è¯¢çç»ææ° |
Grok æºè¯´æï¼
- éè¿ completions API è°ç¨ Grok 模åï¼
grok-4.1-fastï¼ï¼å©ç¨å ¶å®æ¶ç¥è¯è¿åç»æåæç´¢ç»æ - èªå¨æ£æµæ¶é´æææ¥è¯¢å¹¶æ³¨å ¥å½åæ¶é´ä¸ä¸æ
- å¨ deep 模å¼ä¸ä¸ ExaãTavily å¹¶è¡æ§è¡
- éè¦å¨
~/.openclaw/credentials/search.jsonä¸é ç½® Grok çapiUrlãapiKeyãmodelï¼æéè¿ç¯å¢åéGROK_API_URLãGROK_API_KEYãGROK_MODELï¼ - 妿 Grok é 置缺失ï¼èªå¨é级为 Exa + Tavily åæº
Step 3: åå¹¶
å° Brave ç»æä¸ search.py è¾åºåå¹¶ãæ canonical URL å»éï¼æ è®°æ¥æºã
妿 search.py è¿åäº score åæ®µï¼ç¨å®æåºï¼Brave ç»ææ²¡æ score çï¼ç¨åæ ·çæå¾æéå
¬å¼è¡¥ç®ã
Phase 4: ç»ææåº
è¯åå ¬å¼
score = w_keyword à keyword_match + w_freshness à freshness_score + w_authority à authority_score
æéç±æå¾å³å®ï¼è§ Phase 1 è¡¨æ ¼ï¼ãåå项ï¼
- keyword_match (0-1)ï¼æ¥è¯¢è¯å¨æ é¢+æè¦ä¸çè¦çç
- freshness_score (0-1)ï¼åºäºå叿¥æï¼è¶æ°è¶é«ï¼æ æ¥æ=0.5ï¼
- authority_score (0-1)ï¼åºäºååæå¨ç级
- Tier 1 (1.0): github.com, stackoverflow.com, 宿¹ææ¡£ç«
- Tier 2 (0.8): HN, dev.to, ç¥åææ¯å客
- Tier 3 (0.6): Medium, æé, InfoQ
- Tier 4 (0.4): å ¶ä»
宿´ååè¯å表è§
references/authority-domains.json
Domain Boost
éè¿ --domain-boost åæ°æå¨æå®éè¦å æçååï¼å¹é
çç»ææå¨å +0.2ï¼ï¼
search.py "query" --mode deep --intent tutorial --domain-boost dev.to,freecodecamp.org
æ¨èæé ï¼
- Tutorial â
dev.to, freecodecamp.org, realpython.com, baeldung.com - Resource â
github.com - News â
techcrunch.com, arstechnica.com, theverge.com
Phase 5: ç¥è¯åæ
æ ¹æ®ç»ææ°ééæ©åæçç¥ï¼
å°ç»æéï¼â¤5 æ¡ï¼
éæ¡å±ç¤ºï¼æ¯æ¡å¸¦æºæ ç¾åè¯åï¼
1. [Title](url) â snippet... `[brave, exa]` â0.85
2. [Title](url) â snippet... `[tavily]` â0.72
ä¸ç»æéï¼5-15 æ¡ï¼
æä¸»é¢èç±» + æ¯ç»æè¦ï¼
**ä¸»é¢ A: [æè¿°]**
- [ç»æ1] â è¦ç¹... `[source]`
- [ç»æ2] â è¦ç¹... `[source]`
**ä¸»é¢ B: [æè¿°]**
- [ç»æ3] â è¦ç¹... `[source]`
å¤§ç»æéï¼15+ æ¡ï¼
é«å±ç»¼è¿° + Top 5 + æ·±å ¥æç¤ºï¼
[䏿®µç»¼è¿°ï¼æ¦æ¬ä¸»è¦åç°]
**Top 5 æç¸å
³ç»æï¼**
1. ...
2. ...
å
±æ¾å° N æ¡ç»æï¼è¦ç [æºå表]ãéè¦æ·±å
¥åªä¸ªæ¹é¢ï¼
åæè§å
- å ç»çæ¡ï¼å忥æºï¼ä¸è¦å 说”ææäºä»ä¹”ï¼
- æä¸»é¢èåï¼ä¸ææ¥æºèåï¼ä¸è¦”Brave ç»æï¼… Exa ç»æï¼…”ï¼
- å²çªä¿¡æ¯æ¾æ§æ 注ï¼ä¸åæºè¯´æ³çç¾æ¶æç¡®æåº
- 置信度表达ï¼
- 夿ºä¸è´ + æ°é² â ç´æ¥éè¿°
- åæºæè¾æ§ â “æ ¹æ® [source]ï¼…”
- å²çªæä¸ç¡®å® â “åå¨ä¸å说æ³ï¼A 认为…ï¼B 认为…”
é级çç¥
- 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 å®å
¨ä¸è´ï¼æ è¯åï¼æåå§é¡ºåºè¾åºï¼ã
ç°æè°ç¨æ¹ï¼å¦ github-explorerï¼æ éä¿®æ¹ã
å¿«éåè
| åºæ¯ | å½ä»¤ |
|---|---|
| å¿«éäºå® | 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 |