poll agent 每轮自动扫私信会话列表,判断哪个客户回了,写回库触发自动起草回复。旧做法靠截图 + AI 视觉(VL)读列表、逐个点开红点会话(会把人标已读、还会读错昵称塌缩整轮);新做法用 Playwright 连一个隐形 Edge 直接读 DOM。
| 旧 VL 版 | 新 DOM 版 | |
|---|---|---|
| 读列表 | 截图喂 AI 视觉 | 直接读 conversation-item |
| 昵称 | OCR 会读错 | 精确到 emoji |
| 标已读 | 逐个点开会标已读 | 全程不点、永不标已读 |
| 花费 | 每轮烧 VL | 零 AI 花费 |
C:\akke-wuying\wuying-dm,跑着 wuying_poll_agent.py.env 有 SUPABASE_* + AKKE_ACCOUNT_IDpy -m pip install playwright uiautomation
$edge="C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe"
if(!(Test-Path $edge)){$edge="C:\Program Files\Microsoft\Edge\Application\msedge.exe"}
Start-Process $edge -ArgumentList '--headless=new','--remote-debugging-port=9222','--user-data-dir=C:\akke-edge-debug','https://www.douyin.com'
验证:浏览器开 http://127.0.0.1:9222/json/version 有 JSON = 通。
AKKE_DM_AUTOREPLY_CAPTURE=1 # 开捕获腿(没有=根本不跑捕获) AKKE_WEB_DM_USE_DOM=1 # 捕获走 DOM 版(不设=走旧 VL) AKKE_WEB_DM_DOM_COMMIT=1 # 真写库(不设=只打印不写, 适合先观察)
改完必须重启 poll agent(py wuying_poll_agent.py)才生效。
Start-Process "C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe" -ArgumentList '--headless=new','--remote-debugging-port=9222','--user-data-dir=C:\akke-edge-debug','https://www.douyin.com'
http://127.0.0.1:9222/json/version 有 JSON
cd C:\akke-wuying\wuying-dm
py wuying_poll_agent.py
conversation-item 0 / 报没登录):关掉 headless Edge,用可见窗口起(去掉 --headless=new),重新登录抖音 + 点开一次私信,再切回 headless。Cookie 一般撑 15-30 天。重启后看 DM 黑窗,每轮出现(有 [DOM] 就对):
用测试号给本账号发一条消息(产生红点),下一轮日志应出现:
AKKE_WEB_DM_USE_DOM=1、不设 AKKE_WEB_DM_DOM_COMMIT,日志会显示 (DRY-RUN, 不写库),确认判得对再加 COMMIT 那行重启。| 现象 | 处理 |
|---|---|
日志还是旧的 web capture[红点像素检测] | AKKE_WEB_DM_USE_DOM 没读到 → 确认 .env 加了 + 重启了 poll agent |
连不上 CDP / 没找到 douyin 页 | 隐形 Edge 没起/被关 → 重跑第 2 步,/json/version 验 |
conversation-item 0 + ❌ 弃权 | 该轮面板没挂上 → 自动重开;持续 0 才需查(不会误判成全员没回复) |
| 明明有红点回复却没抓到 | 把那条会话样子反馈给开发,可能要调红点检测;不会静默漏报成"没回复" |
| 传文件下坏 | 用 curl.exe -o,别用 iwr |
# .env 删掉 / 改 0: AKKE_WEB_DM_USE_DOM # 然后重启: py wuying_poll_agent.py