1第一个案例(0→1)
首条全自动二次触达:系统自己派单 → 无影云电脑自己发,全程无人介入。
目标用户 · 小文(野荞)号
李不清 · 高意向 · DM 后 24.1 天未回
发出的公开评论(= 当初私信原文,原样复用):
「不清,视频里618政策挺实在,装修避坑那点可以提前备着,券的活动现在有,全屋柜体活动价5万起,源头工厂直供本月名额紧张,你家几室几厅?」
- 系统按规则自动入队(候选:DM≥3天没回 + 高/中意向 + 去重)
- 无影 agent 60s 内自动领单
- GUI 自动:搜人 → OCR 身份门 conf 0.98 → 开其最新视频 → 评论区 → 发送
- 回写去重(写入节奏状态,下次不再重复触达)
- 评论实际可见(已在该视频评论区核对,非仅"已点发送")
另:GUI 发评论能力此前已用「醉在从前」一条手动验证(搜人→身份门→发送→可见),本案例进一步验证自动派单→自动接单整条链。
20→1 逻辑原理图
核心思路:不重造轮子,镜像已上线的「DM 自驱」——只把渠道从「私信」换成「对方视频公开评论」,队列 / 派单 / 节奏门 / 无影轮询全套积木复用。
☁️ 云端 · Vercel(每小时自动派单)
cron /api/cron/second-touch-dispatch
↓
候选选取:距最后 DM ≥3 天 + 高/中意向 + 节奏状态去重
message = 当初私信原文(dm_content,原样复用,不再生成)
↓
节奏门:backlog 背压 · 评论日上限 · DM+评论合并 1h 门(共享活跃预算)
↓
INSERT second_touch_dispatch_queue (status=pending)
⇣ 无影常驻 agent 每 60s 拉 ⇣
🖥️ 本地 · 无影云电脑(GUI 自动执行)
wuying_poll_agent.py 评论支线 · claim_second_touch_dispatch
同机分时段轮转:DM 批先跑完,再跑评论批,串行不抢抖音窗口
↓
douyin_comment_grounded.py:搜人 → OCR 身份门(0.95) → 开视频 → 评论区 → 发送
↓
complete_second_touch_dispatch → 串接 mark_second_touch(节奏阶梯去重,单一真相源)
两道安全开关默认关,合并代码不会真发:cron SECOND_TOUCH_AUTOSEND_ENABLED + 各机 AKKE_SECOND_TOUCH_ENABLED。
3批量化执行 · 统计 / badcase / 优化进展
40 / 天
目标量(3 号合计,≈13/号,封顶 20)
说明:批量自动派单(每小时 cron)灰度开关待 PM 打开;上表为候选池实测 + 目标节流量。回复率极低是「先不做回复检测、直接上」的依据。
遇到的 badcase × 优化 × 进展
| 问题 | 现象 / 根因 | 优化方式 | 进展 |
| 空 sent_at 排序灾难 |
部分已发 message 无时间戳 → days 算成 2 万天 → 坏数据排最前被优先发 |
候选查询加 .not(sent_at is null),与 DM 派单同口径 |
✅ 已修(本地测出) |
| 窗口焦点错 |
前台是浏览器版「douyin」而非 PC 客户端「抖音」→ 点击落空、OCR 判「非主页」、身份门不过 |
跑前确保抖音 PC 客户端前台最大化 + 关掉 douyin.com 浏览器窗口 |
✅ 已定位 |
VL 全屏抽取错位 (回复检测 Block 1) |
全屏小字 → 昵称↔预览张冠李戴、把右侧打开的对话气泡当列表行 |
截图裁右侧 40% + prompt 强调「只读最左列表、忽略右侧对话」 |
✅ 已修(本地+无影验证) |
| 昵称重名歧义 |
「纳百川」ilike 匹配出 2 个会话(含"…海纳百川") |
精确匹配优先;多命中 / 无命中 → 跳过 + 记日志,不瞎标 |
✅ 已实现 |
| 显示昵称 ≠ 存储名 |
会话昵称「firefly」,我方存的 customer_name 是「阳上花开」→ 匹配落空 |
preview 兜底匹配 + fuzzy(待加强) |
🔶 部分 |
| 陌生人消息聚合 |
红点未读但是聚合文件夹,无法映射到具体人 |
自动跳过 + 标记「待人工看」,不误标 |
✅ 已处理 |
| 迁移 policy 报错 |
= ANY(set-returning fn) 被 PG 拒(0A000),db push 失败、表未建 |
tenant_scope 改 canonical IN (SELECT app.accessible_org_ids()) |
✅ 已修 + 沉淀 memory |
| 封号 / shadowban 风险 |
评论=私信原文,带「加微信 / 报价」营销词,可能被抖音吞 / 折叠 / 封号(连带同号 DM) |
仅靠节奏层:单号日上限灰度从低起 + 合并 1h 门 + 话术多样 + 另号核可见性 |
🔶 监测中 |
4下一步待做优化
- P0
回复检测上线(Block 1):无影 VL 扫私信会话列表判已回 → mark_second_touch('replied') 排除已回用户。方案已验证(dry-run 四环全通),douyin_inbox_scan.py 待 commit + 接 agent 定期跑。
- P0
风控闭环:另号 / 无痕核「评论是否公开可见 + 几小时后是否还在」(自己账号永远看得见≠没被 shadowban);据此决定放量节奏与是否保留「原样发私信」内容策略。
- P1
灰度爬坡上线:PM 设 SECOND_TOUCH_AUTOSEND_ENABLED=true + SECOND_TOUCH_DAILY_CAP=5 起步;另 2 台云电脑更新 agent + 开 AKKE_SECOND_TOUCH_ENABLED=1。
- P1
昵称匹配增强:解决「显示昵称 ≠ customer_name」(如 firefly / 阳上花开),加 sec_uid 反查 / preview 指纹兜底,降低漏标。
- P2
合并活跃预算调优:DM + 评论共享单号 1h / 24h 活跃额度的阈值,按实际风控表现微调。
- P2
内容策略复盘:原样发私信 vs 生成「公开安全钩子」(去联系方式),取决于 shadowman 实测数据;必要时退回生成版。
- P2
陌生人消息文件夹:探索进文件夹读未读、映射回潜在已回用户(当前只能人工)。