云电脑发私信 · wrong_user 完整分析

发不出去的问题:到底卡在哪 · 重点标记 · 2026-06-16 · 合并「野荞当日报告」+「全天 21 条逐条人工验证」
目录: ① 最重要的发现 ② 当日大盘 ③ wrong_user 三类 ④ 冷缓存根因 ⑤ 根本卡点 ⑥ 进料端瓶颈 ⑦ 已做的 ⑧ 优化优先级 ⑨ 落地物料

先记住一句:这些"发不出去"的 没有一条发错人、也没有一条真发出去

系统发之前会先核对"找到的是不是本人",对不上就主动跳过不发(记 wrong_user)——是安全拦截,不是发错。代价是 lead 当天没联系上 + 机器空跑。

① 最重要的发现(先看这个)

🔴 真正的瓶颈不是"发不出去",是"料抓到时就过期了"
40% 的高意向评论,采集到手时已超过 24 小时

24 小时内 97 条高意向里:只有 34% 在 10 分钟内采到(够得上发送时效),40% 抓到时已经过期 24h+。采集中位延迟 185 分钟(约 3 小时)

结论:发送通道的 wrong_user 是小头;大头是"进料慢"——评论抓到时人早凉了。优化重心应放在"采集提速",不是死磕发送。

② 当日大盘(野荞账号一个时段)

25
成功发出
15
跳过(没发)

15 条跳过拆解:

7 条wrong_user — 核对不上本人(本报告重点)
6 条超时 — 超过 10 分钟时效窗口(对应进料端瓶颈)
2 条被拒 — 对方隐私设置/拒收

注:野荞报告聚焦这 7 条 wrong_user;下方第③节是全天累计 21 条的逐条人工验证(更大样本),两者口径不同,合看更全。

③ wrong_user 分四类(先看:派单时有没有抖音号)

失败先看一个分叉:派单时缓存里有没有这人的抖音号。有号 → 用号搜(A/B/C);没号 → 退回昵称搜(D)。

A/B/C 来自全天 21 条逐条人工搜的样本(都有号);D 来自野荞报告的兮兮宝贝(冷缓存没号)。

A 类 · 能救

有号·搜得到却被误判

本人在第一条、号也对,但拍照那刻没认出是主页(没加载好/残留)。→ 重试可救

B 类 · 救不了

有号·搜到的是别人

用号搜返回另一个人(号段相近)。本人没出现。

C 类 · 救不了

有号·压根搜不到

号、昵称都搜不到本人,停在结果页/视频页。

D 类 · 能救

没号·退回昵称搜撞名

新评论缓存还没号 → 按昵称搜 → 撞同名。本人其实搜得到,给它号(预热)就能救(兮兮宝贝)。

例子(抖音号)手搜结果结论
A 搜得到 833997494 69540571321a x.g.z.6688(私密)
2026588128 187193079 58835709546
✅ 搜得到本人系统误判,能救
B+C 搜不到 41780494807 zhaoliang.666 13936266666l
84554044 aassddffqqwwee 573733910
❌ 搜不到本人本通道够不到
D 冷缓存 兮兮宝贝(派单时无号) 昵称搜撞名(本人其实搜得到)缓存预热给号 → 能救
A + D
能救:A 靠重试(#375)、D 靠缓存预热(FIX2)
B + C
够不到:本人在抖音上就搜不到

有号的 21 条里:能救(A)~6、够不到(B+C)~15;D 是另一条没号的路(兮兮宝贝),归"能救"。

🟡 重点:wrong_user 大头是"搜不到本人",不是"误判"

全天 ~15/21 是本人根本搜不到(本通道结构天花板,救不了);只有 ~6 是"搜得到却误判"(已修)。
💡 活证据:heshufuderen97 上午搜不到被记 wrong_user,过几小时系统自己重试就发出去了——印证"重试能救"。

④ D 类隐藏根因:冷缓存(以兮兮宝贝为例)

↑ 这就是第③节的 D 类 ——和 A/B/C(都有号、用号搜)不同,D 是压根没号、退回昵称搜才撞的,所以单列。

当天唯一"搜得到本人却仍失败"的特例 兮兮宝贝,暴露了一条结构性失败链:

新评论刚进(10min 窗口内)缓存里还没这人的抖音号(没被预查过)退回按昵称搜撞同名wrong_user

即:越是"新鲜、够时效"的评论,越可能因为缓存没预热到而没号、退化成撞名搜。这和"进料端"是同一根:都卡在"新料来不及处理"。

⑤ 根本卡点(为什么这么多搜不到)

🔒
卡点① 云电脑用抖音 PC 客户端,没有网址栏
手机端能用专属链接(sec_uid)直接打开本人主页,百发百中;PC 客户端只能搜索框打字搜,搜不到就没别的路。
🎯
卡点② 抖音搜索是黑盒,搜号不保证出本人
同形态号有的搜得到有的搜不到,无法预判。原因混合:用户改了号、号是系统默认号本就不可搜(7 个里 4 个纯数字默认号、2 个关了"号被搜索")、或召回偏差。
🔢
卡点③ 短数字号会撞号
号太短(如 8 位 84554044),抖音按"包含"匹配 → 返回号里含这串的别人
❄️
卡点④ 冷缓存:新评论没号 → 撞名搜
刚来的评论还没被预查抖音号 → 退回按昵称搜 → 撞同名(兮兮宝贝那条)。
⏱️
卡点⑤ 没作品/私密号 + 页面没加载好 → 误判"不是主页"
系统靠"有作品宫格"认主页,潜水/私密号没作品、或残留没清,被当成非主页误拦——这类其实是本人(A 类),能救
已具备:网格扫描(SCAN_N)已开启
只要有抖音号,能在多条相似结果里精确挑出本人,不发错。

⑥ 比发送更大的瓶颈:进料端(采集)

24 小时 97 条高意向评论,按"从评论出现到被采集"的延迟分布:

≤10 分钟33/97 (34%)够得上发送时效
>24 小时39/97 (40%)抓到就已过期

采集中位延迟 = 185 分钟(约 3 小时)

缓存预热覆盖目前只有 7%(44/615) 有号 → 大量评论派单时无号 → 撞名 / wrong_user。

🔴 重点:不是发不出去,是大部分料抓到时就已经过期

死磕发送通道(wrong_user)只能救个位数;真正的杠杆在"采集提速 + 缓存预热"——让评论在还新鲜、本人还在的时候就带号派出去。

⑦ 已经做了什么

修 A 类:没认出主页时重试一次再判(PR #375)
判"非主页"时重新搜一次、等页面加载好再核对,而不是直接放弃。不放宽核对标准、不会发错人,只给页面第二次机会。救 A 类(搜得到却误判)。
装计数器:每条失败记 A/B/C 哪类(PR #376)
以前库里只写笼统"wrong_user",现在带细节,攒一周能算出三类各占多少,用数据决定下一步。
🛠️
缓存预热脚本(FIX 2) — 每 5 分钟批量预查待派单池的抖音号,让派单时就有号。验证 60 个号 100% 命中、0 失败;成本几乎为零(不烧 token),用采集号 cookie 风险低。局限:只解"搜得到但冷缓存"的,解不了"本就搜不到"的。

⑧ 未来优化(按杠杆从大到小)

🥇
提高采集频率 杠杆最大
让评论在 10 分钟内被抓到、还新鲜就派出去。直接砍掉"40% 抓到就过期"这个大头。
🥈
扩大缓存预热覆盖
现在只 7%(44/615)有号 → 拉到高覆盖,新评论派单时就带号,少撞名、少 wrong_user。
🥉
提升号源可达性 换通道
"搜不到本人"的(B+C),转手机端(iPhone/安卓)用 sec_uid 专属链接直达;或终极方案云电脑改"浏览器版抖音"(有网址栏)绕开搜索框。量大才做。
🏅
补转化指标追踪 观测
把"发出→回复→加微"的转化打通,才知道每个环节真实损耗。
短号防撞守卫 小改·零风险
号太短(必撞别人)时直接跳过不发,省空跑、不发到别人页。
🔵 下一步建议

⑨ 落地物料(给运营 · 更新云电脑)

本次两个脚本已合并到 main(PR #375 + #376),云电脑下载覆盖 + 重启即生效。默认即生效、不改派单/抑制行为、零风险。

脚本本次改了什么(作用)应为字节
douyin_dm_grounded.py 发私信主脚本。加「非主页重试」:点开结果落「非主页」(残留/没加载好)时重搜落稳再核对,把"本人已点到却被误判"捞回来发。不放宽核对标准、不会发错人 58682
wuying_poll_agent.py 派单 agent。让 wrong_user_ocr_seen(搜到了谁)写进数据库,事后能按 A/B/C/D 量出各占多少。纯后台记录、不改任何派单/抑制行为。 35824
云电脑更新操作(黑窗口 PowerShell 里逐段粘,可直接转发操作员)
# 1) 先 Ctrl+C 停掉正在跑的 poll agent,然后:
cd C:\akke-wuying\wuying-dm

# 2) 下载两个新脚本(覆盖旧的):
Invoke-WebRequest -Uri "https://gist.githubusercontent.com/yeqiao356/23eae280eee68fafc4c80a53bdf345eb/raw/douyin_dm_grounded.py" -OutFile douyin_dm_grounded.py
Invoke-WebRequest -Uri "https://gist.githubusercontent.com/yeqiao356/05e5a1f32378b6bb307f014c8ab7e8a5/raw/wuying_poll_agent.py" -OutFile wuying_poll_agent.py

# 3) 校验字节数(必须一致,对不上就重下第2步):
(Get-Item douyin_dm_grounded.py).Length   # 应 58682
(Get-Item wuying_poll_agent.py).Length    # 应 35824

# 4) 重启 agent:
py wuying_poll_agent.py

非主页重试默认就开,不用改 .env;非 2560×1600 机器同操作、不用重新量坐标(见下)。

🟡 非 2560×1600 分辨率的机器:本次无需重新量坐标

本次两个改动都与分辨率无关,非标准分辨率机器和 2560 机器走法完全一样:

→ 非 2560 机器照样下两个文件 + 校验字节 + 重启即可,不用重新量坐标

⚠️ 前提:这台机器坐标本来就得是准的(之前已用 measure-row-dy.py / measure_nav.py 量过)。重试能救"页面没加载好",救不了"坐标量错"——若坐标本就落空,重试只会重复落空的点击。非标准分辨率机器若还没量过坐标,先量坐标,本次更新才有意义。