30天话题速查:一键生成多平台综合报告

你做过这种事吗?想了解某款产品最近一个月的口碑,手动翻Reddit、搜X、刷YouTube评论,再合并成一份报告。花掉一下午,结果还漏掉了重要信息。

上周GitHub上冒出个项目 mvanhorn/last30days-skill,一天内涨了4万多星。我读完觉得思路非常实用——把“多平台+时间窗口+聚合输出”封装成一个可复用的Skill。这篇文章不抄项目代码(他自己开源了),而是拆解它的设计逻辑,给你一个可以直接拿走的模板,附带变体玩法。

这个 Skill 解决什么具体问题

  • 场景:产品经理想了解“最近30天用户对Notion AI的评价”;开发者想追踪“过去一个月LangChain的bug报告趋势”;运营需要“X平台对某活动的讨论热度”。
  • 痛点:手动搜5个平台,每个平台都有不同的搜索语法和时间过滤器,汇总时还需要去重、排序、提炼核心观点。
  • 解法:用AI Agent调度多个搜索工具(Reddit、X、YouTube、HN、Polymarket、Web),指定last 30 days作为通用时间约束,将结果送回LLM按固定模板合成摘要。

触发条件和适用场景

这个Skill适合一次性、高时效的信息聚合任务。用户只需说一句:

“帮我查一下最近30天AI编程工具V0.dev的讨论情况。”

Agent会自动识别“最近30天”为时间窗口,执行多源搜索,输出格式化的报告。不适合需要深度分析、持续追踪的场景(那是另一个Skill)。

完整 Skill 结构:SKILL.md 示例

这种设计通常以一个SKILL.md文件定义接口和逻辑。下面是我重构后的模板,可以直接复制到你的Agent配置中(比如用Dify、Coze或OpenAI GPTs)。

markdown
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
# SKILL: last_30_days_report

## 描述
跨多个社交媒体和新闻平台检索指定话题过去30天的公开信息,生成结构化的综合报告。

## 触发条件
用户查询中包含以下要素:
- 明确的时间短语如“最近30天”“过去一个月”“last 30 days”
- 具体的话题/关键词(如产品名、事件、技术)

## 输入参数
- `topic` (string, 必填): 话题关键词
- `platforms` (list, 可选): 指定平台,默认 ["reddit","twitter","youtube","hackernews","web"]
- `max_results_per_platform` (int, 可选): 每个平台最多返回结果数,默认5

## 执行步骤
1. 解析用户输入,提取topic和时间范围(硬编码为last 30 days)
2. 并发调用各平台搜索接口(需要API key,建议用SerpApi或各平台官方API)
3. 对返回结果统一格式化:标题、来源、发布时间(只保留30天内)、摘要
4. 将结果列表送入LLM,要求生成结构化报告:
   - **总体热度**(帖子数量、互动数估测)
   - **主要观点**(按提及次数排序,每个观点附1-2条原文链接)
   - **情感倾向**(正面/负面/中性比例)
   - **意外发现**(与预期不同的信息)
5. 输出最终报告给用户

## 输出格式
支持Markdown和JSON两种,默认Markdown以利阅读。

## 依赖
- SerpApi / Google Custom Search(用于Web和YouTube)
- Reddit API (OAuth)
- Twitter API v2
- HN API(免费)
- Polymarket API(可选,用于预测市场)

实际案例演示:差 Prompt vs 好 Prompt

为了让你感受区别,我模拟真实场景。

差 Prompt:

“帮我查一下最近一个月关于Claude 3.5 Sonnet的评价。”

Agent可能只搜索了普通网页,返回几篇博客文章,漏掉了Reddit上的吐槽和X上的快速反馈。输出是一段平铺直叙的文字,没有结构化,你还要自己再读一遍提取重点。

好 Prompt(使用本Skill设计):

“执行last_30_days_report,topic=Claude 3.5 Sonnet,platforms=[reddit,twitter,youtube,hackernews],输出Markdown报告。”

如果Agent原生支持这个Skill,它就会按步骤执行。输出示例(模拟):

markdown
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
# Claude 3.5 Sonnet 过去30天全网综合报告

**检索时间**:2025-03-15 ~ 2025-04-15(模拟)

## 总体热度
- Reddit:r/Claude 和 r/LocalLLaMA 共约120条相关帖子,总互动3.2k
- X:约450条推文,主要来自开发者(@kaggle, @lexfridman等)
- YouTube:5个评测视频,播放量合计80万
- HN:2个讨论帖,评论共230条

## 主要观点
1. **编码能力提升显著**(提及52次)
   - Reddit: [“Claude 3.5 Sonnet在SWE-bench上比GPT-4o高出15%”](链接)
   - X: @karpathy 称赞其代码生成质量
2. **价格偏贵,但速度快**(提及31次)
   ...

## 情感倾向
- 正面:65%
- 负面:18%
- 中性:17%

## 意外发现
- Claude 3.5 Sonnet在中文长文本任务上表现优秀,但几乎没有中文评测提及。

为什么好Prompt有效?

  • 显式指定平台,避免漏掉关键信息源。
  • 强制结构化输出,让读者一眼看到高价值结论。
  • 时间窗口精确到30天,屏蔽历史旧闻干扰。
  • 每条观点附链接,方便溯源验证。

背后原理:为什么这样写有效

  1. 工具调用链:Agent不是一个巨大prompt,而是调度多个搜索工具并发执行。这利用了LLM的“plan-then-execute”能力。每个平台搜索的结果长度可控(比如只取前5条),避免超出上下文窗口。
  2. 时间过滤前置:在搜索API层面就传入after:30days参数,而不是返回所有结果再让LLM过滤。这样既节省token,又减少LLM误判时间的风险。
  3. 聚合策略:不是简单拼接,而是让LLM执行“聚类”操作——先识别重复观点(同一事件在多个平台讨论),再按提及次数排序。这就是该Skill的“智能”所在。
  4. 可插拔性:定义统一的输入输出格式,任何Agent框架都可以接入。如果你想扩展,加个GitHub讨论或Discord搜索接口,只需要改SKILL.md的步骤和依赖。

复用和组合技巧

你可以基于这个模板快速改造:

变体1:7天热点追踪

  • 改时间参数为last 7 days,减少每个平台返回数(因短时间内容更多,但重复度更高)。
  • 增加Polymarket或Kalshi预测市场数据,追踪事件概率变化。

变体2:竞品动态周报

  • topic扩展为多个关键词列表(如“Cursor vs Windsurf vs V0”)。
  • 输出格式增加“各平台声量对比”表格。

变体3:Reddit独家分析

  • 只保留platforms=[reddit],但要求提取帖子的“top comments”作为二级摘要。
  • 适合深度社区舆情监测。

组合技巧:把这个Skill和“简报邮件”Skill串联——每天自动执行一次last 30 days报告(范围为今天之前30天,实际上是滚动窗口),将结果推送到邮箱。

完整可直接复制的 Prompt 模板

最后,给你一个最通用的prompt,可以用在任何基于OpenAI接口的代理上(如自定义GPT、LangChain Agent)。建议将平台的API key预置到环境变量。

python
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
# 简化版 prompt(适用于单次查询场景)
system_prompt = """你是一个多平台信息聚合分析师。
执行步骤:
1. 提取用户话题中的关键词和时间范围(默认最近30天)。
2. 同时搜索以下平台:Reddit、X (Twitter)、YouTube、Hacker News、Web(使用搜索工具)。
3. 对每个平台返回的结果,只保留30天内的内容。
4. 生成结构化报告,包含:
   - 总体热度(每个平台的帖子/推文/视频数量)
   - 主要观点(按提到次数从多到少排列,每个观点附1-2个来源链接)
   - 情感倾向(正面/负面/中性比例)
   - 意外发现(与主流观点不一致或冷门信息)
5. 以Markdown格式输出。
"""

user_query = "帮我查一下最近30天Cursor IDE的社区反馈"

把这个system_prompt放入你的Agent配置,记得绑定可用的搜索工具(比如SerpApi、Tavily、或自定义WebHook)。每周跑一次,你就是团队里最了解动态的人。


如果你有自己组合的变体技巧,欢迎在评论区分享。