小顾 · 漏在最前面484 次"待回"里 330 次是自己的话
端点拦下的理由 330 次全是 echo_of_own_reply(另有 25 次 suspected_speaker_mislabel、7 次 needs_human)。即:读屏把小艳自己刚发的气泡当成客户新消息,一路送到大脑,被服务端回声闸挡回。每次赔一趟读屏+一趟跨境端点往返。
问题不是「PowerShell 里填脚本混乱」——遥控通道实测全绿。真正吃掉时间和效率的,是云电脑那个单窗口、串行、靠截图认字的执行层:它每天看屏幕 9,180 次,只发出 119 条消息。
// 数据来源:3 台生产云电脑的 _loop.log(30,648 行)+ Supabase 369 次真实往返+11 次 RunCommand 远程探针+当场实测的 VL/端点往返延迟
这套系统有三层,反馈里说的「填入脚本混乱 / 操控慢」把三层混在一起了。逐层实测的结论是:前两层都健康,全部延迟和浪费都在第三层。
aliyun ecd run-command)。本次分 4 批下发 11 次探针,全部 InvocationStatus=Success、Dropped=0,秒级回执,--include-output true 完整拿到 stdout。chatReply p50 5.0s、p90 12.3s(近 10 天 9,153 次调用)。执行层是盲打:靠固定坐标点击、靠 SendInput 往当前前台窗口敲字。所以只要前台不是企微(有人开了记事本、弹窗、召回把窗口切到群),"填进去的内容"就会错位、错人、错窗口——看起来像脚本乱了,实际是焦点乱了。
口径说明:库里客户消息的时间戳=loop 读屏并调生成的那一刻,AI 消息时间戳=打完字点发送后回执落库的那一刻。两者之差=投递半程(生成+身份门+打字+发送+回执)。近 10 天 369 次紧邻配对:
而这只是半程。另一半「客户真发出 → 被 loop 读到」库里不可见,只能用轮周期估:小顾 24.8 小时跑了 3,882 轮=平均 23s/轮,夏夏 114s/轮(窗口含离线空档,属上界)。所以客户实际感知的等待,小顾约 45s,夏夏可到 90s 以上。
投递半程按回复长度分层的 p50 —— 逐字打字让延迟随字数线性增长(每字 0.02–0.08s 随机停顿,模拟人打字)。
7-29 那次提速(字间延迟减半 + 一条回复最多 1 张图,预期 41s→21s)方向是对的,但同期话术变长把它吃回去了:回复中位字数 07-27 59 字 → 07-28 110 字 → 07-29 134 字,而 p50 从 25.8s 涨到 38.5s。07-30 首条样本回到 22.1s(39 字)——短回复确实快了,长回复没有。
| 日期 | 样本 | p50 | p90 | 回复中位字数 | 库内吞吐(客户 / AI) |
|---|---|---|---|---|---|
| 07-20 | 32 | 55.2s | 86.9s | 58 | 36 / 33 |
| 07-23 | 18 | 20.9s | 44.6s | 70 | 18 / 18 |
| 07-27 | 49 | 25.8s | 49.1s | 59 | 142 / 50 |
| 07-28 | 79 | 39.2s | 64.0s | 110 | 181 / 87 |
| 07-29 | 102 | 38.5s | 61.3s | 134 | 131 / 112 |
| 07-30(截至 09:30) | 1 | 22.1s | — | 39 | 1 / 1 |
「客户 / AI」是库内消息条数,不等于漏答率——连发多条会被合并成一次回复,所以比值只能看趋势不能当覆盖率。
从 _loop.log 逐行还原一整天(24–26 小时窗口)的漏斗。三台的脚本 md5 完全一致(74BA7E7C / 178,011 字节 / v2026-07-29.recall-draft-clipboard-verified)——所以下面的差异全部来自配置和现场状态,不是版本差异。
| 漏斗层 | 小顾 · 成都 | 夏伟 · 成都 | 夏夏 · 杭州 |
|---|---|---|---|
| 轮次(本轮无新消息) | 3,882 | 1,348 | 509 |
| 读屏调用(read+unread+diff) | 4,684 | 3,467 | 1,029 |
| 检出待回客户消息 | 490 | 277 | 28 |
| 送进大脑生成 | 484 | 221 | 28 |
| 生成出话术 | 93 | 218 | 24 |
| 真发出并落库 | 86 | 15 | 18 |
| 每发 1 条要读屏 | 54.5 次 | 231 次 | 57 次 |
| 有效轮占比 | 2.2% | 1.1% | 3.5% |
| 主漏点 | 回声环 330 次 | 身份门中止 254 次 | 最健康 · 64% 通过 |
端点拦下的理由 330 次全是 echo_of_own_reply(另有 25 次 suspected_speaker_mislabel、7 次 needs_human)。即:读屏把小艳自己刚发的气泡当成客户新消息,一路送到大脑,被服务端回声闸挡回。每次赔一趟读屏+一趟跨境端点往返。
话术都生成好了(钱和时间都花了),却在发送前身份门被丢弃 254 次(含咨询聚合门)。日志原文:当前窗口是 '26072605 全屋定制 天津 服务群',要回的是 '有大有小|全屋定制夏伟@微信'——召回腿把窗口切到群,被动腿再想回私聊就对不上了。这台是唯一开着召回的机器。
没有 DOM 可问的时候,"发送前重读标题确认是这个人"是防发错人的唯一防线,宁可不发也对。真正的浪费在于:对不上就把已经生成好的话术直接扔了,没有"缓存下轮重投"。夏伟因此每 15 条有效发送要赔掉 200 多次生成。
97.8% 的轮次零产出,钱花在哪四件事上——逐条计数,全部来自今天的 _loop.log。
像素 diff 说"屏幕变了",而变的正是自己刚发出的那条气泡;VL 的左右归属判断又不够硬。本地虽然有"我方近发文案"缓冲,日志里命中 0 次——说明本地闸没拦住,全靠服务端兜。
被当成"非外部客户会话"跳过的名字里,排第一的是 .env - Notepad(816 次,加 Notepad 共 898 次,最后一次 09:25:27)。09:35 的进程探针确认:notepad 进程此刻仍在跑。读屏读的是最前窗口,有人开了编辑器就一直误判。
企微自带的智能文档 / 客户联系 / 行业资讯这些系统会话,红点常驻不清。loop 每轮都要花一次 VL 扫红点列表,然后得出同一个结论:1 个红点全是内部号/系统号,不点开。小顾最后一次 09:18:42,还在继续。
日志里 末尾方向已确认且无待回客户消息——这是正确的判断,但它是靠一次完整的截图+VL 全读换来的。像素 diff 抄空后触发"全读复核防漏抄",也是同一笔账(小顾 507 次 diff 事件)。
同一天、同一份脚本 md5,三台 .env 现场读回的关键参数:没有一项是一致的。这是"同代码三种效率"的直接原因,也让任何优化都无法归因。
| 参数 | 小顾 | 夏伟 | 夏夏 |
|---|---|---|---|
| 读屏模型 | qwen3-vl-235b-a22b | qwen3-vl-30b-a3b | qwen3-vl-30b-a3b |
| 实测单次往返 | 2,986 / 3,856ms | 2,203 / 1,454ms | 6,229 / 1,495ms |
| 截图体积 / 图 token | 382KB / 2,504 | 60KB / 1,476 | 130KB / 2,546–3,576 |
| 打字模式 | unicode 逐字 | unicode 逐字 | paste 粘贴 |
| 轮询节奏(空闲) | 5–12s | 5–12s | 12–30s |
| 日限 / 时限 / 单客户 | 200 / 50 / 100 | 200 / 50 / 100 | 20 / 8 / 6 |
| 聊天区裁剪比 | 0.21 | 0.347 | 0.107 |
| 召回支线 | 关 | 开(唯一) | 关 |
| 今日已发(09:20) | 12 | 0 | 1 |
① 夏夏是唯一跑 paste 模式的机器,而 paste 曾因"粘进去没触发回车=假发送"被全线回滚。它现在通过率最高(64%)——这是一份现成的灰度样本,别当异常清掉,值得先查清 paste 在这台上为什么没复发假发送(是护栏补上了,还是运气)。
② 坐标裁剪比三台差 3 倍是正常的(客户端版本不同、必须逐台量),但模型、节奏、日限没有任何理由不一致。
按今天 OpenRouter 官方价目实拉(qwen3-vl-235b-a22b 输入 $0.21/M、qwen3-vl-30b-a3b 输入 $0.15/M)× 实测 token 量算这笔账。结论有点反直觉:贵的不是模型,是次数。
按「读屏次数 × 实测 prompt token × 官方单价」估算,未计 completion(每次 200–2000 max_tokens,占比小)。换成 30B 只省 29%;把空转砍掉能省 90% 以上——优化方向应该是次数,不是模型。
视觉模型返回 HTTP 200 但 content 为空时,旧代码当成功处理、整轮白跑且不重试——「成都机 07-27 一天 901 次」。现已改成走重试并打印 finish_reason。今天三台的空响应计数:小顾 0、夏伟 11、夏夏 0,这个洞已经堵住了。
把反馈里的"混乱"拆开,是三件完全不同的事,修法也完全不同。
远程桌面粘贴会给每行开头加空格、把超长行从中间折断、把多行块的换行吞掉黏成一行;多行 PowerShell 块还会整块静默不执行。写 .env 用 Set-Content -Encoding UTF8 会加 BOM 污染首行 key。正解:命令一律压成单行逐条发;脚本走自愈通道或 gzip+base64 分块写盘+md5 双端校验。
VL 把标题读成半个字(「陈教授」→「授」)、把系统卡片和记事本窗口当成客户会话、把自己的话当客户消息;召回切窗口后被动腿打到群里。这类"混乱"表现为内容错位、发错人、卡成草稿,不是编码问题。
07-30 00:08 实录:一段混着 Human:、日文假名、${ 和 HTML 实体的崩坏输出原样发了出去。原有清洗只认"像话术但不该说的话",覆盖不到"根本不是话"。已加 4 条崩坏判据(聊天模板词/假名/代码残渣/HTML 实体),命中就改发安全兜底句。
下面的收益是基于本次实测计数的估算,不是承诺值;每条都写清依据,做完应当能用同一套探针复测验证。
| 动作 | 依据(实测) | 预期收益(估算) | 成本 |
|---|---|---|---|
| 关掉生产机上的编辑器 / 杂窗口,并在读屏前硬校验前台是企微窗口 | 夏伟 .env - Notepad 被当会话 898 次,探针时刻进程仍在 | 夏伟 ≈900 轮/日 空转归零 | 分钟级 |
| 系统会话(智能文档/客户联系/行业资讯)红点本地永久黑名单,不再每轮花 VL 去认 | 小顾 2,243 次、夏伟 510 次,结论恒为"不点开" | 小顾读屏调用 −48%,日成本 −$1.1 | 小改动 |
| 把服务端的回声判据下沉到云电脑本地(本地"我方近发"缓冲实测命中 0 次,等于没生效) | 小顾 330 次 echo_of_own_reply 全程跑完读屏+跨境端点才被挡 | 空转轮 −68%,省 330 趟端点往返 | 要改判据 |
| 身份门失败的话术缓存下轮重投,不再直接丢;召回与被动代回按"发完再切窗口"串行 | 夏伟 218 生成 → 15 发出,身份门中止 254 次 | 夏伟有效产出量级提升(15 → 数十) | 要设计 |
.env 从服务端下发(/wecom/loop-config),模型/节奏/日限收敛到一份事实源 | 三台 9 项参数无一致;代码 md5 却完全相同 | 可归因、可灰度、可回滚 | 一次性 |
conversations(channel=wecom_chat) + messages,近 10 天 1,033 条,配对 369 次往返aliyun ecd run-command + describe-invocations --include-output true/api/v1/models 今天实拉