信息碎片化是当代研究者的核心痛点。当你需要了解一个技术话题或人物动态时,不得不分别打开 Reddit 查看社区讨论、X 追踪实时反应、YouTube 寻找深度解析、GitHub 关注代码动向 —— 每个平台都是一座数据孤岛,而传统搜索引擎只能返回经过 SEO 优化的编辑内容,无法捕捉人群真实的关注焦点。
last30days-skill 提供了一种 Agentic 解决方案:通过统一的技能接口,让 AI Agent 同时搜索 Reddit、X、YouTube、Hacker News、Polymarket、GitHub 等 14 个以上数据源,基于 upvotes、likes、views、real money odds 等社交信号进行评分,最终合成一份带明确出处的 grounded summary。这种模式的核心洞察在于 ——"Google 聚合编辑,Agent 搜索人群"。
多源并行架构与社交信号评分
该技能的引擎采用 Python 3.12+ 构建,核心设计是将搜索任务并行分发到多个数据源适配器。每个适配器负责特定平台的协议转换:Reddit 使用公开 JSON API 获取带 upvote 计数的评论,X 通过浏览器 session 抓取推文和互动数据,YouTube 利用 yt-dlp 提取视频字幕,Polymarket 则获取预测市场赔率。
关键的设计决策是评分机制。传统搜索按关键词相关性排序,而该引擎将社交参与度作为核心信号:Reddit 的 1500 upvotes 比无人问津的博客文章更有价值,TikTok 360 万播放量反映真实的文化相关性,Polymarket 上 66K 美元交易量支撑的赔率比专家猜测更难反驳。这种 "人群投票" 机制使合成结果更贴近实际关注度,而非 SEO 优化后的内容。
数据源分为零配置和需自备凭证两类。Reddit(公开 JSON)、Hacker News、Polymarket、GitHub 无需任何 API key 即可工作;X 仅需登录浏览器 session,YouTube 需要本地安装 yt-dlp;TikTok、Instagram、Threads、Pinterest 等则需 ScrapeCreators API key,Perplexity Sonar 需要 OpenRouter key。这种分层设计让用户可以按需启用,避免不必要的配置负担。
智能预解析:从关键词到实体定位
v3 版本引入的预研究引擎是架构上的重大升级。旧版引擎直接搜索关键词,新版引擎在发起任何 API 调用前,先通过 Python 推理模块理解话题的实体关系:输入 "OpenClaw" 会自动解析出创始人 @steipete、GitHub 仓库 openclaw/openclaw、相关 subreddit r/ClaudeCode、以及 YouTube 上的技术频道。这种实体解析支持双向关联 —— 从人物到公司、从产品到创始人、从名称到 GitHub 个人资料。
预解析的价值在于精准定位信息源。搜索 "Peter Steinberger" 时,引擎知道应该抓取 @steipete 的 X 时间线、steipete 的 GitHub 贡献、以及 r/ClaudeCode 的相关讨论,而不是泛泛地搜索关键词。这使得 v3 能够发现 v2 无法触及的内容,比如技术社区中围绕特定开发者的深度讨论。
对于人物类查询,引擎还会切换至 GitHub 个人模式:不再搜索 "谁在 issue 中提到了这个名字",而是回答 "这个人正在交付什么、交付到哪里"。通过 --github-user 参数,可以获取某人的 PR 合并率、主导项目、发布记录等开发活动指标,与社交动态形成互补视角。
合成策略:聚类、评判与 Grounded 输出
多源数据的最大挑战是同一故事在不同平台的重复呈现。last30days-skill 采用基于实体的跨源聚类合并:当 Wireless Festival 的取消消息同时出现在 Reddit 讨论、X 反应和 TikTok 票价视频时,引擎将其识别为同一事件集群,而非三个独立条目。这种聚类基于内容语义而非标题匹配,即使不同平台使用不同措辞也能正确归并。
评判系统采用双维度评分。主评判器按相关性和新鲜度排序,副评判器则专门识别幽默、机智和病毒传播潜力。Reddit 上的神回复可能在相关性上得分不高,但在传播性上表现突出,因此 v3 会在合成末尾添加 "Best Takes" 板块,收录那些值得分享的金句和反应。
合成输出支持三种格式:对话中的实时响应、保存到本地的 Markdown 原始文件(包含完整引用链)、以及可分享的 HTML 简报。HTML 版本采用自包含设计,内联 CSS、系统字体回退、无 JavaScript,支持暗黑模式和打印,可直接拖入 Slack 或邮件。输出路径默认为 ~/Documents/Last30Days/,可通过 LAST30DAYS_MEMORY_DIR 环境变量或 --save-dir 参数自定义。
工程实践参数与配置清单
部署该技能需要关注以下配置参数:
数据源启用矩阵
- 零配置:Reddit(含评论)、HN、Polymarket、GitHub
- 浏览器 session:X(登录 x.com 即可)
- 本地工具:YouTube(
brew install yt-dlp) - API key:TikTok/Instagram/Threads/Pinterest(ScrapeCreators)、Perplexity(OpenRouter)、Web Search(Brave,2000 次 / 月免费)
环境变量
LAST30DAYS_MEMORY_DIR:研究文件保存路径EXCLUDE_SOURCES:排除特定源(如tiktok,instagram)INCLUDE_SOURCES:额外启用(如youtube_comments,tiktok_comments)SCRAPECREATORS_API_KEY、OPENROUTER_API_KEY、BRAVE_API_KEY
运行时参数
--store:启用 SQLite 持久化,支持趋势监控--emit=html:输出 HTML 简报--save-suffix=<name>:同一话题的多版本区分--competitors:自动发现竞品并生成对比eli5 on/off:切换简明解释模式
监控与自动化
使用 scripts/watchlist.py 可配置定时任务,在发现新内容时通过 Slack 或 webhook 推送;scripts/briefing.py 支持生成每日 / 每周摘要。这种设计使该技能从一次性研究工具升级为持续情报系统。
应用场景与架构启示
该技能的价值在多个场景中得到验证:会议前快速了解对方最近 30 天的动态(包括 GitHub 提交记录和社交讨论)、工具选型时获取社区真实反馈而非营销内容、追踪突发事件的跨平台反应、甚至旅行规划时参考 Reddit 的实时体验分享。
从架构层面看,last30days-skill 展示了 Agentic 系统设计的几个关键原则:通过实体解析实现精准定位、用社交信号替代传统相关性排序、以聚类合并解决多源重复、 grounded citation 保证可追溯性。这些模式不仅适用于研究场景,也可迁移到任何需要聚合多源异构数据的 AI 应用中。
对于希望构建类似系统的开发者,建议从 Reddit + HN + GitHub 这三个零配置源起步,验证核心流程后再逐步接入需要凭证的平台。重点关注实体解析的准确性 —— 这是决定合成质量的关键环节。
资料来源
- GitHub: mvanhorn/last30days-skill - AI agent skill that researches any topic across Reddit, X, YouTube, HN, Polymarket, and the web
内容声明:本文无广告投放、无付费植入。
如有事实性问题,欢迎发送勘误至 i@hotdrydog.com。