本文档用于沉淀当前已确认的产品方案,面向后续产品、开发、测试和运营协作。
当前方案聚焦于:
Playwright 做自动化采集与自动化私信操作AI 做线索筛选与聊天辅助本文档只整理当前已经明确的方案和约束,不包含数据库字段设计细节。数据库表字段后续商榷后再定。
目标是从抖音行业关键词视频的评论区中找到高意向用户,进行私信沟通,并在合适时机将用户转到企业微信进行后续合作。
本期方案不依赖官方 API,主流程基于浏览器自动化实现。
整体采用双 Playwright 架构,将采集与私信分离,降低相互影响。
负责:
负责:
负责:
每次启动 Playwright 默认会打开一个新的、没有 Cookie 的浏览器环境。如果这样做,就会导致频繁重新登录,增加异常风险。
因此当前方案要求:
目标是让浏览器尽量表现为同一批长期使用的会话,而不是每天反复创建全新环境。
自动化任务可以按每天指定时间范围运行,并在时间范围内随机触发。
例如:
目的:
说明:
Playwright 负责执行操作本期主流程只保留“私信”路径,不包含“回复评论引导用户主动私信”路径。
线索来源于行业关键词视频,不是自有视频评论区。
采集 Worker 的标准步骤如下:
因为后续系统需要识别“这个人到底是谁”。
仅使用昵称不可靠,原因包括:
因此,当前确认的方案是:
通过再次点击该用户主页,读取抖音号,作为识别用户和关联会话的主要依据。
这是当前方案最重要的约束之一。
在 Playwright 自动化点击私信列表中的某条会话时:
也就是说,系统不能指望在点击某条会话时,页面天然把该会话的唯一标识交给我们。
查询对话唯一性时,只能再次点击该用户主页,通过抖音号来确定该用户与该会话的唯一性。
这条规则适用于:
不要把“当前点开的聊天窗口”直接当成可信对象。
必须理解成:
也就是说,系统认人的依据不是“聊天列表第几条”,也不是“昵称看起来像”,而是“主页里的抖音号”。
只有经过 AI 筛选后的高价值线索,才进入私信队列。
私信 Worker 的标准步骤如下:
可能存在以下情况:
这些情况都不应直接忽略,而应标记为“无法触达”或“待人工判断”。
Playwright 可以读取当前页面上已经渲染出来的聊天内容,主要包括:
私信 Worker 需要定时执行以下动作:
私信列表可以作为“是否可能有新消息”的参考,但不能作为绝对依据。
原因包括:
因此,本方案中:
这是系统落地时最关键的一部分。
先认人,再存话。
也就是:
通俗理解:
当前已确认的关联逻辑不是“按会话列表顺序”,而是:
按用户主页中的抖音号,去找到数据库中对应的那个人,再把消息存进去。
不能按下面这些方式关联:
因为这些信息都不稳定,容易串会话。
建议流程如下:
为了避免串号,系统在真正点击发送前,仍需要再做一次身份确认:
只有一致时才允许发送。
如果不一致,应立即停止发送并记录异常。
当前不展开数据库字段设计,但产品层面已明确以下存储原则。
聊天数据至少要分成两层理解:
表示“我们和哪一个用户在聊天”。
表示“在这场聊天中,说过哪些话”。
消息必须挂在“该用户对应的会话”下面,而不是挂在“刚刚打开的那个窗口”下面。
不只是对方发来的消息要存,我们自己通过自动化发出去的消息也必须记录。
否则后续 AI 看上下文时会不完整,容易重复回复或答非所问。
每次打开聊天窗口,不应把整页内容全部重复写一遍,而应只写入数据库里没有的新消息。
消息时间要区分:
因为页面上可能显示“刚刚”“昨天”“上午”等相对时间文本,而系统入库时间是绝对可记录的。
AI 用于对评论区采集到的线索做判断,例如:
AI 用于生成私信回复,目标是:
AI 只负责辅助判断与生成回复,不负责:
这些仍由自动化规则和人工兜底共同负责。
当前方案中,人工介入点明确如下:
人工负责:
当系统识别到用户有明确合作意向后,交由人工接手:
人工负责处理:
当前方案虽可做产品原型,但存在明确风险和限制:
本期只保留“私信触达”路径,不走“评论区答疑引导私信”路径。
原因是当前优先验证:
截至当前,已确认的关键结论如下:
Playwright 架构,采集与私信分离以下内容当前尚未定稿,后续需要单独讨论:
本文档是当前阶段的产品方案沉淀稿,用于统一认知,不代表所有技术细节已经完全确定。
后续若方案调整,应优先更新本文档,再推进详细设计和开发实现。