name: smart-search description: 智能搜索路由器。根据用户意图选择最佳搜索源,构造 URL 并导航,获取内容。 Replaces the built-in web_search tool for targeted, platform-specific searches. metadata: openclaw: emoji: 🔍
Smart Search 智能搜索路由器
本技能只负责搜索和阅读,不负责发布、点赞、关注、回复等互动操作(那些由各平台专属技能处理)。
使用流程
- 确定数据源:根据用户意图和下方路由规则,选择搜索平台
- 读取站点知识:查看
./sites/<platform>.md获取搜索 URL、分页、pitfalls、fallback - 执行搜索:Cookie Warmup → 导航到搜索 URL → 等待加载 → 提取内容
- 搜索摘要:每次查询结束必须汇报(格式见下方)
路由规则
用户明确指定平台时
直接使用对应平台。平台名与站点知识文件对应:
| 用户可能说 | 站点文件 | 搜索类型 |
|---|---|---|
| 百度 / Baidu | sites/general.md → Baidu |
通用搜索 |
| Bing / 必应 | sites/general.md → Bing |
通用搜索(推荐) |
| 夸克 / Quark | sites/general.md → Quark |
通用搜索(fallback) |
| 知乎 | sites/zhihu.md |
中文问答 |
| 小红书 / XHS / 红薯 | sites/xiaohongshu.md |
生活方式/真实体验 |
| 抖音 / Douyin | sites/douyin.md |
短视频 |
| B站 / Bilibili | sites/bilibili.md |
视频/番剧 |
| 微博 / Weibo | sites/weibo.md |
热点/舆论 |
| YouTube / 油管 | sites/youtube.md |
视频 |
| Twitter / X / 推特 | sites/twitter.md |
实时讨论 |
sites/reddit.md |
社区讨论 | |
| GitHub | sites/github.md |
代码/项目 |
| LinkedIn / 领英 | sites/linkedin.md |
职业/招聘 |
| 微信视频号 | sites/wechat-channels.md |
视频号内容 |
| 雪球 | sites/financial.md → 雪球 |
股票/金融 |
| arXiv | sites/academic.md → arXiv |
学术预印本 |
| 百度学术 | sites/academic.md → 百度学术 |
中文学术 |
| 万方 | sites/academic.md → 万方 |
中文学术 |
| Wikipedia | sites/academic.md → Wikipedia |
百科 |
| 贴吧 | sites/tech.md → 贴吧 |
兴趣社区 |
| Hacker News | sites/tech.md → HN |
科技社区 |
| V2EX | sites/tech.md → V2EX |
技术社区 |
| 路透社 / Reuters | sites/news.md |
国际新闻 |
| 国务院 | sites/gov.md |
政策文件 |
| Amazon | sites/shopping.md |
购物 |
用户未指定平台时
按意图优先级自动路由:
| 意图特征 | 首选 | 补充 |
|---|---|---|
| 中文通用/热点 | Bing | — |
| 中文深度问答 | 知乎 | — |
| 生活方式/真实体验 | 小红书 | — |
| 短视频内容 | 抖音 | — |
| 视频/番剧 | B站 | — |
| 中文舆论/热搜 | 微博 | — |
| 英文通用 | Bing | — |
| 技术/代码 | GitHub | — |
| 学术/论文 | arXiv | 百度学术 |
| 股票/金融 | 雪球 | — |
| 国际新闻 | Reuters | — |
频率限制
同一用户问题(同一意图链路,含追问澄清)内:
- 每个站点最多调用 2 次(第 2 次必须有明确理由:结果过宽需限定、信息不足需补充角度)
- 不要第 3 次调用同一站点;若信息仍不足,停止扩搜并说明缺口
browser navigate到搜索 URL、browser snapshot读取结果,每次导航计为 1 次调用- Cookie Warmup(仅访问首页)不计入调用次数
- 因报错/超时/验证码/登录墙失败也算 1 次,不要无限重试
Keyword 编码
- 空格:
+用于 Bing、GitHub、Bilibili;%20用于 Douyin、Twitter、Facebook、Zhihu;两者皆可用于 Baidu、Quark、YouTube - 特殊字符:URL-encode(
#→%23,&→%26,?→%3F) - 中文:URL-encode(浏览器导航时自动处理)
Cookie Warmup 速查
以下平台必须先访问首页再搜索,否则返回空结果或跳转登录:
| 平台 | Warmup URL |
|---|---|
| 知乎 | https://www.zhihu.com |
| 微博 | https://weibo.com |
| 小红书 | https://www.xiaohongshu.com |
| 抖音 | https://www.douyin.com |
| YouTube | https://www.youtube.com |
| Twitter/X | https://x.com |
https://www.reddit.com |
|
| 雪球 | https://xueqiu.com |
https://www.linkedin.com |
|
| TikTok | https://www.tiktok.com |
| 路透社 | https://www.reuters.com |
不需要 Warmup:Bing、Baidu、Quark、GitHub、arXiv、Wikipedia、HackerNews、V2EX、贴吧、Amazon、百度学术、万方、国务院
浏览器操作最佳实践
页面加载等待
- 通用站点:等待 3-5 秒
- 重度客户端渲染(Twitter/X、小红书、抖音):等待 5 秒以上
- snapshot 显示内容不完整时再等几秒重新 snapshot
超时错误处理
- 不重启浏览器,不执行
browser stop/start - 等待 30 秒后在原页面继续
- 只有重开浏览器仍报错才是真正出错
表单输入
- 用
browser act的type动作 +slowly: true - 不用
fill(),可能无法正确触发搜索
登录墙 / CAPTCHA
- 遇到登录墙、验证码、人机验证,遵循 browser-guide 技能
- 不要反复重试,最多 2 次后转其他数据源或告知用户
Aria Snapshot 辅助结果提取(Patchright 1.59+)
当 DOM snapshot 噪音过多(大量广告/推荐/脚手架 DOM)时,可用 page.ariaSnapshot() 获取页面语义结构,更精准地定位搜索结果区域:
// 带 bounding box,AI 可判断元素位置
const aria = await page.ariaSnapshot({ boxes: true });
Aria snapshot 只包含有语义角色的元素(按钮、链接、标题、文章等),过滤掉装饰性 DOM,适合快速理解搜索结果布局。
搜索后操作
- 确认结果已加载(snapshot)
- 遇到登录墙/CAPTCHA → browser-guide
- 提取所需信息
- 需要更多结果 → 查看
sites/<platform>.md的分页方式 - 提取完毕后立即关闭标签页
搜索摘要
每次查询结束,回答末尾必须追加搜索摘要,至少包含:
- 使用了什么站点
- 每个站点搜了什么关键词
- 每个站点调用了几次
格式:
搜索摘要
- 站点:<site1> | 关键词:<term1> | 次数:<n>
- 站点:<site2> | 关键词:<term2>;<term3> | 次数:<n>
- 已跳过:<site3>,原因:达到频率上限
站点详细知识
各平台搜索的详细参数、分页、pitfalls、fallback、DOM 提取提示,见 ./sites/ 目录下对应文件。执行搜索前务必先读对应站点文件,避免踩坑。