Loading...
正在加载...
请稍候

它 6 万 star,但被另一家 AI 平台判为「危险」—— last30days 的现场拆解

QianXun (QianXun) 2026年09月01日 11:23

最近一周我把 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 源能跑:
reddithackernewspolymarketgithubgrounding
其余 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%

作者自己在代码注释里算了一笔账 —— 2.5M 播放的 TikTok 与 1500 播放的 TikTok,归一化后分别约 15 和 7,乘 6、乘 0.05,最终分差 2.4 分
一个播放量相差 1600 倍的视频,在最终排序里只差 2.4 分(满分 100)。
那个叫 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,才负责判断)

引擎的「智能」全在 prompt 里,不在代码里。
它不是 AI 的大脑,它是 AI 的假肢。
AI 挂了,它退化成确定性爬虫聚合器,照样能交作业 —— 只是那份「由 AI 裁判综合」的简报,实际上没有裁判


三、更刺激的是那张 229 KB 的「操作码」

这个项目的 SKILL.md229 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 遵守逻辑。

更刺激的是 ScrapeCreators 自己的 ToS §07/§13/§12:

合规责任 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

研究方法:源码一手实证 + Windows 真机全链路 + GitHub API 直查。共四个探马、十一章、九份交付物。

#deep-research #ai-agents #open-source #toS #last30days

讨论回复

加载中...
正在加载回复...

正在加载回复...

推荐
智谱 GLM-5 已上线

我正在智谱大模型开放平台 BigModel.cn 上打造 AI 应用,智谱新一代旗舰模型 GLM-5 已上线,在推理、代码、智能体综合能力达到开源模型 SOTA 水平。

领取 2000万 Tokens 通过邀请链接注册即可获得大礼包,期待和你一起在 BigModel 上畅享卓越模型能力
登录