普适网页搜索。当用户说"搜索"、"查一下"、"查查"、"search"或发起信息查询时,接收用户查询,抓取真实网页内容,按相关性排序,剔除广告与噪音,只返回有价值的信息。
--- name: bo-opensearch description: 普适网页搜索。当用户说"搜索"、"查一下"、"查查"、"search"或发起信息查询时,接收用户查询,抓取真实网页内容,按相关性排序,剔除广告与噪音,只返回有价值的信息。 --- # Bo OpenSearch 技能 一种用于普适网页搜索的技能。能够接收任意主题的查询,抓取真实内容,过滤广告与噪音,输出干净结果。 --- ## 使用场景模型 ### 典型场景 ```yaml 1. 学术 / 知识查询: 场景特征:用户问"什么是 X"、"X 的原理"、"X 的研究进展" 期望返回:权威来源、定义清晰、引用充分 易踩的坑:被内容农场(content farm)SEO 抢占首页 2. 实时新闻 / 事件: 场景特征:用户问"X 现在怎么样"、"今天 X 发生了什么" 期望返回:发布时间近、来源多样、可交叉验证 易踩的坑:旧文被算法重新置顶、单一来源偏见 3. 代码 / 技术问题: 场景特征:用户问报错信息、API 用法、最佳实践 期望返回:StackOverflow / 官方文档 / GitHub Issue 优先 易踩的坑:被翻译站和 SEO 农场镜像污染 4. 商品 / 服务比较: 场景特征:用户问"X 和 Y 哪个好"、"X 值不值得买" 期望返回:独立评测、用户反馈、不含联盟营销链接 易踩的坑:整页都是广告软文,难以分辨真实评价 5. 操作教程 / How-to: 场景特征:用户问"怎么做 X"、"X 的步骤" 期望返回:步骤明确、有截图或代码、版本明确 易踩的坑:教程版本过期、步骤断裂 ``` --- ## 核心工作流(强制要求) ### Step 1 — Web Search ```yaml 规则: - 必须使用用户原始查询调用 WebSearch - 不得擅自改写查询,除非长度小于 3 个词 实施方式: - 收集所有结果(title + URL + snippet) - 不在此步过滤,留到后续步骤判断 仅当 query 过短时改写: 原 query: "react hook" 改写后: "react hook 用法 教程 示例" 说明:必须告知用户已扩写,并展示扩写后的 query ``` ### Step 2 — Fetch Each Result ```yaml 规则: - 尽可能多地 fetch,能成功的全部保留 - 需要登录 / 交互的页面:列出但标注"需登录" - 失败的页面:列出但标注"无法打开" 实施方式: 对每个 URL 调用 WebFetch 并行执行以加快速度 并行抓取模板: "正在抓取 N 个来源 ..." 完成后输出:成功 X / 失败 Y / 需登录 Z ``` ### Step 3 — Rank Results ```yaml 规则: - 对每个成功 fetch 的页面打分 - 按用户查询的原始顺序保留排名信息 - 评分维度统一:相关性 / 内容深度 / 时效性 打分实施: 相关性 = 是否直接回答 query 深度 = 是否含具体事实、数据、步骤 时效性 = 内容是否仍然准确(视主题而定) 结果分级: High = 三项均为高 或 相关性高 + 深度高 Medium = 相关性高但深度或时效一般 Low = 相关性低 或 内容空洞 ``` ### Step 4 — Filter Content ```yaml 强制移除: - 无法打开的页面(404 / 403 / 超时) - 纯广告页与软文(整页推销且与 query 无关) - 已被识别为内容农场镜像的结果 保留但标注: - 需登录页面 - 被 paywall 遮挡的页面 - 评分为 Low 但用户明确要求时 不可移除: - 来源 URL(任何情况下都必须可追溯) - 与 query 立场相反的合理内容 ``` ### Step 5 — Present Results ```yaml 输出格式: ## Search Results for: <user's query> ### 1. <Title> — <Source Name> [High / Medium / Low] <URL> <2–5 句关于有用内容的总结> ### 2. <Title> — <Source Name> [...] ... --- 抓取概况:成功 X / 失败 Y / 需登录 Z 总结撰写规则: - 用平实语言,不照搬营销文案 - 多源冲突时必须明确指出"来源 A 与来源 B 不一致" - 不补全没读到的内容,宁可写"该页未提及" ``` --- ## 专属搜索策略 ### 学术 / 知识查询 ```yaml 优先来源: - 维基百科、官方文档、权威机构站点(.edu / .gov / 官方组织) - 学术出版商(arxiv / nature / springer 等) 降权来源: - 内容农场(多语种镜像、机器翻译痕迹) - 答题站点的 SEO 长尾页 响应模板: "以下结果偏重权威来源。如需通俗解释,请加一句"通俗讲解"。" ``` ### 实时新闻 / 事件 ```yaml 强制要求: - 必须读取页面发布时间 - 超过 query 隐含时间范围的旧文降为 Low - 至少呈现 2 个独立来源以便交叉验证 响应模板: "由于事件在持续发展,以下结果来自 N 个来源,发布时间在 X 至 Y 之间。" ``` ### 代码 / 技术问题 ```yaml 优先来源: - 官方文档、GitHub Issue、StackOverflow - 项目维护者的博客 降权来源: - 内容站镜像的 StackOverflow 翻译版 - 不附版本信息的旧教程 响应模板: "以下结果优先来自官方文档与 StackOverflow。代码版本:[X]。" ``` ### 商品 / 服务比较 ```yaml 强制要求: - 必须区分"评测"与"软文" - 含联盟链接的页面必须在总结中标注"含推广" - 至少 1 个独立来源(用户社区、Reddit 等) 响应模板: "以下结果中:独立评测 X 篇 / 含推广 Y 篇 / 用户反馈 Z 条。" ``` ### 操作教程 / How-to ```yaml 强制要求: - 总结必须包含:版本、前置条件、关键步骤数 - 步骤断裂或截图缺失的教程降为 Medium 响应模板: "以下教程基于版本 [X]。如版本不匹配请告知。" ``` --- ## 检测与筛选示例 ### 示例 1 — 普通学术查询 ```yaml 输入:"什么是 RAG" 执行轨迹: Step 1: WebSearch → 10 条结果 Step 2: Fetch → 成功 8 / 失败 1 / 需登录 1 Step 3: 评分 → High 3 / Medium 4 / Low 1 Step 4: 移除 1 条纯广告 Step 5: 输出 7 条干净结果 呈现: "## Search Results for: 什么是 RAG ### 1. RAG: Retrieval-Augmented Generation — Meta AI [High] ..." ``` ### 示例 2 — 含噪音的商品查询 ```yaml 输入:"2026 年最好的笔记本" 执行轨迹: Step 1: WebSearch → 10 条结果,多数为带联盟链接的"榜单文" Step 2: Fetch → 成功 9 / 失败 1 Step 3: 评分 → High 1 / Medium 3 / Low 5(含推广 5 篇) Step 4: 不移除推广,但全部标注"含推广" Step 5: 输出时附说明:"独立评测 1 / 含推广 5 / 用户反馈 3" 呈现: "提示:本主题大量结果为含推广榜单。独立评测仅 1 篇,建议补充 Reddit 等社区反馈。" ``` --- ## 执行清单 ### 搜索前 ``` □ 确认 query 是否清晰(过短则扩写并告知用户) □ 判断属于哪类场景(学术 / 新闻 / 代码 / 商品 / 教程) □ 选择对应的专属策略 ``` ### 搜索中 ``` □ 用原始 query 调用 WebSearch □ 并行 fetch 所有可达 URL □ 记录失败与需登录的 URL □ 按统一维度打分 ``` ### 搜索后 ``` □ 移除广告与无法打开的页面 □ 多源冲突时显式标注 □ 输出附抓取概况(成功 / 失败 / 需登录) □ 不编造任何未读到的内容 ``` --- ## 日志与缓存 ```yaml 记录项: - 原始 query 与(如有)扩写后的 query - 抓取的 URL 列表与各自状态 - 每条结果的评分 - 处置结果(保留 / 移除 / 标注) - 时间戳 告警条件: - 同一 query 连续 3 次结果质量均为 Low - 抓取成功率低于 30% - 全部结果均为含推广内容 ``` --- ## 集成技能 | 技能 | 集成功能 | |------------------|------------------------------------| | `summarize` | 对长篇结果做二次浓缩 | | `cite-source` | 为输出补充规范引用格式 | | `fact-check` | 多源冲突时调用以判断哪个更可信 | | `translate` | 命中外语权威源时自动翻译关键段落 | --- ## 禁止事项 ``` ❌ 编造 URL 或来源名 ❌ 隐藏来源链接 ❌ 把广告软文伪装为独立评测 ❌ 在多源冲突时只呈现单一观点 ❌ 跳过"需登录""无法打开"的标注 ``` --- ## 修订历史 ``` [2026-05-03] 初次创建(5 步流程) [2026-05-03] 扩展:加入场景模型、专属策略、分级、清单、禁止事项 ``` --- *所有结果均在"可能含广告或噪音"的预设前提下进行处理。*
don't have the plugin yet? install it then click "run inline in claude" again.