1实现原理 · 为什么它能做到
首先定位 skill 根目录,之后所有命令都经 bin/sbti 统一入口执行。
skills/social-sbti/SKILL.md
如果输出为空,告诉用户 skill 安装位置非标准,让他们给你路径,然后手工 `export SBTI_HOME=<路径>`。
注:这里在做什么:解决 skill 被装到非标准路径时的自定位问题。
把 SKILL.md 写成阶段 0–8 的对话剧本,强制按序执行不跳步。
skills/social-sbti/SKILL.md
严格按阶段顺序执行,**不要跳步**。
注:这里在做什么:用剧本约束 agent 行为,保证向导流程稳定。
进入抓取前先跑体检,未过体检不得抓取。
skills/social-sbti/SKILL.md
**不要骗自己**:体检没过就不要进抓取,不然就是浪费时间。
注:这里在做什么:把依赖/凭证问题挡在抓取之前,避免无谓耗时。
即刻凭证走交互式扫码:后台跑 jike-auth 并把 QR 原样回显到对话。
skills/social-sbti/SKILL.md
把 stderr 里的 QR 原样贴到对话里让用户用手机 App 扫。
注:这里在做什么:让扫码全程留在对话里完成,不要求用户另开终端。
X 凭证从浏览器导出 auth_token 与 ct0,落到 ~/.config/sbti/x_cookies.json。
skills/social-sbti/SKILL.md
**成功**: cookies 已落到 `~/.config/sbti/x_cookies.json`。回阶段 3 重跑 doctor。
注:这里在做什么:用用户自己的登录态抓取,凭证仅存本机。
抓取阶段把动态写到用户项目根的 sbti-output/<name>_raw.json。
skills/social-sbti/SKILL.md
这会把数据写到 `./sbti-output/<name>_raw.json`(用户项目根下)。
注:这里在做什么:产物落在用户项目而非 skill 目录,避免污染。
由宿主 agent 本人充当打分 LLM,对照 rubric 的 L/M/H 锚点逐维打分。
skills/social-sbti/SKILL.md
3. **读 rubric**: `Read` 工具读 `$SBTI_HOME/docs/SCORING_RUBRIC.md`。对照每个维度的 L/M/H 锚点打分。
注:这里在做什么:不依赖外部评分 API,用当前模型读规则直接打分。
打分带硬约束:每维至少引 1 条真实 post_id,置信度低于 0.4 强制回退 M。
skills/social-sbti/SKILL.md
- 每维至少引 1 条真实 `post_id`(必须来自 raw.json,不要编)
注:这里在做什么:用证据引用约束抑制编造,保证可复核。
finalize 一条龙跑 match→HTML→PNG,完成人格匹配与渲染。
skills/social-sbti/SKILL.md
1. `match.py` → 匹配 27 人格模板,写回 scores.json 补上 `pattern` + `personality`
注:这里在做什么:把打分结果落成可分享的卡片产物。
合规前置:对象确认阶段直接拒绝分析私人对象,只在允许范围内运行。
skills/social-sbti/docs/DISCLAIMER.md
遇到上述请求时,skill 会**直接拒绝**并说明原因。
注:这里在做什么:把滥用场景挡在流程起点,降低伦理风险。
2核心能力
01即刻 / X 公开动态抓取
02依赖体检与自动修复(pip / chromium)
03凭证配置与管理(即刻 tokens / X cookies)
0415 维 L/M/H 打分规则(证据必填)
0527 人格模板的曼哈顿距离匹配
06HTML 卡片生成与 PNG 截图渲染
07合规拒绝话术与边界声明
08twikit 兼容性补丁(适配 X 前端改版)
09产物与凭证的固定落盘路径
3外部依赖
| 类型 | 依赖 |
|---|---|
| package | jike-skill[qr](GitHub git URL 安装) |
| package | twikit>=2.0.0 |
| package | playwright>=1.40.0 |
| network | X / Twitter |
| network | esm.sh(产物期卡片保存按钮 CDN) |
4风险提醒 风险提醒:橙色 · 评估后使用
风险提醒:橙色 · 评估后使用
- 需读取 X/即刻凭证(cookies/tokens),存在凭证泄露或滥用风险,且 cookies 会过期。 — 凭证存于 ~/.config/sbti/(chmod 600),README 提示不要 commit。
- 高频抓取可能触发平台限流甚至封号。 — 脚本内置 1.2s 限速,并提示单次≤500 条、一天≤10 个用户。
- 依赖未发布到 PyPI 的 jike-skill(走 GitHub git URL),供应链可控性较低。 — doctor.py 用 git spec 安装该包。
- 结果仅供娱乐,却可能被误当作人格/能力评价。 — DISCLAIMER 明确『不是心理学诊断工具』。
橙色:skill 目录自带 Python 源码(cli/config/doctor/fetch_jike/fetch_x/match/make_card/render_png/twikit_patch),并为其声明用途读取凭证——即刻 tokens 与 X 的 auth_token/ct0 cookies(写入 ~/.config/sbti/,chmod 600),且经 git 安装未发布到 PyPI 的 jike-skill 包。抓取目标为 x.com / web.okjike.com,属可预期的平台端点。§3『危險旗標/防護繞過』无命中;twikit_patch 只是适配 X 前端 chunk 结构变化,非绕过风控,故不判红。
5第二遍独立确认
- [ok] 流程阶段完整性 — SKILL.md 阶段 0–8 与 README『这个 skill 做什么』流程一致。
- [ok] 依赖来源 — requirements.txt 三个包与 doctor.py 的 pip 安装点一致;jike-skill 走 git URL(PyPI 无此包)。
- [ok] 凭证路径与权限 — README 与 src/config.py 均指向 ~/.config/sbti/,并声明 chmod 600。
- [ok] 抓取端点 — fetch_x.py 用 twikit、twikit_patch 指向 abs.twimg.com;fetch_jike 走即刻端点。
- [ok] 反检测检查 — §3『危險旗標/防護繞過』无命中;twikit_patch 是前端结构适配而非绕过风控。
- [ok] 打分硬约束 — SCORING_RUBRIC 的硬约束与 SKILL.md 阶段 6 一致(证据必填、confidence<0.4 回退 M)。
- [ok] 合规拒绝逻辑 — DISCLAIMER『不允许的用法』与 SKILL.md 阶段 2 的拒绝分支一致。
- [ok] 档位复核 — 读凭据 + 远程包 → orange;无绕过/降级 → 不判红。
6结论
适合:想分析自己或公开公众人物的社交动态、生成可分享人格卡的自媒体/玩梗场景;接受一次扫码或贴 cookie 配置的用户。
不适合:分析前任/同事/面试官/投资人/相亲对象等私人对象;HR 背调、择偶匹配、尽调等严肃用途;不愿提供平台登录凭证者。
安装 agent 直装可复制
① 本站镜像 更新 2026-10-10
方式 A · 人下载镜像包下载 social-sbti.tar.gz
sha256:
方式 B · JSON 格式安装指南,复制给 agent4319620f4435f0cc…agent 读 JSON 指南后会自动从本站下载安装,无需更多说明。
② 上游 GitHub · 原始来源
来源信息 GitHub 原始
作者 / 仓库Backtthefuture / Backtthefuture/huangshu
原始 GitHubBacktthefuture/huangshu ↗
本 skill commit
3cfa898c51许可MIT(仓库根 LICENSE)
本站信息
收录日期2026-09-06
分类基础工具与工作流
侦查报告AI 侦查 · 2 遍 · 2026-09-06
本站镜像与 GitHub 原始是不同来源:本站锁定 commit 快照经 /r2 分发;GitHub 为实时上游,内容可能已更新。