阿東的AI手记
返回文章列表

你测的 SBTI 人格,原来是这么算出来的

·约 17 分钟·

扒开 SBTI 的前端源码:27 种人格怎么判、匹配度怎么算,以及它为什么一天之内刷屏。

目录
  1. 01SBTI 是什么
  2. 怎么测
  3. 测的是什么
  4. 27 种人格
  5. 02实现原理
  6. 扒下源码
  7. 完整算法:6 步
  8. 它不是 K-means
  9. 25 个人格的完整 pattern
  10. 03一天怎么就火了
  11. 第一个引爆点:故事本身就是好内容
  12. 第二个引爆点:测试本身具备传播基因
  13. 第三个引爆点:服务器崩溃的反向助推
  14. 给我的一些启发

大家好,我是阿东。

早上起来一看朋友圈被各种「死者」「吗喽」「小丑」刷屏了。SBTI,Silly Big Personality Test,一个恶搞版的人格测试,一天之内从 B 站一个视频扩散到全网每个角落。

我也测了下哈哈,BOSS,领导者,匹配度 80%。

SBTI 手机端测试结果页:领导者 BOSS,匹配度 80%、精准命中 10/15 维

但是看完结果页很好奇这个匹配度、精准命中是咋定义的?毕竟是对自己的一次刻画,合理性还是要了解下的。

所以让 Claude 帮我看了下前端源码,查了公开镜像仓库,把整个实现逻辑搞清楚了。

这篇文章分享下 SBTI 的设计思路和为啥爆火的分析,不管你测没测过,都可以看看,很有意思。

SBTI 是什么#

SBTI 全称 Silly Big Personality Test,直译过来就是"傻乎乎的大人格测试"。

它的创作者是 B 站 UP 主「蛆肉儿串儿」。创作初衷很简单——劝一个爱喝酒的朋友戒酒。

4 月 9 号中午 11 点,她发了一条视频,标题叫「我做了个盗版 SBTI 测试,且骗人来测。」视频里,她骗朋友说这是正版测试,让他做完一套题。朋友做到一半还在吐槽"这简直是胡扯",结果测出来是「酒鬼」人格——一个只有选了"爱好饮酒"才会触发的隐藏人格。

结果页直接列出了酒精对身体的危害:反应变慢、胃痛、肝硬化。朋友看完说"好恐怖啊,我妈是不是找过你"。

视频最后,朋友说了一句:"你竟然如此煞费苦心,我明天开始不喝了。"

就是这个视频。截至我写这篇文章的时候,播放量 167 万,转发 5.4 万,评论 2.7 万。 全站排行最高第 16 名。

B 站视频页《我做了个盗版SBTI测试,且骗人来测。》,显示 167.4 万播放、全站排行最高第 16 名
▲ 167 万播放,一天。

怎么测#

测试入口有很多,官方原版是 sbti.dev,国内访问可以用 sbti.run 或者直接搜"SBTI 测试"。31 道选择题,不需要注册,5 分钟就能填完看到结果。

SBTI 答题页第 1/31 题「我不够好,周围的人都比我优秀」,三个选项是确实、有时、不是
▲ 题目风格就是这样的,三选一,很直白

测的是什么#

SBTI 把人格拆成了 5 组模型,每组 3 个维度,一共 15 个维度:

  • 自我模型(S1-S3):自尊自信、自我清晰度、核心价值
  • 情感模型(E1-E3):依恋安全感、情感投入度、边界与依赖
  • 态度模型(A1-A3):世界观倾向、规则灵活度、人生意义感
  • 行动驱力模型(Ac1-Ac3):动机导向、决策风格、执行模式
  • 社交模型(So1-So3):社交主动性、人际边界感、表达真实度
SBTI 官方「关于」页面:32 道题、27 种人格、15 维,下方是 5 组模型的说明卡片
▲ 官方 About 页面:32 题、27 种人格、15 维

27 种人格#

25 种标准人格 + 2 种特殊人格。

标准人格每一个都很有梗。DEAD(死者)的座右铭是"我,还活着吗?",MALO(吗喽)是"人生是个副本,而我只是一只吗喽",SHIT(愤世者)是"这个世界,构石一坨"。还有 CTRL(拿捏者)、ATM-er(送钱者)、JOKE-R(小丑)、SEXY(尤物)、SOLO(孤儿)、IMSB(傻者)、FUCK(草者)……

SBTI 27 种人格类型总览页,每种人格配一张方块小人插画和一句座右铭
▲ 每种人格都有自己的插画和座右铭

两种特殊人格:

DRUNK(酒鬼)——唯一的隐藏触发人格。做题时选了"爱好饮酒",系统会插入一道追加题,如果回答命中条件,直接跳过所有正常匹配,输出酒鬼。这就是 UP 主为朋友量身设计的"陷阱"。

HHHH(傻乐者)——兜底人格。如果你和 25 种标准人格的匹配度都低于 60%,系统会把你归到这里。座右铭是"哈哈哈哈哈哈"。

几个结果页长这样:

顺便提一下排行榜的数据——SEXY(尤物)排第一,9.7%,LOVE-R(多情者)第二,CTRL(拿捏者)第三。大家倾向于提交自己觉得好听的人格,这个行为本身就挺有意思。

实现原理#

这是我最感兴趣的部分。

看到结果页上显示"匹配度 80%""精准命中 10/15 维"的时候,第一反应是:这个匹配度是怎么算的?15 维是哪几维?命中又是啥意思?

其实我最关心的它算的到底准不准。。

扒下源码#

SBTI 的整个实现逻辑,其实都写在前端代码里。

GitHub 上有一个公开的镜像仓库(UnluckyNinja/SBTI-test),里面就一个 index.html,所有算法、题目、人格模板全在里面。

GitHub 上的 SBTI 测试镜像仓库,根目录只有 image 文件夹、.gitignore、README.md 和 index.html
▲ 一个 HTML 文件,所有逻辑都在前端

让 Claude 打开这个文件帮我看,发现每种人格后面跟着一串字母,比如:

CTRL   = HHH-HMH-MHH-HHH-MHM
DEAD   = LLL-LLM-LML-LLL-LHM
LOVE-R = MLH-LHL-HLH-MLM-MLH

这就是每种人格的"15 维指纹"——用 L(低)、M(中)、H(高)三档来描述这个人格在 15 个维度上的典型状态。短横线只是分组用的,去掉后按固定顺序 [S1,S2,S3,E1,E2,E3,A1,A2,A3,Ac1,Ac2,Ac3,So1,So2,So3] 展开。

这意味着什么?这些人格的"中心坐标"不是从用户数据里训练出来的,是作者直接定义好的。

想明白这一点之后,整个算法就清楚了。

完整算法:6 步#

一句话版本:答题 → 15 维累计得分 → L/M/H 离散化 → 生成用户向量 → 与 25 个预设人格原型做距离比较 → 选最近的那个。

展开说:

第 1 步:答题

30 道常规题(每个维度 2 题)+ 1 道饮酒门题 + 1 道饮酒触发题。常规题每题 3 个选项,对应分值 1/2/3。所以你实际做的是 31 或 32 道题。

第 2 步:累计到 15 维

每个维度有 2 道题,把两道题的分值加起来,得到这个维度的原始分。范围是 2-6。

第 3 步:离散化

原始分被压成三档:

  • 2-3 分 → L(低)
  • 4 分 → M(中)
  • 5-6 分 → H(高)

这一步很关键。它意味着整个系统不是在一个连续的高维空间里做精确匹配,而是在一个高度离散的有限状态空间里做模式比较。 每个维度只有 3 种可能,15 个维度组合起来,理论上的状态空间是 3^15 = 14,348,907 种——但实际上只有 27 个预设人格在等着你。

第 4 步:生成用户向量

把 L/M/H 映射成数值 1/2/3,你就得到一个 15 维的数字向量。比如如果你的 15 维等级是 HHH-HMH-MMH-HHH-LHL,对应的数值向量就是 [3,3,3,3,2,3,2,2,3,3,3,3,1,3,1]。

第 5 步:与人格原型比较

每种标准人格也有一个 15 维数值向量(从前面说的 pattern 字符串转换而来)。系统对 25 种人格逐一计算与你的距离:

距离 = |你的S1 - 人格S1| + |你的S2 - 人格S2| + ... + |你的So3 - 人格So3|

就是曼哈顿距离,逐维求绝对差值再累加。

同时统计"精准命中维度数":你和这个人格在多少个维度上的等级完全一致。

相似度百分比的计算也很直接:

相似度 = (1 - 距离/30) × 100%

分母 30 是因为 15 个维度 × 每维最大差值 2 = 30。所以理论最低相似度是 0%,最高 100%。

我测出来 80% 意味着距离是 6,也就是 15 个维度里有 10 个完全命中,其余 5 个各差了 1-2 档。

排序规则:先按距离从小到大,距离相同按命中数从大到小。最终选最近的那个作为你的主类型。

第 6 步:特殊规则覆盖

在正常匹配之后,还有两条规则会覆盖结果:

  • 如果饮酒触发题命中 → 直接输出 DRUNK,跳过正常匹配
  • 如果最高相似度 < 60% → 直接输出 HHHH(傻乐者)

它不是 K-means#

看到"最近中心匹配"你可能会想到 K-means 聚类。但两者有本质区别:

K-means 的中心点是从用户数据里反复迭代算出来的——初始化 → 分配样本 → 更新中心 → 重复直到收敛。中心点会随着数据变化而变化。

SBTI 的人格中心是写死在代码里的。CTRL 就是 HHH-HMH-MHH-HHH-MHM,DEAD 就是 LLL-LLM-LML-LLL-LHM,上线之后不会因为有更多人来测就改变。

更准确地说,SBTI 的算法更接近最近原型匹配(Nearest Centroid)——每个类由一个预设的原型表示,把新样本分给最近的原型。

所以实现上其实非常轻量。不需要训练集,不需要模型,不需要后端。一个 HTML 文件就跑完了全部逻辑。

所以准确性这个事,坦白说我是存疑的。每个人格原型的 15 维坐标怎么定的?这完全是个黑盒,只有作者知道。从代码结构看,更像是作者先想好了"我要一个叫 DEAD 的人格,它应该什么都低",然后反向填 pattern,而不是先收集了一堆真实用户数据再聚类分析出来的。

至于这些人格描述和文案,2026 年了,大概率有 AI 参与。25 个人格每个都有一段风格统一、梗点密集的描述,还要精确对应 15 个维度,纯手写的工作量不小。但核心创意——DRUNK 这种隐藏触发、每个人格的命名和文化梗(吗喽、屌丝、OJBK)——这些是非常"中文互联网原生"的东西,AI 很难凭空想出来。

更可能的情况是:人格设定和维度分配是作者手工设计的,文案和描述用 AI 辅助生成和润色。 这也解释了为什么整体风格这么统一——有一个好的 prompt 模板在后面。

所以 SBTI 测"准不准"?从心理学角度看,它没有任何科学验证。但从体验角度看,15 个维度 × 3 档 × 曼哈顿距离,比 MBTI 的 4 个二元维度分辨率高多了。加上巴纳姆效应(人格描述写得足够模糊和普适,大多数人都会觉得"说的就是我"),体感上确实会觉得有几分准。

25 个人格的完整 pattern#

从代码里可以直接读出所有人格的 15 维指纹:

人格 PatternCTRL 拿捏者 HHH-HMH-MHH-HHH-MHMATM-er 送钱者 HHH-HHM-HHH-HMH-MHLDior-s 屌丝 MHM-MMH-MHM-HMH-LHLBOSS 领导者 HHH-HMH-MMH-HHH-LHLTHAN-K 感恩者 MHM-HMM-HHM-MMH-MHLOH-NO 哦不人 HHL-LMH-LHH-HHM-LHLGOGO 行者 HHM-HMH-MMH-HHH-MHMSEXY 尤物 HMH-HHL-HMM-HMM-HLHLOVE-R 多情者 MLH-LHL-HLH-MLM-MLHMUM 妈妈 MMH-MHL-HMM-LMM-HLLFAKE 伪人 HLM-MML-MLM-MLM-HLHOJBK 无所谓人 MMH-MMM-HML-LMM-MMLMALO 吗喽 MLH-MHM-MLH-MLH-LMHJOKE-R 小丑 LLH-LHL-LML-LLL-MLMWOC! 握草人 HHL-HMH-MMH-HHM-LHHTHIN-K 思考者 HHL-HMH-MLH-MHM-LHHSHIT 愤世者 HHL-HLH-LMM-HHM-LHHZZZZ 装死者 MHL-MLH-LML-MML-LHMPOOR 贫困者 HHL-MLH-LMH-HHH-LHLMONK 僧人 HHL-LLH-LLM-MML-LHMIMSB 傻者 LLM-LMM-LLL-LLL-MLMSOLO 孤儿 LML-LLH-LHL-LML-LHMFUCK 草者 MLL-LHL-LLM-MLL-HLHDEAD 死者 LLL-LLM-LML-LLL-LHMIMFW 废物 LLH-LHL-LML-LLL-MLL

随便挑几个看看:

SBTI 领导者 BOSS 人格页,15 维落点以 H 为主,So1 社交主动性和 So3 表达与真实度为 L

BOSS(领导者):HHH-HMH-MMH-HHH-LHL → [3,3,3,3,2,3,2,2,3,3,3,3,1,3,1]。自我模型全 H、行动驱力全 H,但社交主动性是 L——高自尊、高驱动力、不需要社交认同。”方向盘给我,我来开,但我不需要你夸我”。

SBTI 尤物 SEXY 人格页,15 维落点里 E3 边界与依赖、So2 人际边界感为 L,其余多为 H 或 M

SEXY(尤物):HMH-HHL-HMM-HMM-HLH → [3,2,3,3,3,1,3,2,2,3,2,2,3,1,3]。排行榜第一名,9.7% 的人主动提交了这个结果。自尊高、情感投入高但边界感极低(E3=L)、社交主动性高但人际边界感低——热情、开放、有魅力但容易过度投入。难怪大家愿意晒这个结果。

SBTI 死者 DEAD 人格页的 15 维落点,几乎全是 L,只有 So2 人际边界感为 H

DEAD(死者):LLL-LLM-LML-LLL-LHM → [1,1,1,1,1,2,1,2,1,1,1,1,1,3,2]。15 个维度里 12 个是 L,只有人际边界感是 H——什么都不在乎,但别靠太近。这个 pattern 设计得很精准,”删档重开 999 次的终极贤者”。

SBTI 小丑 JOKE-R 人格页,15 维落点里 S1、S2 为 L,S3 核心价值和 E2 情感投入度为 H

JOKE-R(小丑):LLH-LHL-LML-LLL-MLM → [1,1,3,1,3,1,1,2,1,1,1,1,2,1,2]。自尊自信都是 L,但核心价值是 H、情感投入高——内在有追求,但对自己评价很低。”用最大的笑声盖住心碎的声音”,这个 pattern 和人格描述的对应关系真的很到位。

这张表本身就很有意思。你可以对比两个相似人格的 pattern 差异,看看作者是怎么用 15 个维度把它们区分开的。比如 CTRL(拿捏者)和 BOSS(领导者),差异主要在态度和社交模型上——CTRL 社交更主动(MHM vs LHL),BOSS 更独立。CTRL 是”我拿捏你但我还挺 social 的”,BOSS 是”我来掌舵但你们别来烦我”。

一天怎么就火了#

今早上(4.10)看到这玩意火了,测试完后其实有个疑问,就是为啥能一夜之间传遍整个朋友圈啊,所以看了下原视频和整个时间线。

4 月 9 号中午 11 点,视频发布。一个 6 分半的视频,一个 B 站 UP 主,粉丝量在此之前远没有 12.7 万(这个数字是爆火之后涨的)。

当天下午,网站就崩了。UP 主下午 4 点在评论区说"网站崩了我修复一下"。凌晨 4 点还在发新链接,说"按照建议做了略微修改,相信 b 站技术稳定的力量,应该不会再崩了"。

4 月 9 号当天,微博热搜。

一天,167 万播放,5.4 万转发,2.7 万条评论。

第一个引爆点:故事本身就是好内容#

视频的传播力不是来自"这里有个好玩的测试快来测",而是来自**"一个人为了救朋友做了这么一件事"**。

视频前半段很搞笑。朋友自嘲是废物,吐槽"这简直是胡扯",边做题边喝酒。中间揭晓 DRUNK 人格的时候有惊讶、有尴尬。但到结尾,画风突然变了——结果页列出了酒精危害,朋友沉默了一会儿说"好恐怖啊,我妈是不是找过你",然后是那句"你竟然如此煞费苦心,我明天开始不喝了"。

B 站视频评论区,有网友晒出自己测出 MALO(吗喽)人格的截图,底部显示 2.7 万+ 条评论
▲ 评论区的画风

大家分享的不只是一个测试链接,是一个故事。

第二个引爆点:测试本身具备传播基因#

SBTI 的题目不是正经心理测试那种"您在社交场合中更倾向于 A 还是 B",而是"我不够好,周围的人都比我优秀——A.确实 B.有时 C.不是"。

选项直白到有点冒犯,结果标签戏谑到有点自虐。 你拿到的不是"建筑师""调停者"这种体面的标签,是"死者""狗屎人""吗喽"。

但恰恰是这种自嘲感让人愿意晒出来。发一张"我是 INTJ 建筑师"到朋友圈,看起来像在炫耀。发一张"我是 DEAD 死者",看起来像在玩梗。后者的分享门槛低得多。

加上每种人格都有排名,天然形成了比较和讨论的社交闭环——"你是什么?""我是吗喽""哈哈我也是"。

第三个引爆点:服务器崩溃的反向助推#

听起来反直觉,但网站崩了反而加速了传播。打不开 → 截图分享 → 更多人好奇 → 等恢复后涌入 → 又崩。每一轮崩溃都在制造话题。

给我的一些启发#

SBTI 的技术实现并不复杂。一个 HTML 文件,简单的算法,25 个人格模板,没有后端,没有训练集。前面分析过,文案大概率有 AI 辅助,但核心创意和人格设计是人的。放在 2026 年,技术部分谁都能做——算法用 AI 写,人格描述用 AI 润色,前端用 AI 搭,一天之内就能跑起来。

但技术从来不是这件事的壁垒。

壁垒在哪?在于 27 个人格的文案每一条都让人笑出来,在于 DRUNK 这个隐藏人格的巧妙设计,在于"为朋友做了一个测试"这个真实故事,在于 B 站视频里那个从搞笑到温暖的转折。

这些东西不是算法能生成的。

对于所有在做自己产品的人——独立开发者、超级个体、或者就是想做点什么的普通人——SBTI 是一个很好的案例。产品的传播力来自"可玩性"和"可晒性",不来自技术复杂度。 而自媒体,是让我们的东西被看见的渠道。原 up 没有投广告,没有找 KOL,就是发了一条 B 站视频就爆了。

Build in public,永远有效。

最后,我整理了包含 27 种人格的 pattern 模板、算法伪代码、维度对照表, 回复「SBTI」获取完整的 SBTI 实现和解析文档。

相关链接

SBTI 官方原版:sbti.dev

SBTI 国内镜像:sbti.run

B 站原版视频:bilibili.com/video/BV1LpDHByET6

GitHub 镜像仓库:github.com/UnluckyNinja/SBTI-test