AI Agent 实战:last30days-skill-cn 一键搜索中国 8 大平台,30 秒生成深度研究报告


前言

  • 如果你需要研究"AI 编程助手"在中国互联网上的最新讨论。打开微博搜一轮,打开 B 站搜一轮,再打开知乎、小红书、抖音、头条......30 分钟过去了,你才刚刚把 8 个平台的原始结果扒完,还没开始分析。
  • 现在想象另一个场景:一条命令,理想网络条件下约 30 秒完成,一份带有来源引用、评分排序和跨平台聚合热点的研究报告就摆在你面前。
  • 这就是 last30days-skill-cn 要解决的问题------一个专为中国互联网生态打造的 AI Agent 深度研究引擎,覆盖微博、小红书、B 站、知乎、抖音、微信公众号、百度、头条 8 大平台,自动搜索近 30 天内容并生成结构化报告。

AI Agent 实战:last30days-skill-cn 一键搜索中国 8 大平台,30 秒生成深度研究报告


是否也在做"跨平台信息搬运工"?

中国互联网有一个独特的现实:信息高度碎片化,且被围墙花园分割在不同的平台生态里。

同一个话题------比如"AI 编程助手"------在微博上是 KOL 的体验分享,在 B 站是 UP 主的测评视频,在知乎是技术讨论帖,在小红书是使用心得图文,在抖音是短视频演示,在微信公众号是深度长文,在百度是聚合搜索结果,在头条是资讯流推送。每个平台都有独立的搜索体系、独立的内容格式、独立的互动指标体系。

如果你是一个开发者、产品经理或者研究者,需要了解某个话题在中国互联网上的全貌,你面对的是一个枯燥但无法回避的工作流:

  1. 打开微博,搜索关键词,翻几页结果,记录链接和数据
  2. 打开 B 站,搜索关键词,翻几页结果,记录链接和数据
  3. 打开知乎,搜索关键词......
  4. 重复以上步骤 8 次

粗略估算:每个平台花 3-5 分钟,8 个平台就是 24-40 分钟------而这还只是收集原始数据,没有做任何分析、排序和去重。

现有的自动化工具呢?英文领域的研究工具(如 Perplexity、Tavily)不覆盖中国平台。国内的一些舆情监控系统需要企业级订阅,价格不菲。自己写爬虫?每个平台的反爬机制、接口签名、登录态管理各不相同,维护成本巨大。

这就是 last30days-skill-cn 要解决的核心痛点。


last30days-skill-cn 是什么?

一句话定位:30 天的研究,30 秒出结果。(理想网络条件下,典型查询约 30 秒完成,实际耗时因网络和平台状态而异)

last30days-skill-cn 是一个 AI Agent 技能(Skill),它能自动搜索中国互联网 8 大主流平台最近 30 天的内容,综合分析后生成有据可查的研究报告。

基本信息

项目 详情
项目地址 github.com/Jesseovo/la...
原始项目 mvanhorn/last30days-skill

与原版的关系:不是简单翻译,是深度本土化重建

原版 last30days-skill 由 Matt Van Horn 开发,面向英文互联网(Reddit、HN、Twitter 等)。last30days-skill-cn 从 v1.0.0 开始,逐步替换了全部数据源、评分逻辑、输出渲染和交互指标体系,到 v3.0.0 已经是一套完全围绕中国互联网平台构建的独立系统。

Agent 原生分发: 项目通过 Agent Skills 协议分发,支持主流 AI Agent 平台一键安装。你也可以直接克隆仓库、本地运行------两条路径都完整支持。


核心亮点------为什么它值得关注

亮点 1:8 大平台全覆盖,分层可用

last30days-skill-cn 覆盖了中国互联网讨论热度最高的 8 个平台。按配置复杂度分为三层:

第一层:开箱即用(无需任何配置)

平台 技术路径 备注
微博 Playwright 爬虫 中国最大的社交媒体
B 站 公开 API 视频 + 弹幕文化社区
知乎 Playwright 爬虫 知识问答 + 深度讨论

第二层:可选配置(有 API Key 体验更佳,无则自动降级)

平台 技术路径 降级策略
小红书 MCP/HTTP API + 公开搜索兜底 无配置时降级到公开搜索,命中率较低
百度 API + 公开搜索兜底 无 API Key 时降级到公开搜索,数据完整度降低
抖音 公开搜索兜底 签名风控限制,互动数据无法获取
头条 公开搜索兜底 签名风控限制,互动数据无法获取

第三层:必需配置

平台 技术路径 说明
微信公众号 API 调用 无爬虫替代方案,必须配置 WECHAT_API_KEY

亮点 2:三级自动降级策略

不同平台的反爬策略差异巨大,同一个平台在不同时段的风控力度也不同。last30days-skill-cn 设计了一套三级自动降级策略来应对这种不确定性:

第一级:API 模式

如果你配置了对应平台的 API Key(如 WEIBO_ACCESS_TOKENTIKHUB_API_KEY),优先走官方或第三方 API 接口。这是最稳定、数据最完整的路径。

第二级:Playwright 浏览器自动化

灵感来自 MediaCrawler 项目。通过 Playwright 控制 Chromium 浏览器,模拟真实用户访问,利用 XHR 拦截获取接口数据。无需逆向加密算法,无需付费 API。

python 复制代码
# Playwright 爬虫核心逻辑(简化示意)
async def intercept_xhr(page, platform):
    """拦截 XHR 请求,获取平台接口数据"""
    results = []
    page.on("response", lambda resp: results.append(resp))
    await page.goto(search_url)
    await page.wait_for_load_state("networkidle")
    return parse_response(results)

第三级:公开搜索兜底

当 API 和爬虫都不可用时(如抖音、头条的签名风控),自动退化到公开搜索引擎(包括 Bing 的 site: 搜索)。虽然数据完整度降低,但不会静默返回 0 条------每条结果都标注了数据来源路径,让你知道数据是怎么拿到的。

这套降级策略的核心设计哲学是:永远给你结果,但诚实地告诉你结果的完整度。

亮点 3:0-100 评分系统

跨平台搜索的一个核心挑战是:不同平台的互动指标体系完全不同。微博看转发和评论,B 站看弹幕和投币,知乎看赞同和收藏,小红书看点赞和收藏。直接比较毫无意义。

last30days-skill-cn 设计了一套三维权重评分系统:

  • 相关性 45%:基于 token 重叠的查询相关性计算,支持中英文混合查询,内置同义词扩展
  • 时效性 25%:越新的内容得分越高,以天为单位衰减
  • 互动指标 30%:将各平台异构的互动数据统一归一化
python 复制代码
# 评分核心逻辑
def compute_score(relevance, freshness, engagement):
    """
    三维权重评分
    - relevance: 相关性得分 (0-1), 权重 45%
    - freshness: 时效性得分 (0-1), 权重 25%
    - engagement: 互动指标得分 (0-1), 权重 30%
    """
    raw = relevance * 0.45 + freshness * 0.25 + engagement * 0.30
    return normalize_to_100(raw)

def log1p_safe(value):
    """对数归一化,防止极端值碾压"""
    import math
    return math.log1p(value) / math.log1p(1_000_000)

关键细节:互动指标使用 log1p_safe 对数归一化处理。这意味着一个 100 万赞的大 V 帖子和一个 1000 赞的优质长尾内容之间的差距会被压缩到合理范围,避免大 V 数据碾压真正有价值的小众讨论。

最终所有分数通过 normalize_to_100 函数映射到 0-100 的统一标尺,你可以直接跨平台排序。

亮点 4:跨平台聚类

当你搜索一个热门话题时,很可能会在多个平台上看到同一个事件的不同角度讨论。last30days-skill-cn 的聚类模块会自动检测这种情况:

  • 使用字符 n-gram + Jaccard 相似度进行跨源文本匹配
  • 采用并查集(Union-Find)算法求连通分量
  • 仅保留覆盖 >=2 个不同平台的簇
python 复制代码
# 跨平台聚类核心逻辑
def cluster_cross_platform(items, threshold=0.6):
    """
    使用并查集进行跨平台聚类
    - items: 所有平台的搜索结果
    - threshold: Jaccard 相似度阈值
    """
    uf = UnionFind(len(items))
    for i, a in enumerate(items):
        for j, b in enumerate(items[i+1:], i+1):
            if jaccard_3gram(a.title, b.title) >= threshold:
                uf.union(i, j)
    # 仅保留覆盖 >=2 个平台的簇
    return [c for c in uf.components() if covers_multiple_platforms(c)]

最终输出中,跨平台热点会标注"同时见于: 微博, 知乎"这样的交叉引用标签,让你一眼看出哪些事件引发了全网讨论。

亮点 5:查询类型自动检测

你输入的查询词不只是一个字符串------它的"类型"会影响整个搜索和评分策略。last30days-skill-cn 内置了 7 种查询类型检测:

查询类型 示例 影响
product "ChatGPT 价格" 偏重产品类数据源
concept "什么是具身智能" 偏重知识类平台
opinion "AI 编程助手好不好" 偏重讨论类平台
how_to "怎么部署大模型" 偏重教程类内容
comparison "Claude vs GPT 对比" 偏重评测类内容
breaking_news "最新 AI 政策" 时效性权重提升
prediction "AI 趋势预测" 偏重分析类内容

类型检测完全基于正则模式匹配,不依赖 LLM 调用,零延迟零成本。


架构与技术实现

整体流程

scss 复制代码
查询输入 -> 查询类型检测 -> 并发搜索 8 个平台
                                |
                                v
                        数据标准化 (schema 统一)
                                |
                                v
                        三维权重评分 (相关性 + 时效性 + 互动)
                                |
                                v
                        跨平台去重 (n-gram + Jaccard)
                                |
                                v
                        跨平台聚类 (Union-Find)
                                |
                                v
                        渲染输出 (7 种模式)

技术栈

组件 技术选型 用途
语言 Python 3 核心运行时
浏览器自动化 Playwright (Chromium) 平台爬虫
中文分词 jieba 查询预处理、相关性计算
并发模型 concurrent.futures.ThreadPoolExecutor 8 平台并行搜索
测试框架 pytest 191 个测试用例

核心模块

项目的核心逻辑分布在 scripts/lib/ 目录下,每个模块职责单一:

模块 职责
schema.py 统一数据结构,定义 EngagementReport 等 dataclass
score.py 评分引擎,实现 log1p_safe 对数归一化和 normalize_to_100 映射
normalize.py 各平台互动指标归一化
relevance.py 相关性计算,基于 token 重叠的查询-内容匹配
dedupe.py 跨平台去重,使用 3-gram 字符级别的 Jaccard 相似度
cluster.py 跨平台聚类,用并查集(Union-Find)聚合跨平台热点
query_type.py 查询类型检测,基于正则模式的 7 种类型分类器
render.py 输出渲染器,支持 7 种输出模式,HTML 报告内置 XSS 加固
crawler_bridge.py Playwright 爬虫桥接

并发模型

8 个平台的搜索任务通过 ThreadPoolExecutor 并发执行。项目定义了三套超时配置:

模式 全局超时 单平台超时 适用场景
--quick 90 秒 30 秒 快速扫描
默认 180 秒 60 秒 常规研究
--deep 300 秒 90 秒 深度分析

快速上手------5 分钟跑通

环境要求

  • Python 3.8+
  • pip

方式一:源码安装(推荐新手)

bash 复制代码
# 1. 克隆仓库
git clone https://github.com/Jesseovo/last30days-skill-cn.git
cd last30days-skill-cn

# 2. 安装 Python 依赖
pip install -r requirements.txt

# 3. 安装 Playwright 浏览器(约 100MB,首次需要)
playwright install chromium

requirements.txt 只有两个依赖:jieba>=0.42.1playwright>=1.40.0

方式二:Agent Skills 安装

bash 复制代码
npx skills add Jesseovo/last30days-skill-cn -g

健康检查

bash 复制代码
python scripts/last30days.py --diagnose

基础使用

bash 复制代码
python scripts/last30days.py "AI编程助手" --emit compact

生成 HTML 报告

bash 复制代码
python scripts/last30days.py "具身智能" --deep --emit html-path

CLI 参数速查

参数 说明 示例
--emit MODE 输出模式 --emit json
--quick 快速搜索 --quick
--deep 深度搜索 --deep
--days N 回溯天数 --days 7
--as-of DATE 指定日期回溯 --as-of 2026-06-15
--search SOURCES 指定平台 --search weibo,zhihu
--diagnose 健康检查 --diagnose

实战案例

案例 1:快速扫描------"AI 编程助手"

bash 复制代码
python scripts/last30days.py "AI编程助手" --emit compact

compact 模式返回精简文本摘要,包含每个平台的 top 结果、评分和来源链接。

以下为示例格式,具体结果取决于搜索时间点:

shell 复制代码
## AI编程助手 --- 8 平台搜索结果

### 知乎
1. [95分] "2026 年 AI 编程助手深度评测" --- 知乎专栏
   👍 2.3k 赞同 | 💬 186 评论

### B站
2. [88分] "我用 AI 编程助手写了一个完整项目" --- UP主 xxx
   ▶️ 12.5w 播放 | 💬 3400 弹幕

案例 2:深度研究------"AI制作游戏"

bash 复制代码
python scripts/last30days.py "AI制作游戏" --deep --emit html-path

案例 3:定向平台搜索------"新能源汽车"

bash 复制代码
python scripts/last30days.py "新能源汽车" --search weibo,bilibili,zhihu

输出模式对比

模式 适用场景
compact Agent 上下文注入,快速浏览
json 程序解析,数据管道集成
md 文档嵌入,笔记工具
html-path 离线浏览,分享归档

不足与注意事项

抖音/头条的签名风控

抖音和头条的原生接口需要 a_bogus_signature 等动态签名。当前版本在这两个平台上退化到公开搜索引擎兜底,无法获取真实的互动数据

微信公众号需要 API Key

必须配置 WECHAT_API_KEY 才能搜索公众号内容。

平台接口变更风险

建议每次使用前先跑一次 --diagnose 诊断。

bash 复制代码
{
  "weibo": true,
  "xiaohongshu": false,
  "bilibili": true,
  "zhihu": true,
  "douyin": true,
  "wechat": false,
  "baidu_api": false,
  "toutiao": true,
  "crawler_engine": {
    "playwright_available": true,
    "cached_logins": [],
    "note": "安装 Playwright 后,微博/小红书/抖音/B站/知乎可无需 API Key 使用爬虫模式"
  },
  "note_douyin_toutiao": "抖音/头条原生接口需签名参数,常被风控;接口失败时改用公开搜索引擎兜底,仅能拿到公开链接,无真实互动数据与精确日期。"
}

总结与展望

三个关键数字概括这个项目:

  • 8 大平台:中国互联网讨论的核心阵地,一次搜索全覆盖
  • 191 个测试用例:全量测试通过,覆盖评分引擎、去重逻辑、聚类算法等核心路径
  • 理想网络条件下约 30 秒出结果:8 平台并发搜索,典型查询约 30 秒完成,实际耗时因网络和平台状态而异

last30days-skill-cn 从原版 last30days-skill 发展而来,但它不是 fork 后改改配置文件那么简单------数据源、评分逻辑、输出渲染、交互指标体系都是从零重建的。

最后,如果你每天都在做跨平台信息搬运的工作,不妨花 5 分钟试一下这个工具。一条命令,看看结果------也许你会发现,30 分钟的手工搜索,真的可以压缩到 30 秒。


  • 🎬 博客主页:xiaoy.blog.csdn.net

  • 🎥 本文由 呆呆敲代码的小Y 原创 🙉

  • 🎄 学习专栏推荐:Unity系统学习专栏

  • 🌲 游戏制作专栏推荐:游戏制作

  • 🌲Unity实战100例专栏推荐:Unity 实战100例 教程

  • 🏅 欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!

  • 📆 未来很长,值得我们全力奔赴更美好的生活✨

  • ------------------❤️分割线❤️-------------------------

相关推荐
AI行业学习1 小时前
2026 版 Notepad++ 完整图文安装指南|官方渠道无捆绑,一键切换中文界面
开发语言·人工智能·python·html·notepad++
aneasystone本尊1 小时前
OpenMontage 快速入门
人工智能
诚信定制8391 小时前
2025年CSDN年度技术趋势预测:AI、云原生与开发者工具的未来
人工智能·云原生
Bode_20021 小时前
生成式界面设计案例
人工智能
IT_陈寒1 小时前
Vue的v-if和v-show,我竟然用错了这么久
前端·人工智能·后端
mingo_敏1 小时前
大模型Model Architecture模型架构:从Transformer到MoE,架构决定AI上限
人工智能·架构·transformer
Sam09271 小时前
【AI 算法精讲 15】余弦相似度:向量检索与归一化内积
人工智能·python·算法·ai
TPBoreas1 小时前
AI 架构图绘制 + Mermaid 实战:从痛点到 Diagram as Code
人工智能·ai
IT_陈寒1 小时前
React状态更新延迟搞晕我,原来是闭包在捣鬼
前端·人工智能·后端