在 AI 工具爆发式增长的今天,如何快速获取某个主题的最新社区讨论、技术趋势和预测市场数据,成为开发者面临的核心信息需求。last30days-skill 是一个运行于 Claude Code、Codex 和 Gemini CLI 的 AI Agent 技能,它能够自动研究任意主题,聚合来自 Reddit、X(Twitter)、YouTube、Hacker News、Polymarket 预测市场等 8 个平台的数据,并利用 LLM 合成一篇带有真实引用来源的研究摘要。这一工具的技术架构涉及多源数据聚合、相关性评分、跨平台收敛检测和 LLM 合成等多个工程难点,本文将深入解析其核心设计。

多源数据聚合的分层设计

last30days-skill 采用渐进式解锁的数据源架构,核心数据源分为三个层级。零配置层级包含 Reddit 公开 JSON 接口、Hacker News 的 Algolia API 以及 Polymarket 的 Gamma API,这三个来源无需任何 API 密钥即可使用,是工具开箱即用的基础保障。第二层级需要用户通过设置向导提取浏览器中的 X/Twitter 登录 cookie,或者配置 ScrapeCreators API Key 来解锁 Reddit 高赞评论、TikTok 和 Instagram 内容。第三层级则为可选的付费 Web 搜索后端,包括 Exa(每月 1000 次免费)、Brave Search、Parallel AI 和 OpenRouter。

这种分层设计的工程意义在于降低用户的使用门槛。用户在安装技能后可以立即获得基础研究能力,随着对数据深度需求的提升,再逐步配置更多数据源。配置方式支持全局配置(~/.config/last30days/.env)和项目级配置(.claude/last30days.env)两种形式,后者允许在不同项目中隔离 API 密钥,这是工程实践中的重要细节。

两阶段搜索架构与查询优化

该工具的核心搜索流程分为两个阶段。第一阶段进行广泛发现,使用 OpenAI Responses API 的 web_search 工具针对 reddit.com 进行搜索,Twitter GraphQL 客户端(或 xAI API 备选)进行 X 平台搜索,YouTube 通过 yt-dlp 获取视频元数据和字幕,Hacker News 通过 Algolia API 抓取 stories 和 comments,Polymarket 通过 Gamma API 查询预测市场。如果配置了 Exa 等 Web 搜索后端,还会额外进行网页搜索。

第二阶段是智能补充搜索,这是 V2 版本的核心改进。在第一阶段结果返回后,工具会从结果中提取关键实体,包括 X 帖子中的 @handles 和 Reddit 的 subreddit 名称,然后运行针对性随访。例如,当用户搜索 "Open Claw" 时,工具会自动发现 @openclaw 和 @steipete 这类关键账号,并执行 from:@handle 的定向搜索,从而捕获那些在正文中未提及主题名称但由官方账号发布的病毒式内容。这种查询扩展策略显著提升了召回率,根据项目文档,搜索 "Dor Brothers" 时通过 handle 解析发现了 40 条 posts(6900+ likes),而纯关键词搜索仅返回 30 条(161 likes)。

查询构建的另一个优化点是去元词处理。V1 版本发送的查询过于具体(如 "vibe motion best prompt techniques"),导致 X 搜索返回零结果。V2 版本会自动剥离研究类词汇(best、prompt、techniques、tips)和疑问前缀,提取核心主题进行搜索,并在首次无结果时自动回退到更少的关键词。

多信号相关性评分系统

多源数据聚合的难点在于如何对不同平台的结果进行统一排序。last30days-skill 实现了一套复杂的多信号评分管道,对所有来源的结果执行以下加权计算:双向文本相似度(包含同义词扩展和 token 重叠)、参与度速度归一化、来源权威权重、跨平台收敛检测(通过混合 trigram-token Jaccard 相似度),以及时间衰减因子。

对于 Polymarket 预测市场,评分采用五因素加权组合:文本相关性占 30%,24 小时交易量占 30%,流动性深度占 15%,价格变动速度占 15%,结果竞争度占 10%。这里特别值得注意的是结果感知评分(outcome-aware scoring),它不仅匹配市场标题,还会将主题与单个市场仓位进行匹配。例如搜索 "Arizona Basketball" 时,工具不仅查找标题包含该关键词的市场,还会发现 "NCAA Tournament Winner" 市场中 "Arizona: 12%" 这个具体仓位。

跨平台收敛检测是该系统的亮点功能。当同一故事出现在多个平台时,工具会标记 [also on: Reddit, HN][also on: X, YouTube]。这种跨平台信号是最强的证据,表明某个主题确实值得关注。项目方进行了盲测评估,v2.5 版本得分为 4.38/5.0,显著高于 v1 的 3.73/5.0。

预测市场数据的独特价值

Polymarket 集成是 last30days-skill 区别于普通社交媒体搜索工具的核心差异。预测市场反映了人们用真金白银投注的真实预期,这种信号在传统社交媒体监听中无法获取。工具支持两种查询模式:直接搜索特定主题的市场(如搜索 "Iran War" 返回 15 个活跃市场,包括美国 3 月前袭击概率 70%、战争宣言概率 2% 等),以及标签桥接的两阶段扩展搜索。当主题是某个更广泛事件的结果之一时(如 "Arizona" 是 "NCAA Tournament Winner" 市场的下注选项),第一阶段搜索所有主题词提取分类标签,第二阶段通过这些标签发现隐藏市场。

项目还实现了负风险二元市场合成(Neg-risk binary market synthesis),用于处理 Polymarket 的多结果事件。原始 API 返回的是 "Yes: 12%, No: 88%" 这类二元市场数据,工具检测到这种模式后会提取实体名称并合成为统一展示,如 "Arizona: 12%, Duke: 18%, Houston: 15%"。

LLM 合成与输出格式

所有收集到的数据最终通过 LLM 进行合成。工具支持生成两种类型的输出:针对特定工具的 prompt(例如为 ChatGPT、Midjourney、Claude 等生成可直接使用的提示词),以及通用的研究摘要。LLM 合成时会参考所有来源的参与度数据,优先引用高 engagement 的内容,并在输出中标注来源和具体指标。

项目在 V2.9 版本中引入了 Reddit 热门评论加权机制,顶级评论在评分公式中占 10% 权重,并在输出中以 💬 符号和 upvote 数量标注。这解决了传统研究工具只抓取帖子正文而忽略高价值讨论的问题。

工程化实践参数

对于计划自建类似系统的开发者,以下参数值得参考。Reddit JSON 搜索使用公开接口无需认证,但如果需要获取完整评论内容,ScrapeCreators API 是推荐方案(100 次免费调用,无信用卡需求)。X 搜索可以通过浏览器 cookie 提取或 xAI API 两种方式获取,后者需要配置 XAI_API_KEY 环境变量。YouTube 搜索依赖 yt-dlp(brew install yt-dlp),字幕提取功能不需要额外 API。

性能方面,完整模式的搜索耗时约 2-8 分钟(取决于主题的冷门程度),快速模式(--quick)跳过补充搜索阶段,YouTube 仅分析 10 个视频和 3 个字幕。深度模式(--deep)则扩展到 50-70 个 Reddit 帖子、40-60 个 X 帖子、40 个 YouTube 视频和 8 个字幕。评分结果显示 v2.5 版本在 groundedness(30%)、specificity(25%)、coverage(20%)、actionability(15%)和 format(10%)五个维度上显著优于早期版本。

last30days-skill 的技术架构展示了一个完整的多源数据聚合系统应该如何设计:从渐进式数据源解锁降低使用门槛,到两阶段搜索架构提升召回率,再到多信号评分实现跨平台统一排序,最后通过 LLM 合成输出可操作的研究成果。对于构建类似 AI 研究工具的团队,其分层设计思路、查询优化策略和预测市场集成方案都具备直接的参考价值。

资料来源:GitHub - mvanhorn/last30days-skill(https://github.com/mvanhorn/last30days-skill)