在 AI 工具快速迭代的今天,如何从海量分散的社交平台中获取真正有价值的情報,已成为研究人员和开发者的核心痛点。Reddit 上的讨论、X 上的实时动态、YouTube 的教程视频、Polymarket 上的预测市场数据 —— 这些分散在不同平台的信息源,传统搜索工具难以统一覆盖。本文深入解析 last30days-skill 这一开源 AI 研究智能体的工程实现,探讨其如何通过两阶段搜索架构、多信号质量评分与预测市场集成,构建一个真正跨平台的情报聚合系统。

两阶段搜索架构:从广度发现到深度补充

last30days-skill 的核心架构采用两阶段搜索设计,这一设计解决了单一搜索关键词难以覆盖多平台内容的问题。第一阶段进行广度发现,使用 OpenAI Responses API 的 web_search 工具针对 Reddit 进行定向搜索,同时通过 bundled 的 Twitter GraphQL 客户端(或 xAI API fallback)搜索 X 平台。YouTube 搜索在 yt-dlp 可用时自动激活,提取视频标题、view counts 和自动生成的字幕。Hacker News 通过 Algolia 的免费 API 获取故事和评论,Polymarket 则通过 Gamma API 拉取预测市场数据。

这种多源并行搜索的设计确保了信息收集的广度,但真正的工程难点在于如何从大量噪声中提取有价值的内容。第二阶段的智能补充搜索解决了这一问题:在完成第一轮搜索后,系统会从结果中提取关键实体 ——X 上的 @handle、Reddit 的 subreddit 名称 —— 然后进行针对性的 follow-up 搜索。例如,研究 "Open Claw" 时,系统会自动发现 @openclaw 和 @steipete 的账号,并深入搜索他们的历史帖子。这种实体驱动的搜索扩展,能够捕捉到关键词搜索完全遗漏的内容。

在 Reddit 搜索方面,v2.9 版本进行了重大改进。默认启用 ScrapeCreators 作为 Reddit 数据源,一个 API key 即可覆盖 Reddit、TikTok 和 Instagram 三个平台。智能 subreddit 发现功能不再依赖纯频率统计,而是采用相关性加权评分:frequency × recency × topic-word-match,同时使用 UTILITY_SUBS blocklist 过滤掉 r/tipofmytongue 等噪音 subreddit。实测数据显示,Claude Code skills 主题从原来泛泛的编程 subreddit,精准定位到 r/ClaudeAI、r/ClaudeCode、r/openclaw。

多信号质量评分:不是找到更多,而是排得更好

聚合更多内容只是第一步,如何对结果进行质量排序才是决定输出价值的关键。last30days-skill 构建了一套复杂的多信号评分管道,每个结果都会经过文本相似度、平台收敛度、时效性和参与度等多维度评估。

文本相似度引擎采用双向子字符串匹配结合同义词扩展和 token 级重叠评分。同义词扩展使得 "hip hop" 能匹配 "rap","MacBook" 能匹配 "Mac","AI video" 能匹配 "text to video"。测试数据表明,一个原本 relevance score 仅有 0.33(几乎被过滤)的 "Lit Hip Hop Mix 2026" 标题,经过相似度增强后提升到 0.71。YouTube 搜索还会同时匹配视频标题和字幕内容,捕捉那些标题中未提及但内容有涉及的影片。

跨平台收敛检测是另一项关键创新。当同一内容在多个平台出现时,系统会标记[also on: Reddit, HN][also on: X, YouTube]。匹配算法使用混合相似度(字符 trigram Jaccard + token Jaccard),即使不同平台的标题措辞不同也能识别出来。收敛信号是最强的 "重要证据"—— 当 Reddit、X 和 HN 同时讨论某个话题时,这个话题的重要性远超单一平台的热议。

平台权威权重和参与度归一化确保了不同平台的数据可以公平比较。500 个 upvote 的 Reddit 帖子和 5000 likes 的 X 推文会被标准化到同一度量体系中进行排序。Polymarket 预测市场的评分更为复杂,采用五因素加权复合:文本相关性 30%、24 小时交易量 30%、流动性深度 15%、价格变动速度 15%、 outcome 竞争力 10%。特别是 outcome-aware scoring,会将查询主题与单个 market positions 进行匹配,而非仅看 event titles—— 一个主题有 88% 概率的 market 比 2% 概率的 market 排名更高。

v2.5 版本的盲测评估显示,经过多信号评分增强后,研究质量从 v1 的 3.73/5.0 提升到 4.38/5.0,最大提升来自预测市场数据和跨平台收敛检测的引入。

Polymarket 预测市场:金钱投注的真实信号

将预测市场作为信息源是 last30days-skill 最具差异化的特性之一。与主观投票不同,Polymarket 上的真实金钱投注代表了参与者对事件发展方向的真实信念。系统通过 Gamma API 搜索预测市场,针对任何主题都能拉取实时赔率、24 小时交易量、流动性深度和价格变动。

两阶段查询扩展解决了预测市场搜索的核心挑战:大多数情况下,查询主题是 market 的某个 outcome 而非 market 本身。例如搜索 "Arizona Basketball",系统需要发现 "NCAA Tournament Winner" 这个 market,然后提取其中的 Arizona 选项。tag-based domain bridging 的工作流程是:第一轮并行搜索所有独立的 topic words,从结果中提取结构化 category tags(如 "NCAA CBB"、"Geopolitics"),第二轮基于这些 domain indicators 进行搜索,从而发现那些对关键词搜索完全不可见的 markets。

Neg-risk binary market synthesis 处理了 Polymarket 的多 outcome 事件。当一个 event 有多个独立的是 / 否 market 时(如每支球队都有各自的冠军竞猜),系统会检测 binary sub-market 模式,从 market questions 中提取 entity names,并合成统一的 outcome 显示。例如搜索 "Arizona Basketball" 会得到:NCAA 冠军 - Arizona 12%、#1 种子概率 Arizona 88%、Big 12 常规赛冠军 Arizona 69%—— 而非一堆 "Yes 12%, No 88%" 的原始数据。

这个数据源的价值在于它提供了传统社交媒体无法提供的 "行动信号"。搜索 "Anthropic odds" 会返回:2 月最佳 AI 模型 98%、3 月 61%、IPO 首超 OpenAI 64%、2026 年 6 月前 IPO 95% NO、估值超 500B 87%、FrontierMath 50% 通过率 48%。这些都是用真金白银押注的预测,比任何主观判断都更能反映市场真实预期。

X Handle 解析:找到那些从不提及自己的账号

X 平台的一个独特挑战是:很多重要账号自己从不提及自己的名字。搜索 "Dor Brothers" 时,关键词搜索找不到他们的帖子,因为他们 viral 的推文是 "We made a $300M movie starring @LoganPaul with AI in less than 7 days"—— 通篇没有 "Dor Brothers" 这个关键词。

Handle 解析模块在执行主题搜索前,先通过一次 WebSearch 解析目标 topic 的 X handle。搜索{topic} X twitter handle site:x.com,从结果中提取并验证 handle(确保不是 parody 或 fan 账号),然后执行from:{handle}的无过滤搜索。这个看似简单的改进效果显著:研究 "Dor Brothers" 的搜索结果从 30 条(161 likes)提升到 40 条(6,900+ likes),因为找到了那些从不提自己名字但影响力巨大的关键账号。

对比模式与开放变体:超越一次性研究

v2.9.5 引入的对比模式是针对 "X vs Y" 类型查询的专项优化。当用户搜索 "Cursor vs Windsurf" 时,系统会进行 3 轮并行研究,然后生成并排对比:各自优势、劣势、头部对比表格和数据驱动的结论。这不是简单的信息拼接,而是基于两个主题独立研究后的结构化分析。

开放变体(Open Variant)为持续监控场景设计。与一次性研究不同,开放变体添加了 watchlist、briefings 和 history 功能。用户可以将竞争对手、关键人物或任何主题加入 watchlist,设定运行周期(每周、每月等),配合 cron job 或 always-on bot(如 Open Claw)自动触发研究。研究结果累积到本地 SQLite 数据库,用户可以随时用自然语言查询历史发现。系统还支持 daily/weekly digested briefings,从累积发现中合成定期摘要。

自动保存功能(v2.9.1)将每次完整研究保存为~/Documents/Last30Days/{topic}.md,用户无需额外配置即可构建个人研究知识库。

配置与部署:多平台支持的工程权衡

last30days-skill 支持多种安装方式:Claude Code 插件(推荐)、Gemini CLI、OpenAI Codex CLI 和手动安装。API key 配置采用分层设计:全局配置~/.config/last30days/.env适用于所有项目,项目级配置.claude/last30days.env可覆盖全局设置。SessionStart 时自动验证配置的完整性。

核心依赖包括:OpenAI 认证(用于 Reddit 搜索,可通过 codex login 或 OPENAI_API_KEY)、Node.js 22+(bundled Twitter GraphQL 客户端需要)、X 认证(AUTH_TOKEN + CT0 cookie 或 XAI_API_KEY fallback)、yt-dlp(可选,YouTube 搜索必需)。新增的 Bluesky/AT Protocol 支持通过 BSKY_HANDLE 和 BSKY_APP_PASSWORD 配置。

v2.9 版本的一个显著改进是 455 + 测试用例覆盖所有模块,确保了多平台集成中常见但容易被忽视的边界情况 —— 不同平台 API 的 rate limits、认证失效、HTML 结构变化 —— 都能被及时捕获。

工程实践的启示

last30days-skill 的核心价值并非简单的内容聚合,而在于构建了一套信息质量评估的信号系统。当 8 个平台的数据源被统一评分、跨平台收敛被检测、预测市场赔率被纳入考量时,输出的研究摘要就不再是搜索结果的简单拼接,而是真正经过 "哪些信息真正重要" 这一判断过滤后的情报。

这种设计对其他多平台数据集成项目具有借鉴意义:单一数据源的获取只是基础设施,真正创造价值的是如何建立跨源的信号关联和质量评估体系。在 AI 工具日益强调 "agentic" 的今天,这种能够自主判断信息可靠性、主动发现隐藏关联的能力,可能比多抓取几个平台更具长远意义。


资料来源last30days-skill GitHub 仓库