这些都是真实链路跑出来的原样话术(云电脑 GUI 读发 / 端点直调),不是示意。首触面对的是已经加了企微好友、但我方还没开口的人;代回面对的是已加好友、回了消息的人——两边都不再向客户要微信号。
云电脑 Python 只做看屏幕 + 点鼠标打字;认人、生成话术、落库、算成本全在 TS 端点。云电脑(国内 IP)连不上 Vercel,走 Fly 中转纯透传。
action:openeraction:generate功能 2026-07-01 当日上线真发,仍在灰度初期——规模化数据待积累。下面是灰度口径与首批验证;badcase 表是这轮 0→1 真实踩到并已修的问题。
灰度策略:主号无隔离,日限/时限从严、工作时间 9-21、随机间隔起步,稳定后再放量。首触、代回、多轮长对话(含客户连发合并)均已在真实对话上跑通。规模化 KPI(首触触达率 / 客户回复率 / 加微→到店转化)随真实客流积累后补。
| 现象(badcase) | 根因 | 优化方式 | 进展 |
|---|---|---|---|
| 首触问客户「发个微信号我让设计师加你」 | 复用抖音 ice_break,其核心目标就是把人导到微信;但企微里已是好友 | 首触早退企微专属 opener prompt,完全不套抖音模板 | #691 已修 |
| 首触编造「刷到你家装修的视频了」 | ice_break 的视频引用 + temp 0.8 波动,脑补不存在的上下文 | 专属 prompt 明写「对客户一无所知」+ 禁编造视频/评论/户型 | #689/#691 已修 |
| 把女生客户叫「X 哥」 | 从昵称猜性别,企微对客户零可靠信息,必翻车 | 首触一律中性「你好/你好呀」,禁加哥/姐/老板等性别身份后缀 | #691 已修 |
| 首触发成好几条气泡 | 发送函数按换行拆气泡(代回要的行为) | 首触 single_bubble:换行并空格钉死一条 | #692 已修 |
| 客户没回复,连发好几条(自问自答) | VL 偶把我方已发消息的发送方判反、读成客户消息 | 护栏①:读到 == 我方近发文案 → 跳过(确定性) | #695 已修 |
| 对着联系人名 / 空会话乱回复 | VL 把会话标题当成客户消息,is_external 也判错 | 护栏②:消息 == 会话名 → 跳过 | #698 已修 |
| 代回冒「加微信 Homedz3791/备注抖音名/DM/前面聊过」 | 会话被自问自答灌了假历史 + base 带品牌微信号,LLM 顺手抖音收口 | 企微 nurture/decision 红线硬禁加微信/DM/编造前情 + 清污染会话 | #702 + 清库 已修 |
| 鼠标偶尔没点到输入框 | 无影上 pygetwindow 抢窗口不稳,窗口没真最大化 → 坐标落偏 | ctypes 硬置前+最大化 + 护栏③没铺满屏就跳过 | 已修 |
| 生僻字昵称读错(巭孬嫑勥烎→奚舜翼舜炎) | VL 认生僻字精度不足 | 中性称呼缓解(拿不准就只「你好」不硬叫名);根治待换更强 VL | 缓解 · 待根治 |
| 下午·读屏可靠性攻坚(VL 判"谁发的/哪条最新"不稳,逐层收敛) | |||
| 护栏①精确匹配漏 — VL 把首触读串一字仍自回 | 「咱们家房子」被读成「咱们房子」,精确匹配认不出是我方消息 | 护栏①改模糊匹配(相似度≥0.88),容忍 VL 读串字 | #703 已修 |
| 对同一条客户消息重复回好几遍 | VL 重读/读串字,端点指纹去重认不出 | 护栏③ 每会话回复台账:这条(模糊)已回过 → 不再回 | #704 已修 |
| 漏读客户新消息 — 读成上面我方大气泡 | 让 VL 判"哪条最新"不可靠:被又长又显眼的气泡带偏 / 消息少时顶部对齐下方一片空白 / 长会话没滚到底 | 改 VL 按上→下顺序列出所有消息、代码取最后一条(不判最新)+ 滚到底加狠(14×3000+End) | #705/709/710/715 已修 |
| 代回反复强推「加微信 Homedz3791/备注抖音名」 | 抖音「4 轮兜底 hard-gate」满 4 条 AI 就强推微信号,只数条数、没判 persona | 企微(persona 命中)豁免抖音 hard-gate,收口交给有大有小规则(约到店) | #712 已修 |
| 客户连发几条,只回最后一条、漏中间 | 只读最后一条消息回 | 取我方最后一条之后的所有待回消息合并一次覆盖回;边界用归属判定(不靠 VL 左右)→ VL 误标也不漏 | #716 已修 |
| 代回总固定连发 3 条,太规整像机器 | 文案多段被按换行拆气泡、常正好 3 条 | 随机 1~3 条气泡(自然段随机分组合并) | #714 已修 |
| 随机合并后又把我方消息当客户回(自回复发) | 合并气泡后防自回缓冲存的是"整块",但 VL 读回常按单个自然段读,单段比整块相似度不够、漏判 | 发送时把合并前原始段落也记进缓冲(整条/合并块/单段都能命中) | #718 已修 |
运维教训:.env 被 PowerShell Get-Content|Set-Content 按系统 ANSI 重写、损坏 UTF-8(中文注释成非法字节)→ load_dotenv 整体失败静默回退。改用 .NET UTF-8 无 BOM 读写;下载脚本用 curl.exe(PS5 的 Invoke-WebRequest 进度条会卡死下载)。
核心认知(下午沉淀):GUI+VL 从截图判"谁发的/哪条最新"本质不稳,是方案B 的先天局限。防线思路已从「信 VL 的判断」进化到「不信 VL、用确定性纠偏」——读屏改「按序抄→代码取最后一条」、发送方改「按是不是我方发过的判归属」(不靠左右)、叠三道护栏(防自回/防误读联系人/防重复回)。多发(骚扰)基本摁死,漏读靠"滚到底+按序抄+下轮重读"兜底;真正根治需官方企微 API(现被 ICP/可信 IP 卡住)。