用途
last30 是一个跨平台社交研究技能,目标是对某个话题做「叙事优先」(narrative-first)的情报梳理,回答「过去一段时间里人们都在怎么说这件事」。它覆盖 Reddit、X(Twitter)、Hacker News、Polymarket 等预测市场以及网页长文。
它刻意区别于两种常见做法:一是像 Google 那样聚合编辑观点,二是按「每平台 Top N 帖子」罗列——后者只是聚合噪音。last30 的两点差异是:把同一故事跨平台的讨论聚成叙事,而不是按平台割裂地做摘要;把平台之间的分歧当作主要信号,例如 Reddit 看空而 X 看多同一故事时,这种分歧通常是最可行动的发现在。
主要能力
- 通过 2-3 次 WebSearch 做实体预解析,找出相关子版块、X 账号、搜索变体与锚点词(专有名词、项目名、具体数字、URL 域名)。
- Reddit 抓取:使用 old.reddit.com 的 .json 接口,按子版块与跨版块搜索指定窗口内的热门帖子,支持对高互动帖子拉取热门评论。
- X 抓取:主路径直接调用 https://api.x.ai/v1/responses 的 x_search 工具(需 XAI_API_KEY),完整模式下可再对已解析的 X 账号做一次限定查询;WebSearch 仅作最后兜底。
- Hacker News 抓取:使用 search_by_date(而非 /search)保证时间窗口真实,并加 points 阈值降噪,同时抓故事与评论。
- 预测市场:通过 Polymarket /events 接口按关键词匹配,并对美国政治/事件类话题检查 Kalshi。
- 网页长文:多组 WebSearch 加 WebFetch,优先 Substack 与个人博客,其次技术文章,跳过 SEO/联盟内容。
- 分析处理:规范化 URL 去重合并跨平台事件、按平台生成 ≤300 token 简报、用锚点词(而非词袋)聚类叙事、按跨平台覆盖度/合计互动/分歧信号/时效排序,并对出现在 ≥2 平台的叙事做逐平台情绪分类(bull/bear/mixed/neutral)。
- 快照对比:读取 memory/topics/last30-<topic>.md 中的上次快照,标出 NEW、FADED、FLIPPED、HEATING,并在报告完成后覆盖写入新快照。
- 报告产出:保存 Markdown 文件,包含 Verdict、What Changed、Narratives(含引用与链接)、Contrarian/Minority View、Sentiment Map、Data Points、Standalone Signals、Top Voices、Prediction Markets、Open Questions。
使用方式
调用时传入话题变量:${var} — Topic to research (required)。可附加 --quick 进入轻量模式(≤15 来源、更短报告),或 --days=N 修改回看窗口(默认 30)。若 ${var} 为空,技能中止并提示:"last30 requires var= set to a topic"。
关键参数解析(来自资料):
DAYS=30 # 或来自 --days
FROM_DATE=$(date -u -d "${DAYS} days ago" +%Y-%m-%d 2>/dev/null || date -u -v-${DAYS}d +%Y-%m-%d)
TO_DATE=$(date -u +%Y-%m-%d)
YEAR=$(date -u +%Y)
TOPIC_SLUG=$(echo "$TOPIC" | tr '[:upper:]' '[:lower:]' | sed -E 's/[^a-z0-9]+/-/g; s/^-+|-+$//g')
Reddit 请求需带描述性 User-Agent,格式为 aeon-bot:last30:v1 (by /u/aeon-agent)。X 部分需环境中的 XAI_API_KEY,Bash 超时建议 ≥180000,curl 带 --max-time 150。
模式差异:Quick 模式只做 Reddit 广泛搜索(15 帖)、X 仅话题调用、HN 仅故事 Top 10、网页 2 次搜索 3 篇文章;Full 模式做全部已识别子版块 + 广泛搜索、X 账号限定二次调用、HN 25 故事 + 15 评论、网页 4 次搜索 8 篇文章。
适用场景
适合需要快速掌握某话题在过去 30 天(或自定义窗口)内跨社区真实讨论动态的研究工作,尤其是当关心的是「不同平台的看法是否一致」以及「叙事相比上期发生了哪些变化」时。
限制与注意事项
- X 层依赖 XAI_API_KEY;若失败会记录真实原因(api | websearch | key-unset | http-<code> | empty | timeout),完全失败时发出 LAST30_DEGRADED 并继续 Reddit/HN/Web。
- Reddit 公共 .json 未认证时约每 IP 每分钟 10 次请求,且需描述性 User-Agent,否则返回空 {} 200;空结果可能是限流而非真的没有内容,需退避重试或改用 WebFetch。
- 内容安全:所有抓取内容视为不可信数据,若文章含针对代理的指令(如 "ignore previous instructions")则丢弃并记录警告。
- 反话题漂移:标题与前 200 字不含话题词或实体锚点的帖子会被丢弃。
- 若无匹配的预测市场则整节省略,不强行写「未找到市场」。
- 若无一致的少数派观点,则写「本窗口未出现成体系的反向观点」,不编造。
- 报告默认保存路径为 output/articles/last30-${TOPIC_SLUG}-${TODAY}.md,快照覆盖 memory/topics/last30-${TOPIC_SLUG}.md。
- 具体收费、价格、运行环境与效果承诺:暂未提供。