抖音私信自动回复机器人
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_326e3d8e/hksm705a。
技能介绍
要解决什么问题
抖音创作者或客服账号每天会收到大量私信:询价、要资料、问产品定义。人工逐条点开回复既慢,也容易漏掉未读。本技能是一个基于 Playwright 的 Node 脚本,通过 Chrome DevTools Protocol(CDP) 挂到你已经登录的 Edge 浏览器,周期性扫描私信列表,只对「真正有新内容」的会话生成回复并发送,而不是简单依赖页面上的未读角标。
核心流程与机制
连接与扫描:Edge 需以 --remote-debugging-port=9222 启动;脚本连接 CDP 后打开 https://www.douyin.com/chat?isPopup=1,正式模式下约每 2 分钟遍历一次活跃会话。登录态通常保存在 .workbuddy/douyin-bot/storage.json。
会话发现:discoverUnreadSessions 将会话列表滚到顶部,用 [data-e2e="conversation-item"] 枚举会话,并结合 badge、标题加粗、CSS class 做未读判断。filterBySnapshot 用预览文案的 hash 追踪变化——预览一变就视为活跃;空预览也会用占位记录,避免漏检。Bot 重启时还有 Bootstrap:在 repliedLog.sessions 里有过记录且冷却已过的会话会被重新标记,便于补回离线期间的消息。
点击与读消息:抖音 SPA 对「看不见的元素上的 click」不敏感,因此点击会话前必须 scrollIntoView({ block: 'center' }) 并配合 dispatchEvent 多重触发,再依次尝试 DOM 遍历、Playwright locator、全文本扫描。读消息时过滤左侧列表(rect.left > 300px),排除系统关键词与短句;对同一会话通常只回复第一条尚未处理的消息,避免连发。
回复与去重:makeReply 按 references/rules.md 中的优先级匹配规则;无命中会记 -1 并写入 unmatched-log.txt 便于补规则。去重用 md5(sessionName + "|" + message.slice(0,100)) 写入 repliedLog.hashes;-1 与「已回复」必须区分,冷却过期后应重新评估。同一会话还有约 2 分钟打开冷却,repliedLog 跨重启保留。
适用边界与注意点
- 依赖真实浏览器 DOM 与选择器(如
.conversationConversationItemtitle),抖音改版可能导致脚本失效,需要对照scripts/douyin-dm-bot.js维护。 - 群聊里带
@他人的消息可能误触发部分规则(例如微信号相关规则),技能文档中要求检测@前缀并跳过。 - 测试账号在配置里可设为「弘宽会议服务」,建议先跑测试模式确认点击与回复链路正常再开全量扫描。
- 知识库与规则在
assets/knowledge-base-template.json与references/rules.md,业务话术需自行维护,脚本只负责发现、匹配与发送。
使用场景
- 已在 Edge 登录抖音账号,离岗或开会时让脚本每 2 分钟扫描私信列表,对预览变化的会话按 rules.md 回复询价与要资料消息。
- 新上线前先开测试模式,对 CONFIG.testAccount(如弘宽会议服务)验证 scrollIntoView 点击能切换面板、回复内容与规则一致。
- 每周整理 `.workbuddy/douyin-bot/unmatched-log.txt` 里的无匹配问法,回填 knowledge-base.json 并扩展 references/rules.md。
- 官号收到代理、加盟、渠道合作类私信时,用 makeReply 优先级命中销售/合作规则,避免漏回同一会话首条未处理消息。
适合人员
- 负责抖音官号私信、需把产品说明、微信导流与 FAQ 固化成 rules.md 规则而非手打重复话的客服或运营。
- 会维护 Node 与 Playwright 脚本、在抖音 SPA 改版后调整 conversation-item 选择器与点击逻辑的前端自动化工程师。
- 会议/活动服务类抖音号(如文档中的弘宽会议服务)需自动确认咨询、减少漏回的基础接待小团队。
- 根据 execution-report 与 stdout 日志排查 hash 去重、会话冷却与 -1 无匹配记录的内容运营或脚本维护者。