自动化检测与追踪GitHub上的虚假互动
一个 JS Labs 项目 —
属于 AI Slop Intelligence 倡议的一部分。
每天运行。给每个可疑账户打分。检测协调性的机器人活动。
直接在受影响的仓库上提交问题,以便维护者采取行动。
支持此项目
BTC 3QjWqhQbHdHgWeYHTpmorP8Pe1wgDjJy54
ETH 0x5851e6145F4773d1585b8686095FB16E368a4dA1
ZEC t1KSR5YkNPbjqRSCoLKo5AddFWdm9Kzxh1B
GitHub 星标是一种信任信号。开发者据此决定评估什么、依赖什么、推荐什么。那个信号正在被系统性地破坏。
在 2024-2026 年的人工智能繁荣期间,出现了一个机器人农场产业,为低质量、通常恶意的仓库制造可信度。一个在 48 小时内获得 800 个星标的项目,对于浏览搜索结果的开发者来说,看起来是合法的。这就是关键所在。虚假互动的目标不是星标本体,而是这些星标所产生的社会认同,以及这种社会认同所影响的下游决策。
这种模式是可识别的。同一周创建的账户,没有个人简介,没有关注者,没有原创仓库,在两小时内为相同的 15 个仓库加星标。不是一个活动,而是每天同时运行数十个,涉及数千个账户。数据显示在某些仓库中,185 个互动者中有 185 个是机器人。百分之百的虚假率。整个热门排名建立在虚无之上。
phantomstars 的构建是因为这个问题是可处理的。GitHub 公共 API 中的信噪比目前仍然足够高,以至于协调性活动留下了清晰的指纹。该项目读取这些指纹,发布原始数据,并直接通知受影响的仓库维护者。
这是 JS Labs 更广泛的 AI Slop Intelligence 工作的一部分,正在进行的研究,旨在探究低质量 AI 生成内容淹没开发者生态系统的机制和可测量影响。虚假互动不是一个外围问题。它是让劣质内容出现在真正用户面前的传播机制。
phantomstars 每天运行一个 GitHub Actions 作业,该作业:
r/osinttools 和 r/coolgithubprojects 板块最近 2 天的帖子中提取 GitHub 仓库链接,作为额外候选仓库无服务器。无数据库。无基础设施账单。
会。 当仓库的虚假率超过 40% 或检测到协调性活动时,phantomstars 会在该仓库上直接打开一个 issue。该 issue 包含完整的可疑账户表、活动成员身份、综合分数以及账户创建日期:维护者进行调查并向 GitHub 报告所需的一切信息。
如果目标仓库禁用了 issue,则通知会静默跳过,并记录在扫描日志中。
可以。
owner/repo 格式提交仓库,并运行定向扫描。为什么要分开:
可以。如果你的账户出现在 data/suspects.jsonl 中,并且你认为分类有误,请使用提供的模板提交一个误报 issue。报告会在添加到白名单之前进行人工审查。白名单存储在 data/allowlist.txt 中;列在其中的账户将从所有未来的扫描和可疑账户账本中排除。
活动 ID(例如 c-a3f9b2e1)是一个 确定性 8 字符十六进制指纹,派生自该活动中成员登录名的排序集合的 SHA-256 哈希。同一组账户在不同的扫描运行中会产生相同的活动 ID,从而实现纵向追踪。它不是仓库名称、用户名或任何外部标识符。
稳定性: 只要活动的成员集合不变,该 ID 就是稳定的。如果在两次扫描之间添加或暂停了机器人,ID 就会改变,因为成员身份发生了变化。这是预期行为,反映了机器人农场组成的真实漂移。
会。 每个账户的创建日期都通过 GitHub GraphQL API(createdAt 字段)获取,并作为 account_created_at 存储在每条可疑记录中。它也是账户年龄评分的主要输入,是虚假账户最强的单一信号。在互动前 2 天内创建的账户仅凭年龄就获得 1.0 分。
单个分数具有显著的误报率。一个资料稀疏的新开发者可能合理获得 0.75+ 分。该工具通过在提交 issue 之前要求活动级证据来解决这个问题;单个可疑账户是不够的。一个协调的集群,包含 40 多个账户,全部在同一周创建,全部得分 0.75+,全部在 90 分钟内互动,则是另一回事。这才是置信度变得可行的时候。
数据始终是概率性的。issue 正文明确说明了这一点。目标是给维护者提供信号和原始证据,让他们自己做出判断。
| 日期 | 已扫描 | 可能虚假 | 可疑 | 活动 | 新增虚假 (24h) |
|---|---|---|---|---|---|
| 2026-06-16 | 1846 | 221 | 1625 | 56 | 190 |
| 2026-06-15 | 2274 | 418 | 1856 | 61 | 397 |
| 2026-06-14 | 1953 | 355 | 1598 | 44 | 310 |
| 2026-06-13 | 2012 | 301 | 1711 | 47 | 251 |
| 2026-06-12 | 2298 | 336 | 1962 | 57 | 300 |
| 2026-06-11 | 1957 | 385 | 1572 | 42 | 356 |
| 2026-06-10 | 2043 | 687 | 1356 | 50 | 665 |
| 2026-06-09 | 2199 | 690 | 1509 | 44 | 632 |
| 2026-06-08 | 1913 | 450 | 1463 | 50 | 424 |
| 2026-06-07 | 1797 | 658 | 1139 | 30 | 618 |
| 2026-06-06 | 2625 | 712 | 1913 | 40 | 620 |
| 2026-06-05 | 2403 | 673 | 1730 | 53 | 617 |
| 2026-06-04 | 2237 | 441 | 1796 | 41 | 367 |
| 2026-06-03 | 2331 | 488 | 1843 | 53 | 431 |
| 2026-06-02 | 2795 | 773 | 2022 | 37 | 616 |
| 2026-06-01 | 2490 | 533 | 1957 | 39 | 355 |
| 2026-05-31 | 2302 | 458 | 1844 | 32 | 280 |
| 2026-05-30 | 2576 | 530 | 2046 | 20 | 356 |
| 2026-05-29 | 2838 | 733 | 2105 | 42 | 369 |
| 2026-05-28 | 2748 | 694 | 2054 | 39 | 396 |
| 2026-05-27 | 2193 | 560 | 1633 | 32 | 491 |
| 2026-05-26 | 1930 | 236 | 1694 | 43 | 190 |
| 2026-05-25 | 1526 | 214 | 1312 | 32 | 158 |
| 2026-05-24 | 2170 | 358 | 1812 | 39 | 265 |
| 2026-05-23 | 2548 | 426 | 2122 | 43 | 317 |
| 2026-05-22 | 2318 | 340 | 1978 | 47 | 247 |
| 2026-05-21 | 1981 | 348 | 1633 | 25 | 277 |
| 2026-05-20 | 1613 | 268 | 1345 | 23 | 163 |
| 2026-05-19 | 5463 | 630 | 4121 | 67 | 442 |
| 2026-05-18 | 8838 | 670 | 7950 | 128 | 340 |