在 AI 代理能力快速迭代的今天,单一工具调用已无法满足对实时信息的深度需求。当研究者想要了解某个技术话题的真实社区反馈时,往往需要在多个平台间切换 ——Reddit 的讨论、X 上的热度、YouTube 视频的分析、Hacker News 的技术观点,以及 Polymarket 预测市场中的真实资金流向。这种分散的信息获取方式效率极低,且难以形成统一的知识视图。

last30days-skill 是一个运行在 Claude Code、Claude Code CLI 和 OpenAI Codex 上的 AI 研究代理技能,它将这一复杂的多平台信息聚合过程封装为一次简单的命令调用。通过两阶段搜索架构、多信号质量评分、跨平台收敛检测和预测市场集成,这个工具展示了如何工程化实现一个可靠的多源信息合成管道。

多平台搜索的两阶段架构

理解这个系统的工程实现,首先需要理解其核心的两阶段搜索架构。传统的信息聚合工具往往采用单轮搜索 —— 将查询发送给各个平台,返回结果后直接展示。这种方式存在两个显著问题:一是关键词匹配过于死板,无法发现语义相关但字面不匹配的内容;二是各平台的数据质量参差不齐,简单合并会导致噪声淹没信号。

last30days-skill 采用了 Phase 1 广度发现与 Phase 2 智能补充相结合的两阶段架构。在第一阶段,系统并行调用六个数据源:Reddit 通过 ScrapeCreators API 或 OpenAI Responses API 的 web_search 工具进行搜索;X(原 Twitter)使用内嵌的 Twitter GraphQL 客户端或 xAI 的 x_search 后端;YouTube 通过 yt-dlp 进行搜索并提取视频 Transcript;Hacker News 通过 Algolia 的免费 API 获取 stories 和评论;Polymarket 通过 Gamma API 查询预测市场数据;Web 搜索则支持 Parallel AI、Brave Search 或 OpenRouter 等多个后端。

这个阶段的关键设计在于查询改写。系统会主动剥离查询中的研究性词汇和疑问前缀 —— 例如「vibe motion 最佳提示词技术」这样的查询会被改写为纯粹的「vibe motion」,避免过度约束导致的零结果。实测数据显示,这一改写策略将 X 平台的可用结果从零条提升到十几条。

第二阶段的智能补充搜索是整个管道的精华所在。系统在完成第一阶段后,会从结果中提取关键实体:X 帖子的 @Handles、Reddit 的 subreddit 名称、讨论中提到的人物和产品。然后针对这些实体进行针对性的后续搜索。在 Reddit 上使用免费的 .json 搜索接口针对特定 subreddit 进行窄范围搜索;在 X 上则执行 from:@handle 格式的定向查询。这种设计解决了关键词搜索的盲区 —— 一个品牌或人物的官方账号往往不会在推文中提及自己的名称,导致普通关键词搜索完全无法发现这些账号的动态。

多信号质量评分管道

找到内容只是第一步,判定内容质量才是真正的技术挑战。不同平台的数据具有完全不同的分布特征:Reddit 的 upvote 数量可能达到数万,而 HN 的得分通常在几百以内;X 帖子可能获得大量转发但点赞很少;YouTube 视频的观看次数与互动质量并非线性关系。如果简单地将这些指标放在一起排序,必然产生偏差。

last30days-skill 实现了一套复合评分管道,对所有平台的结果进行统一的质量评估。基础评分公式为:0.50 × log1p (score) + 0.35 × log1p (comments) + 0.05 × (ratio×10) + 0.10 × log1p (top_comment_score)。其中 score 对应各平台的原始 engagement 指标(Reddit 的 upvotes、X 的 likes + retweets、YouTube 的 views 等),comments 是评论数,ratio 是点赞与转发等不同指标的归一化比率,top_comment_score 则给予热门评论额外权重。

对于 Polymarket 预测市场,系统使用了专门的五因子加权模型:文本相关性占 30%、24 小时交易量占 30%、流动性深度占 15%、价格变动速度占 15%、结果竞争度占 10%。这个设计的核心洞察是,预测市场的数据本身包含了对事件发生概率的市场化评估 —— 一个高流动性、高交易量的市场意味着大量资金对该结果进行了押注,这是比社交媒体情绪更可靠的信号。

更关键的是跨平台收敛检测机制。系统使用混合相似度算法(字符三元组 Jaccard + 词项 Jaccard)来识别同一事件在不同平台的报道。当同一话题在 Reddit、X 和 HN 上同时出现时,系统会标记为「跨平台收敛」—— 这是最强的影响力信号,表明这个话题确实引起了广泛的社会关注。盲测评估显示,引入这一机制后,系统的质量评分从 3.73/5.0 提升到了 4.38/5.0。

预测市场集成的工程细节

Polymarket 的集成是这个项目最独特的技术亮点。与社交媒体的情绪表达不同,预测市场中的每一笔交易都代表着真金白银的立场 —— 这提供了传统舆情分析无法获取的信号维度。

工程实现上,系统使用 Gamma API 进行市场查询。但这里存在一个关键技术挑战:大多数市场并不以用户查询的主题作为标题。例如,搜索「Arizona Basketball」不会直接返回 NCAA 锦标赛冠军投注市场,因为市场标题可能是「NCAA Tournament Winner」,而 Arizona 只是其中一个选项。

解决这个问题的方案是两阶段查询扩展加标签域桥接。第一阶段,系统并行搜索查询中的每个词项,从返回的市场中提取结构化的类别标签(如「NCAA CBB」「篮球」「大学体育」)。第二阶段,使用这些标签进行二次搜索,发现那些标题中不包含查询词但类别相关的市场。这种方法将可发现的市场数量显著扩展。

另一个工程挑战是处理 Polymarket 的多结果事件。对于「谁将赢得 NCAA 锦标赛」这样的市场,每个候选球队都是一个独立的 Yes/No 二元市场。系统需要检测这种模式,提取所有结果并合成统一展示 —— 显示「Arizona: 12%, Duke: 18%, Houston: 15%」而不是将每个选项作为独立的二元判断。

实用参数配置与监控要点

对于希望部署这个系统的开发者,以下是经过验证的关键配置参数。首先是 API 密钥的准备:SCRAPECREATORS_API_KEY 是必须的,它覆盖 Reddit、TikTok 和 Instagram 三个平台;X 搜索可以通过 AUTH_TOKEN + CT0(从 x.com Cookie 获取)或 XAI_API_KEY 两种方式认证;YouTube 需要在 PATH 中安装 yt-dlp;可选的 Web 搜索支持 Brave(免费额度 2000 次 / 月)、Parallel AI 或 OpenRouter。

性能方面,默认的 30 天回溯窗口适合大多数研究场景;使用 --days=7 可以获得更快但覆盖范围更小的周报;--quick 模式将搜索量减半(每平台 8-12 条结果)并将执行时间压缩到 2 分钟以内;--deep 模式则扩展到每平台 50-70 条结果,适合深度研究。

监控层面,系统提供了 --diagnose 参数来检查各数据源的状态。关键的监控指标包括:各平台的搜索响应时间(Reddit 和 X 通常在 5-15 秒)、评分分布(检查是否存在异常高分或低分的离群点)、以及跨平台收敛事件的数量(这是话题热度的强指标)。

对于持久化使用场景,open 变体支持将研究结果存储到本地 SQLite 数据库,配合 cron job 或 always-on bot 可以实现定时监控和简报生成。每一次研究结果会自动保存到~/Documents/Last30Days/ 目录,形成个人研究知识库。

技术演进的启示

last30days-skill 的工程实践揭示了几个重要趋势。首先,多平台信息的语义整合正在从简单的聚合走向智能的合成 —— 不仅仅是收集结果,而是理解结果之间的关联和冲突。其次,预测市场作为信息来源的价值被显著低估了;当传统舆情分析只能告诉我们「人们在说什么」时,预测市场告诉我们「人们愿意为此赌多少钱」—— 后者往往是更可靠的信号。第三,AI 代理的实用价值不在于单次调用能做什么,而在于如何设计调用链来弥补各平台的缺陷 —— 两阶段搜索、模型回退、结果评分这些都是为了让整个管道更加鲁棒。

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