---
title: "限流与 shadowban：源码里的可见性机制"
description: "可见性过滤的四种裁定、只对站外推荐生效的账号标签、自动打标签与豁免、Under the Hood 能看到什么，以及民间 shadowban 说法与源码的对照"
---

> Documentation Index
> Fetch the complete documentation index at: https://x-algorithm.vergego.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# 限流与 shadowban：源码里的可见性机制

> 本页面向创作者和运营，回答“我是不是被限流了”。本页只讲 For You 推荐流，不讲搜索和通知。本页不贴代码；每条结论附一个源码出处，技术细节见文末链接的技术页。

## 结论

源码里有一种机制，最接近民间说的 shadowban：**账号标签**。账号带上某些标签后，它的全部帖子不再推荐给非关注者；关注者和作者本人看不出异常。

这套机制有四个特点：

1. **它是开源的。** 判定逻辑在 [可见性过滤](https://x-algorithm.vergego.ai/concepts/visibility-filtering/)（visibility filtering，下称 VF）里，规则清单写在源码中（`visibility-filtering/rules/levels.rs:318-361`）。
2. **它按标签判断，不按分数。** 排序决定先后，VF 决定能不能出现。打分公式的 30 项全部是行为预测，不读安全标签（`xai-value-model/scoring.rs:79-218`）。
3. **标签多数由规则和模型自动打上，多数带过期时间。** 常见是 7 天或 30 天。
4. **用户能看到一部分标签。** 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`）。

后者包含前者的全部规则，再多出一组“只对推荐生效”的规则。同一条帖子因此可以推给关注者，却不推给非关注者。

```mermaid
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 也会少一部分帖子：

1. **被引用帖和上文帖一律按推荐级别检查**（`home-mixer/candidate_hydrators/vf_candidate_hydrator.rs:76-81`）。上文帖或被引用帖被丢弃时，引用它或回复它的帖子连带出局（`home-mixer/candidate_hydrators/vf_candidate_hydrator.rs:140-170`）。
2. 因此，账号带 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`）：

1. 帖子的下架原因 = 帖子自身原因 + 作者账号的原因（`takedowns/tweet-entity-service/TakedownReasonsTransform.scala:52-69`）。
2. 请求国家等于下架国家，或下架是全球范围，VF 丢弃帖子；作者本人不受影响（`visibility-filtering/rules/tweet_rules.rs:244-256`）。
3. 账号级的 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` |

来源分三类，详见各技术页：

- [打标签规则](https://x-algorithm.vergego.ai/concepts/labeling-rules/)：scarecrow 在事件发生时执行 botmaker 规则。
- [处置与标签聚合](https://x-algorithm.vergego.ai/concepts/enforcement/)：处置服务读模型分数后打标签；另一个任务按帖子标签累计给账号打标签。
- [账号级信号](https://x-algorithm.vergego.ai/concepts/account-signals/)：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`）：

1. **高 PageRank 账号**：user-cred 分数不低于 54。user-cred 是在关注图上跑 PageRank 得到的 0–100 账号分。账号没有分数时，改用粉丝数大于 25000 判断。
2. **政府认证（灰标）账号**（`botmaker-rules/scarecrow/derived-feature/IsUserGrayVerified.df:1-11`）。
3. 临时跳过名单里的账号。

豁免不是全局的。“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](https://x-algorithm.vergego.ai/concepts/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` |

## 怎么判断自己是否带了账号标签

源码只支持以下判断：

1. 看 Under the Hood 报告。前提：账号满 365 天、上月至少 10 条帖子、该功能对你开放。
2. 对比两类曝光：关注者曝光正常、非关注者曝光同时断崖下跌，符合账号标签的表现。这是推测，源码不提供直接的查询接口。
3. 回看触发条件：置顶帖是否含低质量链接、近期帖子是否多次被判成人内容。

## 出处

| 结论 | 技术页 | 主要源码 |
|------|--------|----------|
| 四种裁定 | [可见性过滤（Visibility Filtering）](https://x-algorithm.vergego.ai/concepts/visibility-filtering/) | `visibility-filtering/models/verdict.rs:20-29` |
| 只剔除 Drop 类，遮罩保留 | [可见性过滤（Visibility Filtering）](https://x-algorithm.vergego.ai/concepts/visibility-filtering/) | `home-mixer/filters/vf_filter.rs:22-27` |
| 站内与站外用两个安全级别 | [可见性过滤（Visibility Filtering）](https://x-algorithm.vergego.ai/concepts/visibility-filtering/) | `home-mixer/candidate_hydrators/vf_candidate_hydrator.rs:70-106` |
| 只对站外生效的账号标签 | [可见性过滤（Visibility Filtering）](https://x-algorithm.vergego.ai/concepts/visibility-filtering/) | `visibility-filtering/rules/levels.rs:65-72` |
| 上文帖、被引用帖被丢弃时连带出局 | [可见性过滤（Visibility Filtering）](https://x-algorithm.vergego.ai/concepts/visibility-filtering/) | `home-mixer/candidate_hydrators/vf_candidate_hydrator.rs:140-170` |
| 置顶坏链接 → SpamHighRecall 7 天 | [打标签规则（scarecrow 与 botmaker）](https://x-algorithm.vergego.ai/concepts/labeling-rules/) | `botmaker-rules/scarecrow/bot/PinnedLowQualityOrBadUrl.bot:1-42` |
| 5 条里 3 条成人内容 → 账号标签 7 天 | [处置与标签聚合](https://x-algorithm.vergego.ai/concepts/enforcement/) | `safety-label-user-agg/postToUserLabelRules.strato:395-426` |
| llm_slop_user → SpamHighRecall 7 天 | [处置与标签聚合](https://x-algorithm.vergego.ai/concepts/enforcement/) | `abuse-enforcement-service/service-lib/rules/enforcement_user.yaml:118-123` |
| 高 PageRank 与灰标豁免 | [账号级信号（agatha、bdsm、user-cred-v2）](https://x-algorithm.vergego.ai/concepts/account-signals/) | `botmaker-rules/scarecrow/derived-feature/IsHighPageRankUser.df:3-18` |
| 法律下架按国家 | [可见性过滤（Visibility Filtering）](https://x-algorithm.vergego.ai/concepts/visibility-filtering/) | `visibility-filtering/rules/tweet_rules.rs:244-256` |
| Under the Hood 资格与白名单 | [Under the Hood 透明度报告](https://x-algorithm.vergego.ai/concepts/under-the-hood/) | `under-the-hood/strato/columns/underTheHoodReport.User.strato:18-19` |

## 相关页面

- [可见性过滤（Visibility Filtering）](https://x-algorithm.vergego.ai/concepts/visibility-filtering/) —— 全部规则清单与执行顺序
- [打标签规则（scarecrow 与 botmaker）](https://x-algorithm.vergego.ai/concepts/labeling-rules/) —— 事件驱动的自动打标签
- [处置与标签聚合](https://x-algorithm.vergego.ai/concepts/enforcement/) —— 处置服务、申诉保护期、按帖子给账号打标签
- [账号级信号（agatha、bdsm、user-cred-v2）](https://x-algorithm.vergego.ai/concepts/account-signals/) —— 账号分数与豁免阈值
- [Under the Hood 透明度报告](https://x-algorithm.vergego.ai/concepts/under-the-hood/) —— 报告的资格、口径与白名单
- [打分与排序](https://x-algorithm.vergego.ai/concepts/scoring-and-ranking/) —— 站外降权与作者多样性
- [推荐系统工作原理](https://x-algorithm.vergego.ai/guide/how-it-works/) —— For You 的完整流程
- [运营迷思 vs 源码真相](https://x-algorithm.vergego.ai/guide/operating-myths/) —— 其他流行说法的对照
- [发帖指南](https://x-algorithm.vergego.ai/guide/posting-guide/) —— 从机制反推的发帖建议

Source: https://x-algorithm.vergego.ai/guide/visibility-and-shadowban/index.mdx
