skills/jackwener/opencli/smart-search

smart-search

SKILL.md

智能搜索路由器

根据话题和场景,将查询路由到最佳的 opencli 搜索源。此 skill 的核心目标不是记忆命令,而是先定位数据源,再让 Agent 通过 opencli 自己读取实时帮助,避免文档漂移。

强制预检

每次使用前,必须先做下面两步:

  • 运行 opencli list -f yaml
  • 用 live registry 确认候选站点是否存在,并检查 strategybrowserdomain

选定站点后,必须再做下面两步:

  • 运行 opencli <site> -h 查看该站点有哪些子命令
  • 若已锁定某个子命令,再运行 opencli <site> <command> -h 查看参数、输出列、策略

不要在 skill 文档里硬编码参数或假设命令签名;以 opencli ... -h 的实时输出为准。

主路由规则

只使用这一条规则,不再维护多套优先级:

  1. 当用户明确指定网站、平台或数据源时,直接使用对应网站。
  2. 当用户没有指定网站时,优先只选择一个 AI 源:grokdoubaogemini 三选一。
  3. 当 AI 返回内容不足、缺少原始数据、需要权威佐证或需要垂直结果时,再补充 1-2 个专用源。

单题预算与频率限制

把“单个用户问题”理解为同一意图链路下的一次问题求解;同一轮追问、澄清、补充条件,若核心问题未变,仍算同一题。

先建立一份站点调用台账。每次真正执行搜索命令后,立刻更新:

  • site
  • query
  • count
  • status

计数规则:

  • opencli list -f yamlopencli <site> -hopencli <site> <command> -h 属于预检与帮助,不计入搜索次数
  • 一次真正的 opencli <site> ... 搜索/查询执行,计为该站点 1 次调用
  • 同站点因为报错、超时、验证码、反爬、登录态异常而失败,也算 1 次调用,不要无限重试

频率上限:

  • AI 站点硬限制:同一题内,每个 AI 站点最多调用 1 次
  • 默认策略仍然是只选 1 个 AI 站点,不要把多个 AI 站点串成常规流程
  • 只有当用户明确要求比较多个 AI 站点时,才可以额外调用其他 AI 站点;但每个被点名的 AI 站点仍然最多 1 次
  • 非 AI 站点默认最多调用 2 次
  • 非 AI 站点第 2 次调用必须有明确理由,例如第一次结果过宽,需要加时间、地区、类别、排序或关键词限定
  • 非 AI 站点不要进行第 3 次调用;若信息仍不足,停止扩搜并明确说明缺口

触发限频后的处理:

  • 记录:「已跳过: 达到频率上限」
  • 优先改用其他同类站点
  • 若没有合适替代源,则直接基于已收集信息回答,并说明覆盖范围与缺口

查询结束汇报

每次查询结束后,回答末尾必须追加一段简短的“搜索摘要”,至少包含下面三项:

  • 使用了什么网站搜索
  • 每个网站搜了什么词
  • 每个网站搜了几次

如果有被限频跳过的站点,也要明确写出。

建议使用下面的固定格式:

搜索摘要
- 网站:<site1> | 查询词:<term1> | 次数:<n>
- 网站:<site2> | 查询词:<term2><term3> | 次数:<n>
- 已跳过:<site3>,原因:达到频率上限

AI 源选择

  • grok 适合实时讨论、英文互联网舆论、Twitter/X 语境、热点追踪。
  • doubao 适合中文语境、字节抖音生态、生活方式内容、中文热点与泛中文问答。
  • gemini 适合全球网页、英文资料、通用信息检索、背景综述。

如果用户没有指定网站,默认先判断语言和语境,再从这三个里只选一个。

一旦某个 AI 站点已经执行过一次真实查询,就不要在同一题里改写关键词后再次调用该 AI 站点。若答案不足,优先补专用源,不要反复追打同一个 AI 站点。

AI 查询词建议

当使用 AI 源时,不要只丢一个过短关键词。优先构造成“主题 + 目标 + 限定条件”的查询。

  • 主题 用户真正要查的对象、事件、产品、人物、公司、技术名词。
  • 目标 想要什么结果,例如总结、对比、原因、趋势、推荐、原始线索。
  • 限定条件 语言、地区、时间范围、平台范围、受众、价格带、岗位地点、是否要引用原始来源。

优先使用下面这种表达方式:

  • <主题> + <你要回答的问题>
  • <主题> + <时间范围/地区/语言>
  • <主题> + <平台或来源范围>
  • <主题> + <输出要求>

避免只输入:

  • 单个名词
  • 没有时间范围的热点问题
  • 没有地区限制的购物、求职、旅游问题
  • 没有平台限制的社交媒体问题

专用源补充时机

当出现以下任一情况时,再补充专用源:

  • AI 给出的是摘要,但你需要原始帖子、原始视频、原始商品或原始职位结果
  • AI 覆盖面不足,漏掉垂直站点信息
  • 需要更高权威性或更强领域相关性
  • 用户明确要求“从某个平台找”

单次查询通常控制在 1 个 AI 源 + 1 到 2 个专用源,避免结果过载。

处理不可用的源

当站点不可用时:

  • 不要因为单个源失败而中止整个搜索
  • 记录:「已跳过: 不可用」
  • 回退到同类其他站点,或回退到一个 AI 源
  • 始终以 opencli list -f yamlopencli <site> -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 — 其他垂直源

只读与当前查询相关的文件,无需全部加载。

Weekly Installs
285
GitHub Stars
11.7K
First Seen
1 day ago
Installed on
opencode284
codex283
github-copilot282
amp282
cursor282
gemini-cli282