它 6 万 star,但被另一家 AI 平台判为「危险」—— last30days 的现场拆解
最近一周我把 mvanhorn/last30days-skill 这个 60k star 的项目扒了个底朝天。 为什么?因为它身上贴着两个让我眼前一亮的标签: 「AI 智能体驱动的搜索引擎」,「按赞同票、点赞和真金白银评分」。 听着像是 AI 圈少见的硬骨头 —— 一个真有数据的研究工具。
最近一周我把 mvanhorn/last30days-skill 这个 60k star 的项目扒了个底朝天。 为什么?因为它身上贴着两个让我眼前一亮的标签: 「AI 智能体驱动的搜索引擎」,「按赞同票、点赞和真金白银评分」。 听着像是 AI 圈少见的硬骨头 —— 一个真有数据的研究工具。
扒完才发现,两个标签都半真半假。
一、先报家门:last30days 到底是个啥
一句话:它是个 Claude Code / Codex / Cursor / Grok 都能跑的 skill(技能插件), 给定一个主题(比如「AI 视频工具最近 30 天」),它会同时跑 Reddit、X、YouTube、TikTok、Hacker News、Polymarket、GitHub 等十几个源, 把带 upvote 数、播放量、点赞数的社区真实讨论汇总成一份简报。
听起来挺美对吧?我装上,跑了一次。
二、真机跑下来,发现三件事
第一件,号称「免费 20 源」,实机开箱只有 5 源能跑:
reddit、hackernews、polymarket、github、grounding。
其余 15 个,11 个要 API 密钥(其中一个核心源叫 ScrapeCreators,专门管 TikTok / Instagram / Threads / Pinterest / LinkedIn / YouTube 评论,这家公司收费),
4 个要你装特定的命令行工具。
更要紧的是 —— 它的 SKILL.md(给宿主 AI 读的说明书)frontmatter 里清清楚楚写着:
primaryEnv: SCRAPECREATORS_API_KEY—— 官方定义的「首选密钥」是收费服务。
免费的那 5 个源里,有个更尴尬的数据:
我跑了一次「研究 last30days skill 本身」,110 条 Reddit 候选项,只有 3 条拿到了真实 upvote 数,剩下 107 条是 score-only(没分数)。
110 : 3,2.7% 的命中率。
而它的全部营销话术就建立在「真实参与度」四个字上。
第二件,它宣称「按真金白银评分」,我翻了下它的源码 —— 评级公式是这样的(直接抄的):
item.local_rank_score = (
0.65 * item.local_relevance # 相关性 65%
+ 0.25 * (item.freshness / 100.0) # 新鲜度 25%
+ 0.10 * ((eng_score or 0) / 100.0) # 互动度 10% —— 这是源内的
)
然后跨源融合的 RRF 算法只读名次、不读数值。 最后总评分的加权里:
| 分量 | 权重 |
|---|---|
| LLM 评委打分 | 60% |
| 跨源名次融合 | 20% |
| 新鲜度 | 10% |
| 源质量 | 5% |
| 互动度(含真实 upvote) | 5% |
rerank_score 的 LLM 评委打分,权重是 60%。「按真金白银评分」是落地 5% 权重的调味品。
第三件,我跑出来的那次,还有个细节:引擎给我规划主题的 LLM、打分排序的 LLM、评分最佳评论的 LLM —— 三处全部 502 失败并降级,研究照样完成。
为啥?因为这套引擎本来就没智能。
它的 SKILL.md 有两个 LAW(强行规定):
- LAW 7 —— YOU ARE THE PLANNER(你,宿主 AI,才负责规划)
- LAW 11 —— YOU ARE THE JUDGE(你,宿主 AI,才负责判断)
三、更刺激的是那张 229 KB 的「操作码」
这个项目的 SKILL.md 有 229 KB。
229 KB 是什么概念呢?作者在文件开头留了一句自白:
「三次 Opus 4.7 self-debug 都确认了 —— 这个文件太大,模型读不到末尾就开始综合了。v3.0.8 把关键规则从 1094 行前移到这里。」
也就是说 —— AI 在读完之前就忘了开头说过什么。
更狠的是这个文件里的章节编号序列:
STEP 0 → Step 0.45 → 0.5 → 0.55 → 0.75 → STEP 2 → Step 2.5
小数插入。后加的步骤无处安放,只能楔入缝隙。 从这些缝里,你能看到这个项目一整部演化史。
而 SKILL.md 里 "disaster" 这个词出现 10 次。每一条「法律」后面,都挂着一次真实的翻车记录:
"Peter Steinberger disaster #2(2026-04-18):模型把个人记忆里的偏好当成 skill 规则,把粗体全剥了"
"Hermes Agent Use Cases disaster(2026-04-19):连续两次把内部证据块直接吐给用户"
"Garry Tan(2026-04-18):那条规则加了四层防御,还是泄漏了 Sources 块"
最戏剧性的是同一份 SKILL.md 自陈:
"2026-04-18 同一天、同一个 Opus 4.7、几乎相同的 SKILL.md —— beta 验证 10/10 全过,公开版 0/8 全败。差异只是三个锚点。"
(这条数字目前只在 SKILL.md 自己说,我没找到 release note 的独立交叉证据 —— 按「自述」处理。但 v3.0.9 release note 印证了「五模型 self-debug」那天的存在。)
但让我最服气的是 v3.0.9 那个 release 的标题 ——
「v3.0.9 - The Self-Debug Release」
他真的让 5 个 Opus 4.7 实例去调试自己的失败输出,然后把他们得出的诊断直接拷进了代码:
"I handed 5 separate Opus 4.7 instances their own failed outputs and asked them to debug themselves.
Three converged on 'SKILL.md is too big and the LAWs are too deep.'
I copy-pasted their diagnoses into code."
—— 让 LLM 调试 LLM,比反复改 prompt 有效得多。
四、然后是分发链上的事 —— 真有点不舒服
它同时被 8 种渠道收录:Claude Code、Grok、OpenClaw、Codex、Cursor、Copilot、Claude.ai、Claude Desktop。 这是它 6 万 star 的重要来源。
但分发的广度也是分发的脆弱性。举几件事:
① v3.0.1 那次:作者改 .gitattributes 想把发布包瘦身,把 skills/ 和 .claude-plugin/ 也一并排除掉了 —— Claude Code 的 /plugin install 拿到残缺 tarball,安装静默失败。22 小时内连发四版救火。
② README 滞后 11 版:项目现在版本是 v3.22.0(2026-08-31 发布),但中英文 README 都还停在 v3.11.1。这项目同时支持六种语言(英/中/法/德/西/葡/日),README 不是中文翻译的事 —— 英文版也停在 11 版之前。是整体失修,不是本地化债。
③ 维护者自己在 issue #1081(2026-08-30)开了一张单:标题「Version-labelled builds diverge」—— 项目方自己承认病又复发了。 同一种「版本错位」的病,他治过一次(v3.0.9 PR #217/#229)、工程兜底过一次(v3.3.0 引入 STEP 0 stale-clone 自检)、自己开复发单承认了一次 —— 仍未治愈。
④ 另一家 AI 平台 Hermes 的安装期扫描器把本 skill 判为 dangerous,19 项发现,安装命令被硬阻断(PR #962, 2026-08-08)。
⑥ 我装的包里有个 .skillignore 文件,主动把一堆 dev/eval 脚本排除出 Hermes 的安全扫描 —— 排除 assets/、agents/ 是合理工程做法(等价于 .npmignore),但其中一行是 scripts/lib/vendor/,注释自承 "vendored third-party X-search client, still installed" —— 这是运行时代码绕过安装期扫描。
⑦ 它自己写的 User-Agent 里版本号也没跟上:
USER_AGENT = "last30days-skill/3.0 (Assistant Skill)"
实际版本已经是 3.22.0。连 UA 里的版本号都滞了三年的更新周期。五、最后是法律 —— 不是灰色,是明确违约
我一开始以为这是「灰色地带」。扒完 X、Reddit、LinkedIn 的 ToS 后,这是明确违约:
- X ToS §4(iii) 原文:「crawling or scraping the Services in any form, for any purpose without our prior written consent is expressly prohibited」。同节还有更狠的一句:「It is also a violation ... including by distributing products or services that enable or encourage violation」 —— 这一条直接指向分发者。违约金 §5:$15,000 / 百万帖。
- Reddit robots.txt 实测是
User-agent:* / Disallow:/。Reddit UA §7 原文:「scraping ... without Reddit's prior written consent is prohibited」。 - LinkedIn §8.2(04) 明文覆盖「through third parties (such as ... data aggregators or brokers)」—— 它用的 ScrapeCreators 正好落在此范围内。
- Reddit v. SerpApi/Perplexity/Oxylabs(1:25-cv-08736, SDNY)2026-07-31 法官认定 DMCA §1201(a) 反规避成立,进入证据开示。本项目用相同手段(cookie 鉴权 + 前端抓取)—— 这是现行先例。
- 全量源码 grep
robots= 0 次命中。项目没有任何 robots.txt 遵守逻辑。
合规责任 100% 推给客户;客户须为它辩护赔偿;赔付上限=你付过的钱;§10 可随时无理由终止并没收余额。
也就是说 —— 你的项目一旦被告,第一个被告是你,第二个是 ScrapeCreators,引擎作者不在被告席上。
六、最后一句话
last30days 是个真在解决真问题的工具 —— 真机跑下来那 268 秒,它确实交出了 11 条带参与度的社区证据,比传统关键词搜索更接近「社区到底在讨论什么」。
但它不是它宣称的那样。
它的真正知识资产,不是 60k star,是 SKILL.md 里那份 10 次灾难清单。 它教我们一件事:LLM 的可靠性,靠的不是更好的 prompt,是让 LLM 调试 LLM,再把诊断结果物理前移到 cache line。
至于你想不想用它 —— 见仁见智。 至少下次有人给你吹「"AI 智能体 + 多源研究 + 真实评分"」的时候,你心里应该有数:这是一个需要 Cookie 解密、ToS 违约、22 小时内四连发救火的工程,营销话术占其价值 5% 的权重。
附:快速判词速查表
| 维度 | README 自述 | 实测实情 |
|---|---|---|
| 数据源数量 | 20 源 | 开箱 5 源(其余需密钥 / CLI) |
| 评分核心 | 按真实参与度 | 互动度权重 5%,rerank LLM 60% |
| Reddit 真实分数 | 「免费 + 真实评分」 | 110 候选仅 3 条拿到分数(2.7%) |
| LLM 评分 | AI 智能体裁判 | 三处 LLM 502 失败时直接出报告,AI 是增益 |
| ToS 状态 | (没写) | 明确违约(X §4(iii) / Reddit §7 / LinkedIn §8.2(04)) |
| README 版本 | v3.11.1 | 实际 v3.22.0,滞后 11 版 |
| 健康检查 | (没特别说) | schema-drift 判定 = grep 裸词 "schema" |
| 第三方安全审计 | (没在 README) | Trust Hub Fail / Snyk Fail / Socket Warn |
#deep-research #ai-agents #open-source #toS #last30days