部署 · 修复 · 优化评估
2026-07-08 ~ 07-10 | 40 个代码改动上线 + 云电脑通道升级 + 3 条账号哨兵 | 附「还能优化什么」评估
40 PR 已合并上线
5 大块
云电脑脚本已更新
新增·3 条账号哨兵
一句话:这几天主攻五条线——
①自动回复更聪明(生成崩自愈、纯数字回复不再误杀、加微后不再轴、护栏放开能直接发微信号)、
②云电脑发送更稳(消除「假发成功」丢单/重发)、
③评论抓取补漏(拆掉 63%+27% 两处漏抓真凶)、
④企微话术更像金牌销售(07-09 晚一波集中攻坚:防复读三层 + 推理泄漏拦死 + 真语义检索)、
⑤新增 3 条账号哨兵(收不到 / 发不出 / 微信外引,出事群里弹红牌)。
哨兵部分文末用大白话讲清楚,小孩都能懂 →。
00两天干了什么(概览)
40
代码 PR 合并上线
(#789 → #830)
5
云电脑发送稳定性
(有大有小 / route-B)
部署去向说明:后端(自动回复、抓取、企微、报告)改完 push 就自动上 Vercel / Fly,同事不用动;云电脑脚本(发送/route-B)不会自动更新,得手动 curl 覆盖 —— 今天已帮「有大有小」更到最新 send_dom 24547。
01自动回复链路 · 8 处修复(核心)
| PR | 问题 | 修复 | 状态 |
| #806 | 模型偶尔生成乱码/错语言/超短废话,旧逻辑只判「空串」放行了 | 放宽到「空 / 超短 / 非中文乱码」都判坏 → 自动重生成 | 已上线 |
| #791 | 客户回「115」这类纯数字真回复被噪声闸当垃圾误杀,不回了 | 噪声徽标规则收窄,纯数字结合上下文放行 | 已上线 |
| #792 | 加微成功后客户又发实质消息,一律转人工,运营接不过来 | 三类改「受限收尾自动回复」,不再一刀切转人工 | 已上线 |
| #809 | 客户露出「加v/要方案」意向但没给号,我方只会反问、错失 | 够信任了自动主动推我方设计师微信号 | 已上线 |
| #813 | 话术里带「微信/v号」被护栏拦下转人工,加不上客户 | 护栏放开:微信软化成 vx、可带具体号,直接发 | 已上线 |
| #805 | journey 报告只写「转人工」,看不懂为啥转 | 报告末尾加「失败/转人工原因词典」(12 条) | 已上线 |
| #807 | 发送后未验证(unverified)的单子,报告误显示成「护栏·微信外引」 | 发送侧失败归因优先于护栏 flags,不再张冠李戴 | 已上线 |
| #815 | 报告看得到「慢」,看不到慢在哪一段 | 每条 E2E 超 2min 的单子逐条分段写清慢因(重试/审批/生成/发出) | 今日上线 |
合起来的效果:自动回复从「一遇到边角情况就转人工/发废话」,进化到生成崩了自愈、纯数字听得懂、加微能主动促成、报告能自解释慢因。转人工率应明显下降 —— 建议下周对比一下 needs_human 占比。
02云电脑发送稳定性 · 5 处(有大有小 / route-B)
| PR | 问题 | 修复 | 需手动更新云电脑? |
| #801 | 点「发送」键偶尔超时,脚本误判发失败(假阴性)→ 触发重发/丢单 | 超时改回车兜底 + 发完复核气泡,消除假阴性 | 是 → 有大有小今日已更 |
| #800 | 整批里一条卡住,整批标记 failed | 逐条 flush + try/except 隔离,单条失败不拖累整批 | 是 |
| #793 | route-B 三连触达(赞+两评论)还在用像素版,不稳 | 三连执行器改浏览器 DOM 版,与 DM 同 Edge 串行 | 是 |
| #796 | route-B 评论框锚点漂移,点不中 | 按真机 probe 把评论锚点钉死(占位点击→Draft.js 挂载) | 是 |
| #798 | route-B 发送键定位不准 / 验证太快误判 | 发送键按真机 SENT 实测结构定位 + 验证容延迟 | 是 |
关键因果链:#801 之前,「发送键超时」被当成「发失败」→ 有界重试再发一遍 → 客户收到两条一样的招呼;同时报告里显示一堆 unverified。#801 用「回车兜底 + 气泡复核」把「到底发没发出去」判准了,重发和 unverified 应一起消失。这正是「有大有小」今天更新 send_dom 要吃的修复。
03评论抓取完整性 / 号源容量 · 6 处
| PR | 问题 | 修复 |
| #802 | 慢车道积压的「毒丸」job 挡住快车道,63% 漏抓的主凶之一 | 收养慢车道 pending 毒丸进快车道 |
| #803 | 审核延迟导致增量复扫 since 截断,27% 漏抓的另一主凶 | 增量复扫 since 回看余量加到 60min |
| #808 | #802 的收养把 pri 设 0,捅穿老化公平天花板反而饿死源级抓取 | 收养毒丸 pri 改 0→1,不饿死源级 |
| #810 | 钓点复扫和 tier-1 整号抓取抢资源 | 钓点复扫 pri 3→4,给 tier-1 让道 |
| #811 | attempts 打满的「幽灵票」死 pending 行堆积 | 每天定时清扫死 pending 行 |
| #797 | stats 快照撞限频就弃掉整池 | 撞限频改退避后继续 + flush 重试不静默丢 |
教训沉淀:#802→#808 是一次真实的「改优先级踩连锁坑」——为了救漏抓把毒丸塞快车道(pri=0),结果 thundering herd 把源级抓取饿死、号源骤降。改调度/优先级必须回测相邻下游车道有没有被饿死,已写进团队记忆。
04企微自动代回 · 话术贴金牌销售 · 13 处 + 其他
4a · 07-08~09 白天基础批(贴金牌销售风格)
| PR | 内容 |
| #814 | 拆议价逐字模板 + 跨轮防复读,让企微话术贴金牌销售风格 |
| #816 | 议价「反问」别引用要禁的原话(负向指令悖论会让模型照念) |
| #812 | 脏名不当称呼别念 + 空回复扩到企微重试(治答非所问套话) |
| #790 | 评估闭环三件套:企微 prompt 入库 / outcome 分数落地 / promote 回归闸 |
4b · 07-09 晚集中攻坚批(防复读 + 推理泄漏 + 检索升级,新) 07-09晚~07-10
| PR | 内容 |
| #824 | 对话级防复读——把已说过的回复列给模型,逼它换角度别车轱辘话 |
| #825 | P1.1 防复读调细:客户重问的事实简短重答,别为了不重复而敷衍 |
| #828 | P1.2 硬闸反复读——生成后按相似度检测,塌缩(跟上句太像)就自动重生成 |
| #819 / #829 / #830 | 拦 GLM-4.6 推理泄漏(模型把「内心独白/思考过程」写进正文发给客户)——三重加固:扩措辞检测 + 单行剥离 + 裁剪上下文重试 + 救不回则安全兜底 |
| #826 / #827 | 语义检索升级:P2-lite 按客户当前消息选最贴的规则/例子注入 → P2 升级真 embedding(bge-m3),bigram 保留为回退 |
| #823 | GLM 返回空/退化响应 → 跨模型 fail-over(空→qwen 独立上游自愈),不再漏回 |
4b 这批合起来:企微 AI 代回从「会车轱辘话复读、偶尔把思考过程漏给客户、检索不准」,升级到防复读三层闸 + 推理泄漏拦死 + 真语义检索 + 空响应自愈——话术更像真人金牌销售、更稳。
4c · 其他
| PR | 内容 |
| #799 | 抖音门店/样板间口径收紧 + 门类报价一律活动最低价 1512 |
| #789 | craft_terms 工艺词加分进意向打分(默认关,灰度) |
| #818 | DB 清理:provenance 60 天保留清理 + 删 comments 死索引 |
| #804 / #795 | 案例合集页团队内部备注后端 / creator 视频批量分发线 PoC |
05运营侧操作(非代码)
| 操作 | 说明 | 状态 |
| 有大有小切浏览器 DOM 版 | DM + 自动回复 + route-B 三条腿全跑一个隐形 Edge | 已对齐 |
| 有大有小灌金牌销售话术库 | decision_rules 灌库(07-09) | 已灌 |
| 更新 send_dom 到 24547 | 吃 #801 假阴性丢单修复(今日) | 今日完成 |
| 两台 route-B DOM 对齐 | 20min 闸 + 开机自启任务 Ready | 已对齐 |
| 五端一致性每日自动核对 | 本地/GitHub/Vercel/Fly/Supabase 每日 launchd 自动比对,不一致才推群 | 已上线 |
06还能优化什么(按优先级)
这几项是这两天暴露、但还没做完 / 值得下一步做的,按投入产出排序:
| 优化项 | 为什么 | 建议做法 | 优先级 |
| ① 捕获腿静默失效哨兵 ✅ 已上线 |
已知盲区:隐形 Edge 挂了 / 登录过期时,心跳监控全绿但客户回复全漏,没人知道。这是最危险的沉默故障。 |
已做完(#820):回复率哨兵 cron 每 6h 跑,某活跃号 24h 零客户回复 → 红牌到监控群。下面用大白话讲清楚 ↓ |
已完成 |
| ② 微信护栏放开后的风控观察 ✅ 已上线 |
#813 刚放开直接发微信号/v号,抖音可能风控甚至限流封号。查了真实数据:上线至今实际发出含 v 号消息 = 0 条,暴露≈0。 |
已做完(#821 轻量可见性版):每天扫「实发多少条含 v 号消息」,0 条静默、放量即冒卡、发过 v 号的号被风控→红牌;账号风控另有 captcha-monitor 兜底。完整触达成功率对比等真放量再上。 |
已完成 |
| ③ 发送段细分埋点(P4–P7) |
#815 现在只能粗归因「发送段慢」,具体卡在找人/开会话/输入/点发送哪一步看不到。 |
worker 发送侧每步打时间戳回写,journey 才能精确定位慢在哪一环 |
中 |
| ④ 转人工率对比验证 |
#792/#806/#809/#813 都是「少转人工」方向,但没量化验证真的降了。 |
拉本周 vs 上周 needs_human 占比 + 自动发成功率,确认修复见效、没有反向误伤 |
中 |
| ⑤ 云电脑脚本更新自动化 |
route-B 5 个修复要「手动 curl 覆盖每台机器」,容易漏更 / 各机版本不齐。 |
poll agent 启动时自校验脚本字节数 vs 期望值,不一致自动拉最新(或至少告警) |
中 |
| ⑥ 6h sweep 残留 |
已知:2 台机 + 重部署会杀长任务、锁跨不了机,已决定搁置不提速。 |
暂不动;若后续要提速,需先解决跨机锁 |
低(已搁置) |
| ⑦ 小文号软丢冷却恢复 |
小文号被抖音影子禁言(stranger-DM 限频),冷却到 7/15。 |
到期走恢复流程:外部号验证 + 降 daily_limit + 分级恢复,别一上来就打满 |
低(等到期) |
进度:两个高优先项都做完上线了 —— ① 回复率哨兵(#820,就是下面这一大段讲的)+ ② 微信外引监控(#821,轻量可见性版,现在 v 号暴露=0 所以静默、真放量就冒卡)。剩下 ③④⑤ 是中优先,⑥⑦ 已搁置/等到期。
07「客户回复静默哨兵」——用大白话讲清楚(小孩也能懂)
一句话:我们请了一个「监督员」,专门盯着——有没有哪个账号本来天天有客人来说话,突然一整天一个都没有。真出现了,它立刻在群里拉响红色警报,叫人去查。
先讲个小故事 🏪
把每个抖音账号想象成一家店
🏪 店里有个店员,专门负责「听有没有客人敲门说话」
(= 电脑上那个偷偷开着的浏览器,负责抓客户回复)
↓ 有一天……
😴 店员偷偷睡着了(浏览器挂了 / 抖音登录过期了)
可他还站在门口,看起来在上班
↓
🚪 客人来敲门、说话、想买东西……店员一个都没听见
客人等不到回应,全走了 —— 我们却一点都不知道
最坑的地方:这个店员睡着的时候,别的检查都显示「正常」——门开着、灯亮着、他还在发传单(= 心跳还绿、DM 还在往外发)。所以光看那些,你永远发现不了他其实睡着了。这就是以前最危险的「沉默故障」:坏了,但没有任何人知道。
现在请了个「监督员」👮 怎么工作?
👮 监督员每 6 小时巡查一次
↓ 他只问一个简单问题
「这家店平时每天都有好几个客人说话,
怎么过去一整天,一个客人都没有?」
↓ 如果真的是这样
🚨 立刻在群里拉红色警报:
「快去看看『有大有小』那台电脑,店员是不是睡着了!」
还附上怎么叫醒他的步骤
↓ 有人去把店员叫醒(重开浏览器 / 重新登录)
✅ 客人的话又能听见了,警报自己消失
为什么是「一整天」,不是「一小时」就报警?🤔
| 如果…… | 会怎样 |
| 只要 1 小时没客人就报警 | 天天误报!半夜本来就没人说话,一惊一乍谁都不信了 |
| 看 一整天(24 小时)都没客人才报警 | 刚刚好:真出问题才响,半夜没人是正常的、不会误报 |
因为客人本来就来得稀(最忙的账号一天也就 6、7 个客人说话),几个小时没人太正常了。只有「一整天都挂零」,才铁定是店员睡着了,不是碰巧。
会不会乱报警、冤枉好人?🎯
不会。上线前我们拿真实数据试跑了一遍:5 个账号,3 个平时热闹的(有大有小、饭粒、零星)当天都有客人 → 一个警报都没误报;两个平时就很冷清的号(文哥、小文,一天不到 1 个客人)自动被排除在外,不会拿它们说事。而且万一是监督员自己没睡醒(查数据库失败),他会老实发一张橙色「我这轮没看成」的卡,绝不假装「一切正常」骗你。
所以从今天起:哪个账号的「店员」偷偷睡着了、客人在悄悄流失,最多一天之内,群里必定弹出一张红牌叫人去救。以前这种事可能烂好几天没人发现 —— 这就是这个哨兵补上的最大窟窿。
其实一共请了三个「监督员」,各管一件事 👮👮👮
| 监督员 | 盯什么(大白话) | 什么时候响 |
① 回复率哨兵 #820 | 客人来了店员没听见(浏览器挂/登录过期,客户回复全漏) | 某号一整天零客户回复 → 🚨 |
② 账号发送故障哨兵 #822 · 新 | 店员喊话喊不出去了(账号被抖音软封/限流,消息发不出,但发送还假装成功) | 某号刚被自动冷却/封 → 🚨(15 分钟内) |
③ 微信外引监控 #821 | 店员开始递微信名片了(发 v 号),会不会被抖音盯上 | 发了 v 号 + 那号被风控 → 🚨 |
三个合起来:一个账号从「收不到 / 发不出 / 发外引被盯」三个方向出问题,现在都有人盯着、出事就在群里弹红牌。全是零噪音设计——正常时一声不响,看到弹卡再行动就行。另外账号被封验证码那种,还有更早就在跑的 captcha-monitor(每分钟)兜底。