diff --git a/skills/smart-search/SKILL.md b/skills/smart-search/SKILL.md new file mode 100644 index 00000000..a66819dc --- /dev/null +++ b/skills/smart-search/SKILL.md @@ -0,0 +1,156 @@ +--- +name: smart-search +description: 基于 opencli 命令的智能搜索路由器。当用户想要搜索、查询、查找或研究信息时,尤其是涉及指定网站、社交媒体、技术资料、新闻、购物、旅游、求职、金融或中文内容时,务必使用此 skill +--- + +# 智能搜索路由器 + +根据话题和场景,将查询路由到最佳的 opencli 搜索源。此 skill 的核心目标不是记忆命令,而是先定位数据源,再让 Agent 通过 `opencli` 自己读取实时帮助,避免文档漂移。 + +## 强制预检 + +每次使用前,必须先做下面两步: + +- 运行 `opencli list -f yaml` +- 用 live registry 确认候选站点是否存在,并检查 `strategy`、`browser`、`domain` + +选定站点后,必须再做下面两步: + +- 运行 `opencli -h` 查看该站点有哪些子命令 +- 若已锁定某个子命令,再运行 `opencli -h` 查看参数、输出列、策略 + +不要在 skill 文档里硬编码参数或假设命令签名;以 `opencli ... -h` 的实时输出为准。 + +## 主路由规则 + +只使用这一条规则,不再维护多套优先级: + +1. 当用户明确指定网站、平台或数据源时,直接使用对应网站。 +2. 当用户没有指定网站时,优先只选择一个 AI 源:`grok`、`doubao`、`gemini` 三选一。 +3. 当 AI 返回内容不足、缺少原始数据、需要权威佐证或需要垂直结果时,再补充 1-2 个专用源。 + +## 单题预算与频率限制 + +把“单个用户问题”理解为同一意图链路下的一次问题求解;同一轮追问、澄清、补充条件,若核心问题未变,仍算同一题。 + +先建立一份站点调用台账。每次真正执行搜索命令后,立刻更新: + +- `site` +- `query` +- `count` +- `status` + +计数规则: + +- `opencli list -f yaml`、`opencli -h`、`opencli -h` 属于预检与帮助,不计入搜索次数 +- 一次真正的 `opencli ...` 搜索/查询执行,计为该站点 1 次调用 +- 同站点因为报错、超时、验证码、反爬、登录态异常而失败,也算 1 次调用,不要无限重试 + +频率上限: + +- AI 站点硬限制:同一题内,每个 AI 站点最多调用 1 次 +- 默认策略仍然是只选 1 个 AI 站点,不要把多个 AI 站点串成常规流程 +- 只有当用户明确要求比较多个 AI 站点时,才可以额外调用其他 AI 站点;但每个被点名的 AI 站点仍然最多 1 次 +- 非 AI 站点默认最多调用 2 次 +- 非 AI 站点第 2 次调用必须有明确理由,例如第一次结果过宽,需要加时间、地区、类别、排序或关键词限定 +- 非 AI 站点不要进行第 3 次调用;若信息仍不足,停止扩搜并明确说明缺口 + +触发限频后的处理: + +- 记录:「已跳过: 达到频率上限」 +- 优先改用其他同类站点 +- 若没有合适替代源,则直接基于已收集信息回答,并说明覆盖范围与缺口 + +## 查询结束汇报 + +每次查询结束后,回答末尾必须追加一段简短的“搜索摘要”,至少包含下面三项: + +- 使用了什么网站搜索 +- 每个网站搜了什么词 +- 每个网站搜了几次 + +如果有被限频跳过的站点,也要明确写出。 + +建议使用下面的固定格式: + +```md +搜索摘要 +- 网站: | 查询词: | 次数: +- 网站: | 查询词: | 次数: +- 已跳过:,原因:达到频率上限 +``` + +## AI 源选择 + +- `grok` + 适合实时讨论、英文互联网舆论、Twitter/X 语境、热点追踪。 +- `doubao` + 适合中文语境、字节抖音生态、生活方式内容、中文热点与泛中文问答。 +- `gemini` + 适合全球网页、英文资料、通用信息检索、背景综述。 + +如果用户没有指定网站,默认先判断语言和语境,再从这三个里只选一个。 + +一旦某个 AI 站点已经执行过一次真实查询,就不要在同一题里改写关键词后再次调用该 AI 站点。若答案不足,优先补专用源,不要反复追打同一个 AI 站点。 + +## AI 查询词建议 + +当使用 AI 源时,不要只丢一个过短关键词。优先构造成“主题 + 目标 + 限定条件”的查询。 + +- 主题 + 用户真正要查的对象、事件、产品、人物、公司、技术名词。 +- 目标 + 想要什么结果,例如总结、对比、原因、趋势、推荐、原始线索。 +- 限定条件 + 语言、地区、时间范围、平台范围、受众、价格带、岗位地点、是否要引用原始来源。 + +优先使用下面这种表达方式: + +- `<主题> + <你要回答的问题>` +- `<主题> + <时间范围/地区/语言>` +- `<主题> + <平台或来源范围>` +- `<主题> + <输出要求>` + +避免只输入: + +- 单个名词 +- 没有时间范围的热点问题 +- 没有地区限制的购物、求职、旅游问题 +- 没有平台限制的社交媒体问题 + +## 专用源补充时机 + +当出现以下任一情况时,再补充专用源: + +- AI 给出的是摘要,但你需要原始帖子、原始视频、原始商品或原始职位结果 +- AI 覆盖面不足,漏掉垂直站点信息 +- 需要更高权威性或更强领域相关性 +- 用户明确要求“从某个平台找” + +单次查询通常控制在 1 个 AI 源 + 1 到 2 个专用源,避免结果过载。 + +## 处理不可用的源 + +当站点不可用时: + +- 不要因为单个源失败而中止整个搜索 +- 记录:「已跳过: 不可用」 +- 回退到同类其他站点,或回退到一个 AI 源 +- 始终以 `opencli list -f yaml` 与 `opencli -h` 的实际结果为准 + +不要假设任何站点“绝对可用”。即使是公开站点,也以当前环境中的 live help 和执行结果为准。 + +## 参考文件 + +根据需要读取对应文件: + +- **`references/sources-ai.md`** — AI 默认源 +- **`references/sources-tech.md`** — 技术 / 学术 +- **`references/sources-social.md`** — 社交媒体 +- **`references/sources-media.md`** — 媒体 / 娱乐 +- **`references/sources-info.md`** — 资讯 / 知识 +- **`references/sources-shopping.md`** — 购物 +- **`references/sources-travel.md`** — 旅游 +- **`references/sources-other.md`** — 其他垂直源 + +只读与当前查询相关的文件,无需全部加载。 diff --git a/skills/smart-search/references/sources-ai.md b/skills/smart-search/references/sources-ai.md new file mode 100644 index 00000000..4ebd00d2 --- /dev/null +++ b/skills/smart-search/references/sources-ai.md @@ -0,0 +1,74 @@ +# AI 默认源 + +当用户没有明确指定网站时,先在 `grok`、`doubao`、`gemini` 中选择一个,不要一开始并行跑多个 AI 源。 + +## 使用规则 + +1. 先运行 `opencli list -f yaml` +2. 确认 `grok`、`doubao`、`gemini` 哪些在当前 registry 中可用 +3. 运行 `opencli -h` +4. 锁定具体子命令后,再运行 `opencli -h` + +## 路由建议 + +### grok + +- 适用:实时热点、Twitter/X 语境、英文互联网讨论、舆论与趋势 +- 补充源常见去向:`twitter`、`reddit`、`reuters`、`google` +- 搜索词建议: + - 加上时间范围,例如“today / this week” + - 加上平台范围,例如“on X”, “from social posts” + - 加上目标,例如“latest reactions”, “main viewpoints”, “key claims” + - 示例: + - `OpenAI latest reactions on X this week` + - `TSLA earnings main viewpoints on social media April 2026` + - `Nintendo Switch 2 rumors latest discussion on X` + +### doubao + +- 适用:中文语境、国内热点、生活方式、字节生态、中文泛问答 +- 补充源常见去向:`xiaohongshu`、`weibo`、`zhihu`、`bilibili`、`36kr` +- 搜索词建议: + - 加上中文场景限定,例如“中文讨论”“国内用户”“小红书/微博语境” + - 加上需求目标,例如“帮我总结”“给我对比”“提取推荐理由” + - 加上人群或用途,例如“适合新手”“预算 500 元内”“上海求职” + - 示例: + - `2026年MacBook Air值得买吗 中文讨论里主要观点是什么` + - `上海 AI 产品经理招聘趋势 近一个月中文信息总结` + - `敏感肌防晒推荐 中文用户常提到的优缺点` + +### gemini + +- 适用:全球网页、英文资料、背景综述、通用检索 +- 补充源常见去向:`google`、`wikipedia`、`arxiv`、`stackoverflow` +- 搜索词建议: + - 加上主题类型,例如“overview”, “comparison”, “background”, “best sources” + - 加上范围限定,例如地区、时间、语言、行业 + - 加上结果形式,例如“with sources”, “compare pros and cons”, “official guidance” + - 示例: + - `MCP overview and official guidance with sources` + - `best budget travel destinations in Japan April 2026 compare pros and cons` + - `TypeScript decorators current status official sources` + +## 补充原则 + +- 先用一个 AI 源拿到初步答案 +- 若答案缺少原始数据、垂直结果或权威来源,再补 1-2 个专用源 +- 不要把 AI 默认源当成命令签名的事实来源;命令细节始终以 `opencli ... -h` 为准 + +## 通用写法模板 + +可直接按下面模板构造 AI 查询: + +- 热点/新闻: + `<事件> + 最新进展 + <时间范围> + <地区/平台>` +- 对比/推荐: + `<对象A> vs <对象B> + <关注维度> + <人群/预算/用途>` +- 中文社区: + `<主题> + 中文讨论里主要观点 + <时间范围>` +- 全球资料: + `<主题> + overview/background + with sources` +- 求职: + `<岗位> + <城市/国家> + market trends/hiring + <时间范围>` +- 购物: + `<商品> + reviews/price/value + <地区/预算>` diff --git a/skills/smart-search/references/sources-info.md b/skills/smart-search/references/sources-info.md new file mode 100644 index 00000000..8940d3e4 --- /dev/null +++ b/skills/smart-search/references/sources-info.md @@ -0,0 +1,43 @@ +# 资讯 / 知识 + +用于新闻、百科、通用知识、中文科技资讯。 + +## 站点 + +### google + +- 适用:通用网页搜索、跨站点兜底 +- 使用前先运行:`opencli google -h` + +### wikipedia + +- 适用:名词解释、背景知识、历史事实 +- 使用前先运行:`opencli wikipedia -h` + +### reuters + +- 适用:国际新闻、事实性报道 +- 使用前先运行:`opencli reuters -h` + +### weibo + +- 适用:微博热点、话题、中文舆论 +- 使用前先运行:`opencli weibo -h` + +### 36kr + +- 适用:中文科技、创业、融资资讯 +- 使用前先运行:`opencli 36kr -h` + +### substack + +- 适用:newsletter、作者订阅内容、长文 +- 使用前先运行:`opencli substack -h` + +## 路由提示 + +- 背景知识与定义,优先 `wikipedia` +- 通用网页与跨站信息,优先 `google` +- 国际新闻优先 `reuters` +- 中文科技资讯优先 `36kr` +- 当 AI 回答过于泛化时,用这些源补充事实和链接 diff --git a/skills/smart-search/references/sources-media.md b/skills/smart-search/references/sources-media.md new file mode 100644 index 00000000..a9d53071 --- /dev/null +++ b/skills/smart-search/references/sources-media.md @@ -0,0 +1,50 @@ +# 媒体 / 娱乐 + +用于视频、电影、剧集、音乐、播客、内容平台搜索。 + +## 站点 + +### bilibili + +- 适用:中文视频、教程、评测、UP 主内容 +- 使用前先运行:`opencli bilibili -h` + +### youtube + +- 适用:英文视频、教程、评测、访谈 +- 使用前先运行:`opencli youtube -h` + +### tiktok + +- 适用:短视频、热点、娱乐内容 +- 使用前先运行:`opencli tiktok -h` + +### imdb + +- 适用:电影、剧集、演员、评分 +- 使用前先运行:`opencli imdb -h` + +### douban + +- 适用:中文电影、书籍、音乐口碑与评分 +- 使用前先运行:`opencli douban -h` + +### spotify + +- 适用:歌曲、歌手、专辑 +- 使用前先运行:`opencli spotify -h` + +### apple-podcasts + +- 适用:播客节目、播客搜索 +- 使用前先运行:`opencli apple-podcasts -h` + +### medium + +- 适用:长文、技术博客、设计与产品文章 +- 使用前先运行:`opencli medium -h` + +## 路由提示 + +- 用户只说“找视频/影评/播客/文章”,先按内容形态选站点 +- 用户没有指定站点时,可先用 `doubao`、`grok` 或 `gemini` 做一轮粗检索,再补媒体站点拿原始结果 diff --git a/skills/smart-search/references/sources-other.md b/skills/smart-search/references/sources-other.md new file mode 100644 index 00000000..2c184349 --- /dev/null +++ b/skills/smart-search/references/sources-other.md @@ -0,0 +1,42 @@ +# 其他垂直源 + +用于求职、金融、书籍、词典等不适合归入前述分类的场景。 + +## 站点 + +### linkedin + +- 适用:全球职位、英文岗位、跨国公司招聘 +- 使用前先运行:`opencli linkedin -h` + +### boss + +- 适用:国内职位搜索、招聘与岗位信息 +- 使用前先运行:`opencli boss -h` + +### xueqiu + +- 适用:股票、金融讨论、行情相关线索 +- 使用前先运行:`opencli xueqiu -h` + +### weread + +- 适用:中文书籍搜索与书单线索 +- 使用前先运行:`opencli weread -h` + +### dictionary + +- 适用:英文词义、基础词典查询 +- 使用前先运行:`opencli dictionary -h` + +### sinablog + +- 适用:较旧的中文博客内容 +- 使用前先运行:`opencli sinablog -h` + +## 路由提示 + +- 求职:全球优先 `linkedin`,国内优先 `boss` +- 金融:优先 `xueqiu` +- 书籍:中文优先 `weread` +- 英文单词定义:优先 `dictionary` diff --git a/skills/smart-search/references/sources-shopping.md b/skills/smart-search/references/sources-shopping.md new file mode 100644 index 00000000..26afb7c1 --- /dev/null +++ b/skills/smart-search/references/sources-shopping.md @@ -0,0 +1,31 @@ +# 购物 + +用于商品搜索、价格、好价、口碑与区域电商结果。 + +## 站点 + +### amazon + +- 适用:全球商品搜索、价格参考、英文电商 +- 使用前先运行:`opencli amazon -h` + +### smzdm + +- 适用:国内好价、优惠、导购、商品讨论 +- 使用前先运行:`opencli smzdm -h` + +### coupang + +- 适用:韩国电商商品搜索 +- 使用前先运行:`opencli coupang -h` + +### douban + +- 适用:图书、影视、音乐类口碑补充,不是标准电商,但可用于消费决策补充 +- 使用前先运行:`opencli douban -h` + +## 路由提示 + +- 用户指定平台时直接使用该平台 +- 未指定平台时,全球商品优先 `amazon`,国内好价优先 `smzdm` +- 若先用 AI 做产品调研,后续可补电商站点拿实际商品结果 diff --git a/skills/smart-search/references/sources-social.md b/skills/smart-search/references/sources-social.md new file mode 100644 index 00000000..17fdfbd5 --- /dev/null +++ b/skills/smart-search/references/sources-social.md @@ -0,0 +1,51 @@ +# 社交媒体 + +用于需要原始帖子、原始用户结果、中文或英文社区讨论时。 + +## 站点 + +### twitter + +- 适用:Twitter/X 原始帖子、作者、实时讨论 +- 使用前先运行:`opencli twitter -h` + +### weibo + +- 适用:微博热点、话题、中文舆论 +- 使用前先运行:`opencli weibo -h` + +### xiaohongshu + +- 适用:生活方式、穿搭、美妆、旅行、真实体验 +- 使用前先运行:`opencli xiaohongshu -h` + +### zhihu + +- 适用:中文深度问答、专业解释、行业经验 +- 使用前先运行:`opencli zhihu -h` + +### tieba + +- 适用:兴趣圈子、历史帖子、粉丝社区 +- 使用前先运行:`opencli tieba -h` + +### instagram + +- 适用:账号搜索、图片社交线索 +- 使用前先运行:`opencli instagram -h` + +### facebook + +- 适用:主页、人物、帖子线索 +- 使用前先运行:`opencli facebook -h` + +### bluesky + +- 适用:Bluesky 用户与账号搜索 +- 使用前先运行:`opencli bluesky -h` + +## 路由提示 + +- 用户明确指定某个平台时,直接用该平台 +- 用户只说“社交媒体上怎么看”时,可先选 `grok` 或 `doubao` +- AI 只给摘要而没有原始帖子时,再切到对应社交站点 diff --git a/skills/smart-search/references/sources-tech.md b/skills/smart-search/references/sources-tech.md new file mode 100644 index 00000000..bc0375fd --- /dev/null +++ b/skills/smart-search/references/sources-tech.md @@ -0,0 +1,42 @@ +# 技术 / 学术 + +用于技术问题、研究论文、开发者讨论、开源社区信息。 + +## 站点 + +### arxiv + +- 适用:论文、研究、模型、算法、学术背景 +- 使用前先运行:`opencli arxiv -h` + +### stackoverflow + +- 适用:具体报错、API 用法、代码模式、实现细节 +- 使用前先运行:`opencli stackoverflow -h` + +### hackernews + +- 适用:技术社区讨论、开发者观点、创业和产品话题 +- 使用前先运行:`opencli hackernews -h` + +### reddit + +- 适用:英文社区问答、经验贴、推荐、对比讨论 +- 使用前先运行:`opencli reddit -h` + +### linux-do + +- 适用:人工智能、开源工具、中文技术社区 +- 使用前先运行:`opencli linux-do -h` + +### v2ex + +- 适用:中文技术社区 +- 使用前先运行:`opencli linux-do + +## 路由提示 + +- 用户明确说“论文”“研究”时,优先 `arxiv` +- 用户明确说“报错”“API 怎么用”时,优先 `stackoverflow` +- 用户要“社区讨论”“开发者观点”时,优先 `hackernews` 或 `reddit` +- 若用户没有明确指定站点,可先选 `gemini` 或 `grok`,内容不足时再补这些专用源 diff --git a/skills/smart-search/references/sources-travel.md b/skills/smart-search/references/sources-travel.md new file mode 100644 index 00000000..84f3c5c5 --- /dev/null +++ b/skills/smart-search/references/sources-travel.md @@ -0,0 +1,20 @@ +# 旅游 + +用于目的地、景区、酒店联想和旅行线索。 + +## 站点 + +### ctrip + +- 适用:目的地、景区、酒店、旅行联想搜索 +- 使用前先运行:`opencli ctrip -h` + +### xiaohongshu + +- 适用:生活方式、穿搭、美妆、旅行、真实体验 +- 使用前先运行:`opencli xiaohongshu -h` + +## 路由提示 + +- 用户明确说“携程”时直接使用 `ctrip` +- 用户只说“旅行/目的地/景区”时,可先选 `doubao` 做中文语境粗检索,再补 `ctrip`