返回 Skill 列表
extension
分类: 其它无需 API Key

全引擎和舆情搜索

>-全能搜索Skill评测报告(v3.0) 一、总体评价 该Skill是一个功能完整、设计专业的聚合搜索与舆情分析工具。它覆盖了从多平台数据获取、结构化处理、去重、相关性评分到报告生成的全链路,特别针对中文环境和封闭平台(抖音、小红书)做了策略优化。v3.0新增的相对时间解析、输入截断、断点续跑等功能显著提升了实用性和鲁棒性。 综合评分:4.6/5(优秀) 二、优点分析 1. 架构设计清晰,职责分离良好 SKILL.md 定义触发场景、工作流、失败备选方案,作为Agent的“使用手册”。 aggregate_search.py 实现核心分析引擎,解耦数据处理与LLM决策。 platform_targets.md 提供搜索引擎策略参考(站点限定、封闭平台处理、JSON格式规范)。 这种分层设计易于维护、测试和升级。 2. 性能优化扎实 优化点 实现 效果 MinHash+LSH近似去重 依赖 datasketch 复杂度 O(n²)→O(n),500条数据去重从22s降至0.8s 分词缓存 基于文本hash的 _tokenize_cache 相同文本不重复分词,减少CPU开销 相似度矩阵截断 MAX_MATRIX_ITEMS=50 防止大输入导致矩阵爆炸 输入上限控制 --max-items(默认2000) 内存可控,防止OOM 并行搜索建议 一次性发出所有WebSearch 降低总响应时间 搜索超时10s建议 文档明确要求 避免单引擎阻塞整体流程 3. 时间新鲜度处理(v3.0亮点) 相对时间解析:支持“刚刚”、“X分钟前”、“X小时前”、“X天前”、“昨天”、“X月X日”等多种自然语言表述,从snippet中提取时间戳。 衰减函数:半衰期7天,exp(-days/half_life),无时间戳则给中值0.5。 新鲜度融入相关性评分:权重15%,使近期内容排名靠前。 相比v2.0“恒为0.5”的问题,v3.0显著提升了时效性敏感场景的准确性。 4. 封闭平台处理策略务实 明确抖音、小红书“反爬率极高”,跳过WebFetch,改用 WebSearch(query="关键词 抖音") 间接获取。 微信公众平台使用 site:mp.weixin.qq.com 走WebSearch,不尝试微信内搜一搜。 避免浪费时间和验证码/登录页纠缠。 5. 健壮性和降级策略完善 依赖检测:HAS_SKLEARN、HAS_DATASKETCH 标志,缺失时自动降级(sklearn→Jaccard,datasketch→传统矩阵)。 tqdm可选:缺失时打印简单日志。 jieba可选:无分词时退化到直接split。 WebFetch失败处理:遇到验证码/登录页立即放弃,不做重试。 输入超限自动截断并警告,不崩溃。 6. 断点续跑与中间结果持久化 自动生成 .md(报告)、.json(摘要)、.checkpoint.jsonl(原始数据)。 分析过程中若崩溃,可重新传入 .checkpoint.jsonl 恢复。 这对于长时间批量搜索或网络不稳定环境非常实用。 7. 相关性评分设计合理 python 复制 下载 score = 0.25*density + 0.35*coverage + 0.25*substring + 0.15*freshness density:关键词词频密度(抑制堆砌) coverage:关键词覆盖度(鼓励完整匹配) substring:原文是否含完整关键词(对未分词的英文/数字友好) freshness:时间衰减因子 权重分配兼顾精确匹配和时效性,经测试在舆情分析中表现稳定。 8. 文档质量高 SKILL.md:触发场景明确,工作流分步骤,失败备选方案清晰,依赖安装说明完整。 platform_targets.md:提供搜索引擎列表、站点限定后缀、数据源特征、JSON格式规范、性能参考数据。 代码内注释充分,docstring清晰,argparse帮助信息详尽。 三、使用建议 用户类型 推荐度 说明 舆情分析师 ⭐⭐⭐⭐⭐ 快速获取多平台信息聚合,去重+新鲜度排序实用 开发者集成 ⭐⭐⭐⭐ 代码清晰,可作为搜索聚合模块嵌入更大系统 普通用户(通过WorkBuddy) ⭐⭐⭐⭐ 需要预配置WebSearch工具,体验流畅 抖音/小红书深度分析 ⭐⭐ 无法获取内部数据,仅能看第三方提及 四、总结 全能搜索Skill v3.0 是一款成熟、高效的聚合搜索与舆情分析工具。它通过算法优化(MinHash、分词缓存、时间衰减)解决了多源数据去重和相关性排序的性能痛点,通过务实策略(封闭平台走WebSearch)避开了反爬困境,通过断点续跑和输入截断提升了生产环境的可靠性。文档详尽,降级路径完整。 核心优势:速度快(近似去重O(n))、时效性强(相对时间解析)、鲁棒性高(多种降级)。 推荐场景:新闻热点追踪、竞品舆情监测、跨平台内容聚合分析。不适用于需要精确封闭平台原始数据的场景。

person作者: user_6455574ahubcommunity

全能搜索skill — 全平台聚合搜索分析器 v3.0

概述

一键聚合搜索 + 智能分析。输入一个关键词,输出一份涵盖各大搜索引擎、 新闻平台、社交媒体的结构化报告,包含去重、相关性评分(含时间新鲜度)、 相似度矩阵、平台分布统计、性能报告、中间结果持久化。

v3.0 新增优化:

  • --max-items 参数:控制输入上限(默认 2000),防止大输入内存飙升
  • 相对时间解析:从 snippet 正则提取"刚刚""X分钟前""X小时前""X天前""昨天""X月X日"等
  • 中间结果持久化:自动保存 .md 报告 + .json 摘要 + .checkpoint.jsonl 断点
  • 搜索阶段建议 10s 超时:避免某引擎响应慢阻塞整体
  • 提升时间戳提取成功率,减轻时间因子恒为 0.5 的问题

v2.0 已有优化:

  • MinHash + LSH 近似去重 → 复杂度从 O(n²) 降至 O(n)
  • 分词缓存 → 相同文本不重复分词
  • 扩展停用词至 200+ 词(含时间词/语气词/常见动词)
  • 时间新鲜度衰减因子 → 近期内容权重更高(半衰期 7 天)
  • Top 50 截断 → 相似度矩阵限制计算规模
  • tqdm 进度反馈 → 大输入不再黑盒

触发场景

当用户说出以下任一意图时必须加载此技能:

  • "帮我搜一下 XXX 在全平台的情况"
  • "查一下 XXX 的热度/舆情"
  • "关于 XXX,各个平台都在说什么"
  • "聚合搜索 XXX" / "全能搜索 XXX"
  • "搜索 XXX,看看抖音、小红书、微信上都有什么"
  • "分析 XXX 在各大平台的相似信息"
  • 任何涉及多平台、跨平台搜索/舆情/信息聚合的需求

核心工作流

Step 0: 技能安装检查

首次使用需安装依赖:

cd <skill_dir>/scripts
pip install jieba scikit-learn numpy datasketch tqdm

依赖说明: | 依赖 | 用途 | 可选? | |------|------|--------| | jieba | 中文分词 | 必需 | | scikit-learn | TF-IDF + Cosine 相似度 | 可选(降级为 Jaccard) | | numpy | 数值计算 | 可选 | | datasketch | MinHash + LSH 近似去重 | 强烈推荐(无则降级 O(n²)) | | tqdm | 进度条显示 | 可选(无则打印简单日志) |

Step 1: 理解需求

向用户确认:

  1. 关键词 — 要搜什么
  2. 平台范围 — 全平台还是指定平台(默认全平台)
  3. 时间范围 — 近期(默认7天内)还是不限
  4. 输出格式 — Markdown报告(默认)还是Excel

如果用户需求已经很明确,跳过此步直接执行。

Step 2: 多引擎并行搜索(建议超时 10s)

使用 WebSearch 工具同时对以下引擎发起搜索(并行调用,节省时间):

| 目标 | 搜索策略 | 优先级 | 超时建议 | |------|---------|--------|---------| | 百度 | WebSearch(query="关键词") 不加站点限定 | 必选 | 10s | | 微信公众平台 | WebSearch(query="关键词 site:mp.weixin.qq.com") | 必选 | 10s | | 今日头条 | WebSearch(query="关键词 site:toutiao.com") | 必选 | 10s | | 知乎 | WebSearch(query="关键词 site:zhihu.com") | 必选 | 10s | | 新浪新闻 | WebSearch(query="关键词 site:sina.com.cn") | 推荐 | 10s | | 腾讯新闻 | WebSearch(query="关键词 site:news.qq.com") | 推荐 | 10s | | 网易新闻 | WebSearch(query="关键词 site:163.com") | 推荐 | 10s | | B站 | WebSearch(query="关键词 site:bilibili.com") | 推荐 | 10s | | 微博 | WebSearch(query="关键词 site:weibo.com") | 推荐 | 10s | | 360搜索 | WebSearch(query="关键词") 不加站点限定 | 可选 | 10s | | 搜狗 | WebSearch(query="关键词") 不加站点限定 | 可选 | 10s |

并行策略: 每个搜索请求之间无依赖关系,一次性发出所有 WebSearch 调用。 超时策略: ⏱ 如果某个引擎响应超过 10 秒,建议放弃该引擎的搜索结果, 继续处理其他引擎的返回,避免阻塞整体流程。

WebSearch 参数优化:

  • 设置 topic: "news" 获取最新资讯
  • 可组合 query_keyword_groups 覆盖多角度搜索
  • 时间范围通过搜索词暗示(如"关键词 2025")

Step 3: 封闭平台处理(抖音、小红书)

⚠️ v2.0 优化策略: 抖音、小红书、微信搜一搜等封闭平台直接使用 WebSearch 间接搜索, 不再尝试 WebFetch 直连(反爬率高、成功率低)。

| 封闭平台 | 搜索策略 | |---------|---------| | 抖音 | WebSearch(query="关键词 抖音") | | 小红书 | WebSearch(query="关键词 小红书") | | 微信搜一搜 | WebSearch(query="关键词 site:mp.weixin.qq.com") |

兜底策略: WebFetch 仅用于第三方聚合站(如搜狗微信搜索公开页), 如果返回验证码/登录页则立即放弃,不做重试。

Step 4: 数据格式化

将所有搜索结果统一转为 JSONL 格式,每行一个 JSON 对象:

{"platform": "百度", "title": "...", "url": "...", "snippet": "...", "content": "", "source_engine": "WebSearch", "timestamp": "2026-06-06"}
{"platform": "微信", "title": "...", "url": "...", "snippet": "...", "content": "", "source_engine": "WebSearch", "timestamp": "2026-06-06"}

timestamp 字段用于时间新鲜度衰减计算。即使 snippet 中没有明确日期, v3.0 引擎也会尝试从 snippet 中提取相对时间("3小时前""昨天""6月1日"等)。

保存到临时文件供分析脚本使用,例如:

.workbuddy/tmp/agg_search_关键词.jsonl

Step 5: 运行分析脚本(v3.0)

调用 scripts/aggregate_search.py 进行:

# 基本用法
python scripts/aggregate_search.py "关键词" "输入jsonl路径" "输出文件前缀"

# 限制输入条数(默认2000)
python scripts/aggregate_search.py "关键词" "输入.jsonl" "report" --max-items 1000

# 从 checkpoint 恢复
python scripts/aggregate_search.py "关键词" "data.checkpoint.jsonl" "report"

脚本输出三个文件:

  • {前缀}.md — Markdown 报告
  • {前缀}.json — JSON 分析摘要
  • {前缀}.checkpoint.jsonl — 原始数据断点(可重新输入跑分析)

分析功能:

  • 输入截断--max-items 控制输入上限,超限自动截断并提示
  • 去重 — 默认 MinHash + LSH (O(n)),无 datasketch 降级为传统相似度矩阵 (O(n²))
  • 相关性评分 — 基于关键词密度+覆盖度+子串匹配+时间新鲜度的综合评分 (0~1)
  • 相对时间解析 — 从 snippet 提取"刚刚""X分钟前""X小时前""X天前""昨天""X月X日"等
  • 相似度矩阵 — TF-IDF + Cosine 相似度(限制 Top 50)
  • Top 10 排序 — 按相关性从高到低排列
  • 平台分布统计 — 各平台结果数量 + 平均相关性/新鲜度
  • 性能统计 — 耗时、去重率、分词缓存命中数
  • 中间结果持久化 — 自动保存报告+摘要+断点,防止分析过程崩溃丢失数据

Step 6: 呈现报告

  1. 读取生成的 Markdown 报告
  2. 使用 open_result_view 呈现给用户
  3. 如果用户需要导出,使用 deliver_attachments 发送报告文件(.md + .json + .checkpoint.jsonl)

输出示例结构

报告包含以下章节:

  1. 总体概览 — 各平台结果数 + 平均相关性 + 平均新鲜度
  2. 高相关结果 Top 10 — 最相关的10条结果详情(含新鲜度标识 🆕/📅/📦)
  3. 内容相似性分析 — Top N 之间的相似度矩阵 + 最相似/差异最大对
  4. 平台来源分布 — 按平台统计
  5. 性能统计 — 耗时、去重率、分词缓存命中、算法类型

失败备选方案

| 问题 | 方案 | |------|------| | 某平台搜索无结果 | 跳过该平台,注明"无有效结果" | | 封闭平台反爬 | 跳过 WebFetch,改用 WebSearch 间接搜索("关键词 + 平台名") | | 分析脚本依赖未安装 | 自动 pip install,如安装失败则手动用文本分析 | | 无 datasketch | 降级为传统相似度矩阵去重,提示用户安装 | | jieba 分词效果差 | 改用直接转写(无需分词,直接用原文做 Jaccard) | | 数据量过大(>500条) | MinHash 自动处理;矩阵分析截断至 Top 50;--max-items 控制输入 | | Python 环境问题 | 在系统 Python 中尝试,或直接由 WorkBuddy 做文本分析 | | 结果太少(不足5条) | 放宽搜索范围,去除站点限定 | | 分析过程崩溃 | 使用 checkpoint 断点恢复(再次传入 .checkpoint.jsonl) |

相似性兜底计算(无Python环境时)

如果 Python 脚本无法运行,WorkBuddy 可手动计算 Jaccard 相似度:

  1. 提取两条内容的共同词汇数量 ∩
  2. 提取两条内容的总词汇数量 ∪
  3. 相似度 = |∩| / |∪|
  4. 相关性 = 关键词在内容中出现的比例 × 0.85 + 新鲜度 × 0.15

捆绑资源说明

  • scripts/aggregate_search.py — 核心分析引擎 v3.0(去重+相关性+相似度+报告生成+断点续跑)
  • scripts/install_deps.bat — 一键依赖安装(含 datasketch、tqdm)
  • references/platform_targets.md — 各平台搜索策略和数据格式参考(含第三方聚合站)