本页面向创作者和运营,回答“我是不是被限流了”。本页只讲 For You 推荐流,不讲搜索和通知。本页不贴代码;每条结论附一个源码出处,技术细节见文末链接的技术页。
结论
源码里有一种机制,最接近民间说的 shadowban:账号标签。账号带上某些标签后,它的全部帖子不再推荐给非关注者;关注者和作者本人看不出异常。
这套机制有四个特点:
- 它是开源的。 判定逻辑在 可见性过滤(visibility filtering,下称 VF)里,规则清单写在源码中(
visibility-filtering/rules/levels.rs:318-361)。 - 它按标签判断,不按分数。 排序决定先后,VF 决定能不能出现。打分公式的 30 项全部是行为预测,不读安全标签(
xai-value-model/scoring.rs:79-218)。 - 标签多数由规则和模型自动打上,多数带过期时间。 常见是 7 天或 30 天。
- 用户能看到一部分标签。 Under the Hood 月度报告展示 12 种账号标签和 19 种帖子标签,但有资格门槛,开源默认关闭。
可见性过滤:选帖之后的最后一道检查
home-mixer 选出帖子后,对每条帖子询问 VF(home-mixer/candidate_pipeline/phoenix_candidate_pipeline.rs:485-487)。VF 读取标签、关系和账号状态,给出四种裁定之一(visibility-filtering/models/verdict.rs:20-29):
| 裁定 | 含义 | home-mixer 的动作 |
|---|---|---|
| ALLOW | 正常展示 | 保留 |
| NOTICE | 展示,并附一条受限说明 | 保留 |
| INTERSTITIAL | 展示,但加一层遮罩,用户点开才能看 | 保留 |
| DROP | 不展示 | 剔除 |
home-mixer 只剔除 Drop 一类(包括“此帖不可用”的占位和未完成检查的结果),带遮罩的帖子保留在流里(home-mixer/filters/vf_filter.rs:22-27)。
VF 对同一条帖子用两张规则清单。规则清单在源码里叫安全级别(safety level):
- 站内候选(你关注的人发的)用
TimelineHome。 - 站外候选、被引用帖和回复串的上文帖,用更严格的
TimelineHomeRecommendations(home-mixer/candidate_hydrators/vf_candidate_hydrator.rs:70-106)。
后者包含前者的全部规则,再多出一组“只对推荐生效”的规则。同一条帖子因此可以推给关注者,却不推给非关注者。
flowchart LR
C["选出的帖子"] --> Q{"查看者关注了作者?"}
Q -- "是:站内" --> L1["TimelineHome<br/>基础规则"]
Q -- "否:站外" --> L2["TimelineHomeRecommendations<br/>基础规则 + 推荐专属规则"]
L1 --> V["ALLOW / NOTICE / INTERSTITIAL / DROP"]
L2 --> V
V --> F["只剔除 DROP"]
只对站外推荐生效的账号标签:最接近 shadowban 的机制
它是什么
账号带上下列任一标签,它的帖子在非关注者的 For You 里全部被丢弃(visibility-filtering/rules/levels.rs:318-332):
- 垃圾与风险类:SpamHighRecall、Compromised(账号被盗)、ReadOnly(只读)、ImpersonationHighPrecision(冒充)、AbusiveHighRecall(辱骂)、DoNotAmplify(不放大)(
visibility-filtering/rules/levels.rs:65-72)。 - 成人内容类:NsfwHighRecall、NsfwHighPrecision、NsfwAvatarImage、NsfwBannerImage、NsfwNearPerfect,以及作者自标或审核员标记的 NSFW 账号状态(
visibility-filtering/rules/author_rules.rs:155-202)。
这些规则只在 TimelineHomeRecommendations 里。站内候选走 TimelineHome,不含这些规则,所以:
| 谁在看 | 看到什么 | 依据 |
|---|---|---|
| 作者本人 | 一切正常 | 规则的作用对象排除作者(visibility-filtering/rules/rule_spec/rule.rs:100-115) |
| 关注者 | For You 的站内部分照常出现;Following 时间线照常出现。NSFW 类账号的媒体可能加遮罩 | Following 时间线只用 TimelineHome(home-mixer/candidate_hydrators/vf_following_candidate_hydrator.rs:11) |
| 非关注者 | 推荐里看不到这个账号的任何帖子 | visibility-filtering/rules/levels.rs:318-332 |
作者和关注者都看不出异常。能察觉的信号只有“陌生人的曝光突然没了”。这正是民间对 shadowban 的描述。
它不是什么
- 不是排序降分。 它是整条丢弃,不是乘一个系数。打分公式不读这些标签(
xai-value-model/scoring.rs:79-218)。 - 不是永久的。 多数自动标签带过期时间,例如 7 天(
botmaker-rules/scarecrow/bot/PinnedLowQualityOrBadUrl.bot:36-41)。处置服务也打 30 天的标签,少数规则不设过期时间(abuse-enforcement-service/service-lib/rules/enforcement_user.yaml:5-189)。 - 不影响关注者的站内推荐。 这是它和封禁的区别。封禁和停用对所有非作者丢弃(
visibility-filtering/rules/author_rules.rs:7-19)。 - 不是只靠人工开关。 下文列出的规则和模型会自动打这些标签。
关注者也可能少看到的情况(依代码推断)
两种情况下,关注者的 For You 也会少一部分帖子:
- 被引用帖和上文帖一律按推荐级别检查(
home-mixer/candidate_hydrators/vf_candidate_hydrator.rs:76-81)。上文帖或被引用帖被丢弃时,引用它或回复它的帖子连带出局(home-mixer/candidate_hydrators/vf_candidate_hydrator.rs:140-170)。 - 因此,账号带 SpamHighRecall 等“对所有非作者生效”的标签时,它在自己回复串里的回复,可能连关注者也看不到。DoNotAmplify 和 AbusiveHighRecall 只对非关注者生效,不触发这种情况(
visibility-filtering/rules/author_rules.rs:204-244)。同一批里上文帖本身也是站内候选时,站内结果覆盖站外结果(home-mixer/candidate_hydrators/vf_candidate_hydrator.rs:108-110)。
其他会让帖子消失的规则
对所有非作者丢弃的帖子标签
下列帖子标签在站内和站外都丢弃,关注者也看不到(visibility-filtering/rules/levels.rs:298-316):
- SPAM(垃圾)、PDNA、BOUNCE(待审核或待作者删除)、FOR_EMERGENCY_USE_ONLY(应急)(
visibility-filtering/rules/tweet_rules.rs:28-61)。 - 4 类 FOSNR 标签:仇恨行为、暴力言论、辱骂、公民诚信(
visibility-filtering/rules/tweet_rules.rs:141-167)。FOSNR 一般解读为“言论自由,不保证触达”,源码未给出全称。Under the Hood 对它的说明是“可发现性仅限作者主页”(under-the-hood/strato/lib/underTheHoodLabels.strato:75-98)。
只在推荐里丢弃的帖子标签
下列帖子标签只在站外推荐里丢弃,关注者仍能在站内看到(visibility-filtering/rules/levels.rs:147-152、visibility-filtering/rules/levels.rs:348-359):
- SPAM_HIGH_RECALL、DO_NOT_AMPLIFY、MALICIOUS_URL(恶意链接)(
visibility-filtering/rules/tweet_rules.rs:930-949)。 - FOSNR_ABUSE_INSULTS(侮辱)(
visibility-filtering/rules/tweet_rules.rs:169-174)。 - 成人与血腥内容:NSFW_HIGH_RECALL、NSFW_HIGH_PRECISION、NSFW_CARD_IMAGE、GORE_AND_VIOLENCE_HIGH_PRECISION 等(
visibility-filtering/rules/levels.rs:349-357)。 - 含 DMCA 版权投诉媒体的帖子(
visibility-filtering/rules/tweet_rules.rs:884-889)。
遮罩:不丢弃,但要点开才能看
查看者没有打开“显示敏感媒体”设置时,带 NSFW_HIGH_PRECISION、GORE_AND_VIOLENCE_HIGH_PRECISION 等标签的帖子加遮罩(visibility-filtering/rules/tweet_rules.rs:454-476、visibility-filtering/rules/levels.rs:133-140)。遮罩规则在站内和站外都生效。站外推荐里,这些帖子会先被上一节的丢弃规则拿掉。
法律下架:按国家生效
法律下架只在指定国家生效(visibility-filtering/models/tweet.rs:74-139):
- 帖子的下架原因 = 帖子自身原因 + 作者账号的原因(
takedowns/tweet-entity-service/TakedownReasonsTransform.scala:52-69)。 - 请求国家等于下架国家,或下架是全球范围,VF 丢弃帖子;作者本人不受影响(
visibility-filtering/rules/tweet_rules.rs:244-256)。 - 账号级的 DMCA 下架不执行,不会波及该账号的全部帖子(
takedowns/gizmoduck/RedactUnenforcedTakedownsFilter.scala:64-81)。
另有一条按国家的推荐规则:带 BRAZIL_ELECTION_LEGAL 标签的帖子,在巴西不进推荐(visibility-filtering/rules/tweet_rules.rs:951-959)。上游 10-26 删除的是 home-mixer 的同名过滤器,这条 VF 规则仍在。
标签从哪里来:自动打标签的例子
标签由后台的标签路径写入,不在请求时计算。下表是源码里可核对的例子。阈值为开源默认值。
| 触发条件 | 结果 | 出处 |
|---|---|---|
| 新置顶的帖子含被判为 BAD 或 LOW_QUALITY 的链接 | 账号标签 SpamHighRecall,7 天 | botmaker-rules/scarecrow/bot/PinnedLowQualityOrBadUrl.bot:1-42 |
| 最近 5 条帖子里至少 3 条带 NSFW_HIGH_PRECISION(60 天内) | 账号标签 NsfwHighPrecision,7 天 | safety-label-user-agg/postToUserLabelRules.strato:395-426 |
| 一天内至少 3 条帖子的媒体被判为成人内容 | 尝试打 NSFW 类账号标签 | botmaker-rules/scarecrow/derived-feature/ApplyNsfwUserLabel.df:15-38 |
评分事件带 llm_slop_user(模型判定的低质量 AI 生成账号),且账号尚无 SpamHighRecall |
账号标签 SpamHighRecall,7 天 | abuse-enforcement-service/service-lib/rules/enforcement_user.yaml:118-123 |
| 帖子链接的信誉变为 UNSAFE | 帖子标签 DO_NOT_AMPLIFY、MALICIOUS_URL 等 | botmaker-rules/scarecrow/bot/rtf_tweets_on_unsafe_verdict.bot:1-35 |
来源分三类,详见各技术页:
- 打标签规则:scarecrow 在事件发生时执行 botmaker 规则。
- 处置与标签聚合:处置服务读模型分数后打标签;另一个任务按帖子标签累计给账号打标签。
- 账号级信号:agatha、bdsm、user-cred-v2 给账号打分,供上面两类读取。
有些标签不影响 For You
部分自动标签只在通知里生效,不进入 For You 的两个安全级别:
- 账号标签 AGATHA_SPAM_TOP_USER 等 5 种(
visibility-filtering/rules/levels.rs:89-100)。 - 帖子标签 RISKY_HIGH_VIZ_REPLY(高曝光风险回复)(
visibility-filtering/rules/levels.rs:217)。
豁免:大号与政府账号
多数公开的打标签规则跳过三类账号(botmaker-rules/scarecrow/derived-feature/IsHighPageRankUser.df:3-18):
- 高 PageRank 账号:user-cred 分数不低于 54。user-cred 是在关注图上跑 PageRank 得到的 0–100 账号分。账号没有分数时,改用粉丝数大于 25000 判断。
- 政府认证(灰标)账号(
botmaker-rules/scarecrow/derived-feature/IsUserGrayVerified.df:1-11)。 - 临时跳过名单里的账号。
豁免不是全局的。“5 条里 3 条成人内容”这条聚合规则不豁免高 PageRank 账号(safety-label-user-agg/postToUserLabelRules.strato:395-426)。处置服务也按粉丝数和 user-cred 分数跳过账号,但开源配置里的阈值是占位值 12.34(abuse-enforcement-service/service-lib/rules/enforcement_user.yaml:19-33)。
开源阈值里的占位值
以下数值是开源版的占位值,线上值源码未包含:
- 处置服务的粉丝数与 user-cred 跳过阈值:12.34(
abuse-enforcement-service/service-lib/rules/enforcement_user.yaml:19-33)。 - 处置服务写死的粉丝上限检查:12345.67(
abuse-enforcement-service/service-lib/src/safety_checks.rs:158-175)。 - BDSM 行为模型的执法阈值:9.99,最少动作数 999999(
bdsm/README.md:104-115)。
部分打标签规则没有公开,理由是降低被规避的风险(README.md:447)。
Under the Hood:你能看到什么,看不到什么
Under the Hood 是按月生成的标签透明度报告。
能看到的:
- 白名单内的 19 种帖子标签和 12 种账号标签,每种附“含义”和“对可见性的影响”(
under-the-hood/strato/lib/underTheHoodLabels.strato:3-184)。 - 帖子标签按“带标签的帖子数 / 当月帖子数”展示;账号标签按“生效天数 / 当月天数”展示(
under-the-hood/strato/columns/underTheHoodReport.User.strato:369-461)。 - 法律下架记录和涉及的国家。这部分有单独开关,开源默认关闭(
under-the-hood/strato/lib/params.strato:21-22)。
看不到的:
- 不在白名单的标签:只影响通知的账号标签、RISKY_HIGH_VIZ_REPLY、SOFT_NSFW、作者自标的 NSFW 状态等(
under-the-hood/strato/lib/underTheHoodLabels.strato:3-184)。 - 新号和低频账号的报告:账号要注册满 365 天,且报告月内至少发 10 条帖子(
under-the-hood/strato/columns/underTheHoodReport.User.strato:18-19)。被封禁的账号查不到报告。 - 当月的情况:报告只覆盖上一个完整的 UTC 月,月末后至少 10 天才出(
under-the-hood/strato/columns/underTheHoodReport.User.strato:20)。
整个报告由开关控制,开源默认关闭;线上开关值源码未包含(under-the-hood/strato/lib/params.strato:15-16)。
民间说法与源码对照
| 民间说法 | 源码判定 | 依据 |
|---|---|---|
| 平台给账号挂了限流标记 | 有对应机制。 账号标签让全部帖子退出非关注者的推荐 | visibility-filtering/rules/levels.rs:318-332 |
| 被限流后关注者也看不到 | 多数情况不对。 关注者的站内推荐和 Following 时间线不受这组规则影响;回复串和引用帖是例外 | home-mixer/candidate_hydrators/vf_candidate_hydrator.rs:70-106 |
| 限流是永久的 | 不对。 自动标签多数 7 天或 30 天过期 | abuse-enforcement-service/service-lib/rules/enforcement_user.yaml:5-189 |
| 限流就是排序分被乘了一个系数 | 不对。 打分公式不读标签;标签的作用是整条丢弃 | xai-value-model/scoring.rs:79-218 |
| 站外降权是平台在惩罚我 | 不对。 站外系数 0.75 对所有站外帖相同;关注者发的回复和转发也乘 0.75 | vm-ranker/params.rs:193-222 |
| 同一作者后面几条没量 = 被盯上了 | 不对。 作者多样性衰减只在单次请求内生效,衰减 0.5、下限 0.25 | vm-ranker/params.rs:175-192 |
| 帖子推不出去 = 被限流 | 多半不对。 站外帖要先被候选源取到;没被取到,后面的打分和检查都不会发生 | home-mixer/candidate_pipeline/phoenix_candidate_pipeline.rs:380-390 |
怎么判断自己是否带了账号标签
源码只支持以下判断:
- 看 Under the Hood 报告。前提:账号满 365 天、上月至少 10 条帖子、该功能对你开放。
- 对比两类曝光:关注者曝光正常、非关注者曝光同时断崖下跌,符合账号标签的表现。这是推测,源码不提供直接的查询接口。
- 回看触发条件:置顶帖是否含低质量链接、近期帖子是否多次被判成人内容。
出处
| 结论 | 技术页 | 主要源码 |
|---|---|---|
| 四种裁定 | 可见性过滤(Visibility Filtering) | visibility-filtering/models/verdict.rs:20-29 |
| 只剔除 Drop 类,遮罩保留 | 可见性过滤(Visibility Filtering) | home-mixer/filters/vf_filter.rs:22-27 |
| 站内与站外用两个安全级别 | 可见性过滤(Visibility Filtering) | home-mixer/candidate_hydrators/vf_candidate_hydrator.rs:70-106 |
| 只对站外生效的账号标签 | 可见性过滤(Visibility Filtering) | visibility-filtering/rules/levels.rs:65-72 |
| 上文帖、被引用帖被丢弃时连带出局 | 可见性过滤(Visibility Filtering) | home-mixer/candidate_hydrators/vf_candidate_hydrator.rs:140-170 |
| 置顶坏链接 → SpamHighRecall 7 天 | 打标签规则(scarecrow 与 botmaker) | botmaker-rules/scarecrow/bot/PinnedLowQualityOrBadUrl.bot:1-42 |
| 5 条里 3 条成人内容 → 账号标签 7 天 | 处置与标签聚合 | safety-label-user-agg/postToUserLabelRules.strato:395-426 |
| llm_slop_user → SpamHighRecall 7 天 | 处置与标签聚合 | abuse-enforcement-service/service-lib/rules/enforcement_user.yaml:118-123 |
| 高 PageRank 与灰标豁免 | 账号级信号(agatha、bdsm、user-cred-v2) | botmaker-rules/scarecrow/derived-feature/IsHighPageRankUser.df:3-18 |
| 法律下架按国家 | 可见性过滤(Visibility Filtering) | visibility-filtering/rules/tweet_rules.rs:244-256 |
| Under the Hood 资格与白名单 | Under the Hood 透明度报告 | under-the-hood/strato/columns/underTheHoodReport.User.strato:18-19 |
相关页面
- 可见性过滤(Visibility Filtering) —— 全部规则清单与执行顺序
- 打标签规则(scarecrow 与 botmaker) —— 事件驱动的自动打标签
- 处置与标签聚合 —— 处置服务、申诉保护期、按帖子给账号打标签
- 账号级信号(agatha、bdsm、user-cred-v2) —— 账号分数与豁免阈值
- Under the Hood 透明度报告 —— 报告的资格、口径与白名单
- 打分与排序 —— 站外降权与作者多样性
- 推荐系统工作原理 —— For You 的完整流程
- 运营迷思 vs 源码真相 —— 其他流行说法的对照
- 发帖指南 —— 从机制反推的发帖建议